Настраиваем samba в ubuntu

Samba как DC

Но за всё надо платить, ибо самый популярный для таких целей Windows Server с Active Direcory на борту не бесплатный, а потому в последнее время с развитием пакета программ Samba 4 есть возможность использования Samba в качестве контроллера домена с применением групповых политик. О Samba 4 и последующей настройке и будет дальнейшее содержание данной статьи.

По своей сути Samba 4 есть Open-Source реализация Active Directory и, согласно документации, является стабильным вариантом применения в качестве домен-контроллера в production-среде.

Одним из минусов является отсутствие поддержки репликации Sysvol через DFS-R (условно говоря, sysvol – это директория с параметрами групповых политик, сценариев входа\выхода из системы и при использовании нескольких контроллеров домена, должна быть реплицирована на все имеющиеся контроллеры в домене). Samba пока что так не умеет, а потому есть решения с использованием rsync или более сложные и гибкие варианты. Но об этом в данном материале рассказано не будет.

В ранних версиях было ограничение размера БД до 4 гб в Samba при использовании в качестве контроллера домена, но данный вопрос был решён в версии 4.9 – реализован бэкенд LDB (экспериментальный), основанный на библиотеке LMDB, что в итоге позволяет создавать базы данных объемом свыше 4 гб. Для включения данного параметра нужно использовать ключ –backend-store=mdb. В данной статье, дабы не усложнять материал, обойдемся без данного ключа.

Общие папки (Shared Folders)

Так как мы интегрируем Samba с Active Directory, то и управление правами доступа на общие папки будет гораздо удобней назначать из ОС Windows.

Учетные записи которые могут настраивать права на общие папки, нуждаются в привилегиях SeDiskOperatorPrivilege. Чтобы посмотреть текущий список привилегий на хосте, выполним команду:

1 net rpc rights list accounts-U’JAKONDA\jakonda’

Результат выполнения:

1
2
3
4
5
6
7
8
9
10
11
12

14
15
16
17
18
19
20

22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

BUILTIN\Print Operators

No privileges assigned

BUILTIN\Account Operators

No privileges assigned

BUILTIN\Backup Operators

No privileges assigned

BUILTIN\Server Operators

No privileges assigned

SeMachineAccountPrivilege
SeTakeOwnershipPrivilege
SeBackupPrivilege
SeRestorePrivilege
SeRemoteShutdownPrivilege
SePrintOperatorPrivilege
SeAddUsersPrivilege

SeSecurityPrivilege
SeSystemtimePrivilege
SeShutdownPrivilege
SeDebugPrivilege
SeSystemEnvironmentPrivilege
SeSystemProfilePrivilege
SeProfileSingleProcessPrivilege
SeIncreaseBasePriorityPrivilege
SeLoadDriverPrivilege
SeCreatePagefilePrivilege
SeIncreaseQuotaPrivilege
SeChangeNotifyPrivilege
SeUndockPrivilege
SeManageVolumePrivilege
SeImpersonatePrivilege
SeCreateGlobalPrivilege
SeEnableDelegationPrivilege
 
Everyone

No privileges assigned

Выдадим разрешение SeDiskOperatorPrivilege группе «Администраторы домена» (Domain Admins), командой:

1
2
3
4

net rpc rights grant’JAKONDA\Domain Admins’SeDiskOperatorPrivilege-U’JAKONDA\jakonda’

ENTER JAKONDA\JAKONDA’SPASSWORD

SUCCESSFULLY GRANTED RIGHTS.

Теперь можно приступать к созданию общих папок. Для примера рассмотрим создание общей папки PUBLIC.

Создаем папку и выставляем права доступа на нее:

1
2
3
4

mkdir-psambapublic

chown»администраторы домена»»пользователи домена»sambapublic

chmod770sambapublic

В файле конфигурации Samba (/etc/samba/smb.conf) описываем параметры общей папки:

1
2
3
4
5
6
7

PUBLIC

path=sambapublic

read only=no

#АналогтехнологииAccess-based Enumeration(ABE—Перечислениенаоснованиидоступа)

hide unreadable=yes

#hide unwriteable files=yes

Если необходимо сделать общую папку невидимой, то в параметрах необходимо в название общей папки символ $ — . В этом случае общая папка не будет видна при обзоре сети и войти в нее можно будет указав полный путь к ней.

Если необходимо задать наследование владельца от родительской папки для создаваемых файлов и папок, то делается это параметром: inherit owner = yes

Для применения изменений перечитываем конфигурацию Samba, командой:

1 etcinit.dsmbd reload

Далее все настройку прав доступа выполняем из оснастки Управление компьютером (Computer Manager).

Запускаем от администратора Управление компьютером (Computer Manager) (Меню ПУСК -> Выполнить -> compmgmt.msc). Подключится к другому компьютеру… и указываем компьютер

После подключения к системе, переходим в «Общие папки» — «Общие ресурсы» и видим нашу общую папку PUBLIC, далее привычным методом выставляем все необходимые права доступа на нее.

Так же через оснастку Управление компьютером (Computer Manager) удобно смотреть активные пользовательские сеансы и какие файлы открыты в общих папках. При необходимости можно завершить пользовательский сеанс или закрыть открытый файл.

Для тех у кого есть желание поблагодарить, могут воспользоватся формой ниже:

LDAP Configuration

We will now configure the LDAP server so that it can accomodate Samba data. We will perform three tasks in this section:

  • Import a schema

  • Index some entries

  • Add objects

Samba schema

In order for OpenLDAP to be used as a backend for Samba, the DIT will need to use attributes that can properly describe Samba data. Such attributes can be obtained by introducing a Samba LDAP schema. Let’s do this now.

The schema is found in the now-installed samba package and is already in the ldif format. We can import it with one simple command:

To query and view this new schema:

Samba indices

Now that slapd knows about the Samba attributes, we can set up some indices based on them. Indexing entries is a way to improve performance when a client performs a filtered search on the DIT.

Create the file with the following contents:

Using the ldapmodify utility load the new indices:

If all went well you should see the new indices using ldapsearch:

Adding Samba LDAP objects

Next, configure the smbldap-tools package to match your environment. The package comes with a configuration helper script called smbldap-config. Before running it, though, you should decide on two important configuration settings in :

  • netbios name: how this server will be known. The default value is derived from the server’s hostname, but truncated at 15 characters.

  • workgroup: the workgroup name for this server, or, if you later decide to make it a domain controller, this will be the domain.

It’s important to make these choices now because smbldap-config will use them to generate the config that will be later stored in the LDAP directory. If you run smbldap-config now and later change these values in there will be an inconsistency.

Once you are happy with netbios name and workgroup, proceed to generate the smbldap-tools configuration by running the configuration script which will ask you some questions:

Some of the more important ones:

  • workgroup name: has to match what you will configure in later on.

  • ldap suffix: has to match the ldap suffix you chose when you configured the LDAP server.

  • other ldap suffixes: they are all relative to ldap suffix above. For example, for ldap user suffix you should use ou=People, and for computer/machines, use ou=Computers.

  • ldap master bind dn and bind password: use the rootDN credentials.

The smbldap-populate script will then add the LDAP objects required for Samba. It will ask you for a password for the “domain root” user, which is also the “root” user stored in LDAP:

The -g, -u and -r parameters tell smbldap-tools where to start the numeric uid and gid allocation for the LDAP users. You should pick a range start that does not overlap with your local /etc/passwd users.

You can create a LDIF file containing the new Samba objects by executing . This allows you to look over the changes making sure everything is correct. If it is, rerun the script without the ‘-e’ switch. Alternatively, you can take the LDIF file and import its data per usual.

Your LDAP directory now has the necessary information to authenticate Samba users.

Завершающие команды

После успешного выполнения команды Назначения:

# Разрешить автоматический запуск службы контроллера домена:sudo systemctl unmask samba-ad-dcsudo systemctl enable samba-ad-dc

# Скопировать автоматически созданную конфигурацию службы Kerberossudo cp -b /var/lib/samba/private/krb5.conf /etc/krb5.conf

# Запустить доменную службу Samba sudo systemctl start samba-ad-dc

Проверка результатов Назначения

Подробно команды для проверки результатов настройки контроллера домена описаны в статье Присоединение Samba к существующему домену AD. Разница только в том, что домена AD сейчас нет, сервер только один, соответственно, опрашивать нужно только один сервер, и в ответах будет только один сервер.

Создание реверсивных зон

С помощью команды samba-tool dns zonecreate можно добавить необязательную зону реверсивного поиска:

samba-tool dns zonecreate samdom.example.com 2.0.10.in-addr.arpa -U Administrator

Password for :Zone 2.0.10.in-addr.arpa created successfully

Если требуется использовать несколько реверсивных зон, просто выполните команду несколько раз с указанием параметров соответствующих подсетей.Изменение реверсивных зон не требует перезапуска сервисов Samba или BIND.

Структура Samba-групп

Samba-группы могут быть следующих типов:

  • (номер типа группы )
  • (номер типа группы )
  • (номер типа группы )

Группы, созданные по умолчанию:

  • Доменные группы — глобальные группы, которые действуют в домене.

    • — администраторы домена (полные права на компьютерах в домене).
    • — гости домена (минимальные права).
    • — пользователи домена.
    • — компьютеры домена.
  • Локальные группы — группы, действующие локально на данном компьютере.
    Локальные группы отсутствуют

  • Встроенные группы — группы встроенные в систему.

    • — администраторы (полные права).
    • — операторы учетных записей. Создание и управление пользовательской учетной информацией, создание и управление группами, резервное копирование файлов и каталогов.
    • — операторы архивов. Резервное копирование, восстановление из резервной копии, остановка системы.
    • — операторы печати. Управление принтерами, резервное копирование.
    • — репликаторы. Эта группа используется службой репликации File Replication на контроллерах домена.
    • — операторы системы. Изменение системного времени, останов системы, останов с удаленной системы, резервное копирование, восстановление из резервной копии, блокирование сервера, преодоление блокировки сервера, форматирование жесткого диска, управление сетевыми каталогами, управление принтерами.

Пример создания доменной группы test. По умолчанию создается доменная группа, тип группы — .

cl-groupadd test samba

 * Группа 'test' добавлена в Samba сервис

Пример создания встроенной группы Power Users — пользователей, имеющих дополнительные права.

cl-groupadd -g 547 —rid 547 -t 5 ‘Power Users’ samba

 * Группа 'Power Users' добавлена в Samba сервис

Где:

  • — идентификатор группы 547 (Group ID)
  • — уникальный идентификатор 547 (RID)
  • — тип группы 5 (встроенная группа)

Подключение Windows-клиентов

Важно

В ОС семейства Windows активируйте учетную запись Администратора командой:

Подключение клиента с ОС Windows 7

Для подключения клиента с ОС Windows 7 войдите в систему под учётной записью Администратора и с помощью текстового редактора создайте текстовый файл с именем со следующим содержимым:

samba_7_2008_fix.reg

Windows Registry Editor Version 5.00


"DomainCompatibilityMode"=dword:00000001
"DNSNameResolutionRequired"=dword:00000000

Дважды кликните файл, чтобы импортировать его в реестр. После этого перезагрузитесь, чтобы изменения вступили в силу.

Теперь необходимо ввести компьютер в Samba-домен. Для этого перейдите в свойства компьютера, а оттуда в настройку удалённого доступа. Во вкладке «Имя компьютера» нажмите кнопку «Изменить».

Далее укажите, что компьютер является членом домена, и введите его имя:

Введите имя и пароль пользователя, созданного на Samba-сервере и входящего в группу администраторов домена:

После этого компьютер станет членом домена:

Подключение клиента с ОС Windows 10

Для подключения клиента с ОС Windows 10 войдите в систему под учётной записью Администратора и с помощью текстового редактора создайте текстовый файл с именем со следующим содержимым:

samba_7_2008_fix.reg

Windows Registry Editor Version 5.00


"DomainCompatibilityMode"=dword:00000001
"DNSNameResolutionRequired"=dword:00000000

Дважды кликните файл, чтобы импортировать его в реестр. После этого перезагрузитесь, чтобы изменения вступили в силу.

Отредактируйте файл на сервере, добавив в секцию «global»м следующее:

/etc/samba/smb.conf

...
server max protocol = NT1
...

После этого перезапустите сервис samba:

/etc/init.d/samba restart

samba             | * samba -> stop: smbd ...                             
samba             | * samba -> stop: nmbd ...                             
samba             | * samba -> start: smbd ...                            
samba             | * samba -> start: nmbd ...                            

Теперь необходимо ввести компьютер в Samba-домен. Для этого перейдите в свойства компьютера, а оттуда в настройку удалённого доступа. Во вкладке «Имя компьютера» нажмите кнопку «Изменить».

Далее укажите, что компьютер является членом домена, и введите его имя:

Введите имя и пароль пользователя, созданного на Samba-сервере и входящего в группу администраторов домена:

После этого компьютер станет членом домена:

Подключение клиента с ОС Windows Server 2008

Для подключения клиента с ОС Windows 2008 войдите в систему под учётной записью Администратора и с помощью текстового редактора создайте текстовый файл с именем со следующим содержимым:

samba_7_2008_fix.reg

Windows Registry Editor Version 5.00


"DomainCompatibilityMode"=dword:00000001
"DNSNameResolutionRequired"=dword:00000000

Дважды кликните файл, чтобы импортировать его в реестр. После этого перезагрузитесь, чтобы изменения вступили в силу.

Теперь необходимо ввести компьютер в Samba)домен. Для этого перейдите в свойства компьютера, а оттуда в настройку удалённого доступа. Во вкладке «Имя компьютера» нажмите кнопку «Изменить».

Далее укажите, что компьютер является членом домена, и введите его имя:

Введите имя и пароль пользователя, созданного на Samba-сервере и входящего в группу администраторов домена:

После этого компьютер станет членом домена:

Подготовка системы (Debian 9 Stretch)

Перед началом выполнения ниже описанных действий обновляем систему до актуального состояния:

1 apt-get update&&apt-get upgrade-y

Указываем FQDN (Fully Qualified Domain Name) имя системы, в файле (/etc/hostname):

1 datastore1.jakonda.local

Так же файл (/etc/hosts) приводим к виду таким образом, чтобы в нём была запись с полным доменным именем компьютера и с коротким именем, ссылающаяся на один из внутренних IP:

1
2

127.0.0.1localhost

127.0.1.1datastore1.jakonda.local datastore1

Настраиваем синхронизацию времени с контроллером домена, выполняем установку NTP, выполняем синхронизацию времени с контроллером домена:

1
2
3

apt-get install ntp ntpdate

ntpdate dc1.jakonda.local

Более подробно о синхронизации времени на Debian 8 Jessie/Ubuntu Server 14.04 можно почитать в этой статье

Настройка Active Directory (Windows Server 2012 R2)

В DNS зону (JAKONDA.LOCAL), добавляем A-запись файлового сервера:

Создаем служебного пользователя (прим. datastore1), с бесконечным срок действия пароля.

Создаем KEYTAB-файл (необходим для аутентификации пользователей в Active Directory). В командной строке с правами администраторы выполняем команду (соблюдая регистр):

1 ktpass-princ HTTPdatastore1.jakonda.local@JAKONDA.LOCAL-mapuser datastore1@JAKONDA.LOCAL-pass Aa1234567-crypto RC4-HMAC-NT-ptype KRB5_NT_PRINCIPAL-outC\datastore1.keytab

Полученный KEYTAB-файл, передаем любым удобным способом на файловый сервер (расположение KEYTAB-файла на моем файловом сервере — /root/datastore1.keytab). Как передать файл посредством утилиты PuTTY можно прочитать тут

Настройка Kerberos

Установка пакетов для поддержки аутентификации Kerberos:

1 apt-get install krb5-user

В ходе установки может появится запрос указать область по-умолчанию для Kerberos, область необходимо его указать в заглавном виде (прим. JAKONDA.LOCAL)

Файл конфигурации Kerberos (/etc/krb5.conf), приводим к виду:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

logging

default=FILEvarlogkrb5libs.log

kdc=FILEvarlogkrb5kdc.log

admin_server=FILEvarlogkadmind.log

libdefaults

default_realm=JAKONDA.LOCAL

default_keytab_name=rootdatastore1.keytab

dns_lookup_kdc=false

dns_lookup_realm=false

forwardable=true

ticket_lifetime=24h

realms

JAKONDA.LOCAL={

kdc=dc1.jakonda.local

default_domain=JAKONDA.LOCAL

admin_server=dc1.jakonda.local

}

domain_realm

.jakonda.local=JAKONDA.LOCAL

jakonda.local=JAKONDA.LOCAL

Соответственно подставляем название своего домена вместо jakonda.local/JAKONDA.LOCAL

Проверка работы Kerberos, выполним авторизацию в Active Directory:

1
2
3
4
5

kinit-kV-pHTTPdatastore1.jakonda.local

Using default cachetmpkrb5cc_0

Using principalHTTPdatastore1.jakonda.local@JAKONDA.LOCAL

Authenticated to Kerberos v5

Удаляем полученный билет:

1 kdestroy

Инструмент wbinfo

При установке пакета samba автоматически устанавливается служба winbindd.

Для работы с этой службой используется инструмент командной строки wbinfo, позволяющий получать информацию о пользователях и группах AD.

Примеры команд:

Команда Описание
wbinfo -u Вывести список пользователей
wbinfo -g Вывести список групп
wbinfo -i имя_пользователя Вывести подробную информацию о пользователе
wbinfo -?wbinfo —help Вывести справку по командам

Настройка хостов — участников домена для входа доменных пользователей

По умолчанию, пользователи домена AD не могут выполнять вход в Linux-системы.Для обеспечения входа в Linux-системы с учетными записями  Active Directory необходимо внести следующие изменения в настройки Samba AD DC в настройки пользовательских компьютеров.

Установка

Для своих серверов я всегда использую Centos, но здесь пришлось сделать исключение и выбрать Debian, т.к. Samba, доступная из основных пакетов в Centos, не может выступать в роли AD.

Вариантов установки на Centos было несколько: собрать из пакетов (что на продуктивном сервере совсем некошерно) или установить из сторонних репозиториев (например, tissamba), но решил попробовать Debian, т.к. не хотелось искать обходные пути.

Но и с Debian оказался нюанс, т.к. в основных стабильных репозиториях не было нужной мне версии. Тем не менее, вариант установки из официальных репозиториев, пусть и тестовых, меня более чем устроил.

Каждый волен выбирать тот вариант установки и тот дистрибутив, который подходит для той или иной задачи, но стоит учесть будущие возможные обновления и связанные с этим проблемы при использовании сборки из исходников или чужого репозитория, который не будет работать, например.

Зависимости, необходимые для Samba AD в Debian:

В оф. документации указаны пакеты python-gpgme python3-gpgme для зависимостей, но в Debian 10 его больше нет, так что его я не устанавливал.

Организация доступа к Windows с помощью клиента smbclient

В первую очередь, нам необходимо убедиться в том, может ли наш Linux взаимодействовать с Windows с помощью Samba. Самый простой способ, это воспользоваться FTP-подобным клиентом . C помощью которого, можно отправить запрос системе Windows и получить информацию о том, какие ресурсы Windows являются доступными.

samba:~# smbclient -L host -U%
Domain= OS= Server=

 Sharename       Type      Comment
 ---------       ----      -------
Error returning browse list: NT_STATUS_ACCESS_DENIED
Domain= OS= Server=

 Server               Comment
 ---------            -------
 HOST

 Workgroup            Master
 ---------            -------
 WORKGROUP            HOST
samba:~# smbclient -L host -UАдминистратор%12345
Domain= OS= Server=

 Sharename       Type      Comment
 ---------       ----      -------
 IPC$            IPC       Удаленный IPC
 print$          Disk      Драйверы принтеров
 SharedDocs      Disk
 PrinterHP3005   Printer   HP3005
 share           Disk
 ADMIN$          Disk      Удаленный Admin
 share_ware      Disk
 C$              Disk      Стандартный общий ресурс
Domain= OS= Server=

 Server               Comment
 ---------            -------

 Workgroup            Master
 ---------            -------

Из листинга видно, как мы с помощью smbclient и параметра -L запросили список доступных ресурсов на машине host от имени анонимного пользователя (параметр -U%). В ответ Windows нам сказал, что Error returning browse list: NT_STATUS_ACCESS_DENIED, то есть анонимный доступ запрещен. Далее, мы попробовали подключиться к машине от имени пользователя Администратор с паролем 12345, который зарегистрирован в системе. Мы получили ответ со списком расшаренных ресурсов. Это не может не радовать. Давайте попробуем подключиться к шаре share:

samba:~# cd smb/
samba:~/smb# smbclient //host/share -UАдминистратор%12345
Domain= OS= Server=
smb: \> dir
 .                                   D        0  Fri Mar 18 17:36:56 2011
 ..                                  D        0  Fri Mar 18 17:36:56 2011
 ime                                 D        0  Fri Mar 18 17:36:43 2011
 Мои рисунки              DR        0  Fri Mar 18 17:36:56 2011
 Моя музыка                DR        0  Fri Mar 18 17:36:56 2011

 40915 blocks of size 262144. 24388 blocks available
smb: \> cd ime
smb: \ime\> dir
 .                                   D        0  Fri Mar 18 17:36:43 2011
 ..                                  D        0  Fri Mar 18 17:36:43 2011
 chsime                              D        0  Fri Mar 18 17:36:43 2011
 CHTIME                              D        0  Fri Mar 18 17:36:43 2011
 imejp                               D        0  Fri Mar 18 17:36:43 2011
 imejp98                             D        0  Fri Mar 18 17:36:43 2011
 imjp8_1                             D        0  Fri Mar 18 17:36:43 2011
 imkr6_1                             D        0  Fri Mar 18 17:36:43 2011
 mscandui.dll                        A   220160  Tue Apr 15 16:00:00 2008
 shared                              D        0  Fri Mar 18 17:36:43 2011
 SOFTKBD.DLL                         A   130048  Tue Apr 15 16:00:00 2008
 SPGRMR.dll                          A    62976  Tue Apr 15 16:00:00 2008
 SPTIP.dll                           A   272384  Tue Apr 15 16:00:00 2008

 40915 blocks of size 262144. 24388 blocks available
smb: \ime\> get SPTIP.dll
getting file \ime\SPTIP.dll of size 272384 as SPTIP.dll (11565,2 KiloBytes/sec) (average 11565,2 KiloBytes/sec)
smb: \ime\> quit
samba:~/smb# ls -l
итого 269
drwxr-xr-x  2 root root   1024 Мар 18 19:00 .
drwxr-xr-x 13 root root   1024 Мар 18 18:50 ..
-rw-r--r--  1 root root 272384 Мар 18 19:00 SPTIP.dll

Итак, в приведенном листинге нам удалось подключиться к шаре \\host\share от пользователя Администратор с паролем 12345. Мы получили содержимое каталога (причем русские символы прекрасно отображаются), перешли в подкаталог ime, получили его содержимое и получили на локальную машину файл SPTIP.dll, командой get (команда как и у FTP клиента). Вы, наверно, заметили, что в утилите smbclient путь к шаре указывается с прямым слешем, хотя в Windows принято задавать путь с обратным слешем. Утилита smbclient довольно гибка и используется как часть утилиты smbprint, для передачи потока данных, отправленных на принтер.

Conclusion

In this article, you have created cross-platform online file shares using the Samba server. You have also accessed these shares from Windows, Linux, and macOS.

Samba shares have become so common that many applications are able to access the data stored in them. These applications can extend the functionality and usefulness of your Samba shares. For example, the mobile version of the media player VLC can connect to and stream music and video from your Samba share. To access it, select open MRL and use the standard Samba URL: . You can also use a Samba share as the destination for your backups with the cross-platform backup utility BackupPC.

In addition to acting as a simple file share, Samba can work with Windows Active Directory as either a domain controller or a member of a domain. The Samba Wiki User Documentation contains more information on how to do this.

ШАГ 6: Утилиты и диагностика Samba

# testparm
Load smb config files from etcsambasmb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE
  • smbget позволяет скачивать с windows, linux (д.уст. samba) файлы через SMB протокол. Скачать рекурсивно все директории и файлы:

    smbget -Rr smb://ip_addr/share
  • smbclient — утилита для подключения к общедоступным папкам.

    • Отобразить общедоступные ресурсы на удаленном хосте:

      smbclient -L ip_addrhostname
    • Посмотреть «шары» локально на стороне сервер

      smbclient -L 127.0.0.1
    • Просмотреть папку vip под пользователем tatyana

      $ smbclient \\\\10.26.95.220\\vip -U tatyana
  • nbtscan

    nbtscan ip_addr разрешить netbios-имя nbtscan не во всех системах ставится по-умолчанию,
    возможно, придётся доустанавливать вручную. nmblookup включен в пакет samba.
    nmblookup -A ip_addr

Step 6: Configure Samba Private Share

Now you know how to create Samba public shares, let’s go and create private and protected shares. Only users that are member of the approved group will be able to access the secure location with passwords.

First create a samba group called smbgroup for the share.. only members will have access. To create a groups in Ubuntu, run the commands below.

Then add a user to the group by running the commands below

Finally, all users who need to access a protected samba share will need to type a password. To add a user to samba password database, run the commands below for each user.

The user will be prompted to enter and confirm a password. This password will be used to access the protected samba shares.

Next, go and create a protected share in the /samba directory.

Then give only root and members group access to this share.

When you’re done creating the protected share, go and share it in the smb.conf file.

Then add configuration block below into smb.conf file just below the one above

Save your changes and you’re done.

Restart Samba and test your changes.

You should now see two folders… one is protected

Many more shares can be defined using the format above.

Only member of the smbgroup will be able to access the Protected area…

You could map the drive in Windows for easy access….

Enjoy!

That’s it!

Conclusion:

This post showed you how to install Samba on Ubuntu to allow file sharing. If you find any error above, please use the comment form below to report.

Thanks,

You may also like the post below:

Настройка Samba в Debian

Настройки Samba находятся в файле /etc/samba/smb.conf. Этот файл содержит общие настройки для Samba, а также сведения об общих ресурсах. Обычно в Debian предоставляются неплохие настройки по умолчанию, которые позволяют начать работать немедленно, что в общем не мешает взглянуть на них и внести изменения там, где это необходимо.

1. Базовые настройки

Первое что вам встретится в верхней части группы глобальных настроек  — настройка workgroup. Эта опция определяет имя рабочей группы Windows, частью которой станет ваш сервер. Значение по умолчанию — WORKGROUP, так как такое же значение, по умолчанию в задано в Windows. Если вы изменяли настройки рабочей группы в Windows, измените их также и здесь.

Следующая опция позволит ограничить доступ к вашему серверу. Если вы хотите ограничить доступ к общему ресурсу по ip адресу или маске сети, уберите символ комментария в строке где находится параметр interfaces, и укажите ip адрес или диапазон IP адресов, и интерфейс к которому они могут подключаться.

Если такой метод вам не нравится, вы можете добавить параметр hosts allow, чтобы определить, клиентов, которые могут подключаться к общему ресурсу. Укажите IP-адрес или диапазоны адресов.

Остальные параметры из группы глобальных настроек имеют довольно обоснованные значения по умолчанию. Вам не потребуется изменять их для того чтобы запустить свои общие ресурсы. Но не стоит ограничиваться только рассмотренными нами опциями, вы можете исследовать и другие параметры, и настраивать их по своему усмотрению. Настройка Samba Debian 10 практически завершена, осталось создать общую папку и пользователя.

2. Создание общего ресурса

В конфигурационном файле, по умолчанию, уже присутствуют несколько настроек для общих ресурсов. Они дают вам возможность настроить совместное использование домашних папок пользователей системы и принтеров. А доступ к каталогу печати уже открыт. Измените значение параметра browseable на no.

Теперь попробуйте создать свой собственный общий ресурс. Существует масса опций, которые вы можете использовать для своего общего ресурса Samba, но в этом руководстве будут рассмотрены лишь наиболее используемые из них.

Во-первых, дайте имя своему общему ресурсу, и поместите это имя в скобки.

В следующей строке напишите краткий комментарий, описывающий общий ресурс.

Затем задайте путь, эквивалентный абсолютному пути к общей папке.

Выберите, будет ли папка отображаться в файловом менеджере или же ее нужно будет подключать вручную.

Хотите ли вы, чтобы пользователи имели права на запись в общий ресурс или могли подключить его только для чтения?

Смогут ли гости получить доступ к общему ресурсу? В терминах Samba гости — это анонимные пользователи, для которых не существует записи в настройках доступа к общему ресурсу. Если выразиться короче, хотите ли вы защитить общий ресурс паролем, или ограничить доступ к ресурсу только для отдельных пользователей?

Если гости не будут иметь доступ к общей папке, то у кого он будет?

Ну вот и все. Есть еще и другие опции и другие способы выполнить эти базовые шаги, но они дадут вам в итоге приблизительно тот же результат. Если вы точно знаете что вам нужно, этих опций вам будет достаточно. Если соединить все что мы написали выше — у нас получится что-то вроде этого:

Сохраняем и закрываем файл. Затем перезагружаем Samba.

3. Создание пользователя

Для подключения к общей папке, если только вы не используете гостевой доступ, вам потребуется настроить учетные записи пользователей Samba. Это очень быстро, и потребует всего одной команды.

После этого вам будет предложено ввести пароль для этого пользователя. Это пароль, которым будут защищены доступные ему общие ресурсы.

Настройка Samba в Ubuntu 16.04

Ставим Samba и если у кого нет — пакет gksu, для возможности запуска окна настроек Samba:

sudo apt install samba system-config-samba gksu

Теперь переходим к настройке сервера

Создаём резервную копию оригинального файла конфигурации Samba:

sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak

После этого, создаём свой файл конфигурации:

sudo gedit /etc/samba/smb.conf

Указываем глобальные настройки файлового сервера.
Копируем в файл эти строки:


workgroup = WORKGROUP
server string = Samba Server %v
netbios name = SambaSrv
security = user
map to guest = bad user
name resolve order = bcast host
wins support = no
dns proxy = no

Что мы скопировали?
А вот что:

workgroup - рабочая группа, в которой находятся все наши машины
server string - строка коментария, где %v - это макрос, который будет заменён на версию Самбы
netbios name - имя Самба-сервера, которое будет отображаться в Windows
security - по умолчанию выполнять аутентификацию на уровне пользователя
map to guest - это инструкция демону, которая сообщает, что делать с запросами. bad user - означает,
что запросы с неправильным паролем будут отклонены, если такое имя пользователя существует
name resolve order - очередность разрешения IP адресов по NetBIOS имени. bcast - означает отправить
в локальную сеть широковещательный запрос. Если все компьютеры между которыми планируется взаимодействие
находятся в одной сети этот вариант оптимальный.
wins support - не устанавливайте этот параметр в yes если у вас нет нескольких подсетей и вы не хотите,
чтобы ваш nmbd работал как WINS сервер

Сохраняем изменения.

Теперь даём общий доступ к папке в Ubuntu, чтобы машины с Windows могли ею пользоваться.

Общий доступ к папке в Ubuntu

Создаём папку, к которой будем открывать доступ для всех:

sudo mkdir -p /samba/obmen

Ключ -p разрешает создавать вложенные папки.
~ — создать каталоги в домашней папке пользователя

После того как папка создана, нужно сделать для нее правильные права доступа. Следующие команды разрешают доступ к папке для всех и делают владельцем nobody:

cd /samba
sudo chmod -R 0755 obmen
sudo chown -R nobody:nogroup obmen/

Внесём изменения в файл настройки samba, добавив следующий раздел:


path = /samba/obmen
browsable = yes
writable = yes
guest ok = yes
read only = no

Теперь ваш конфигурационный файл должен выглядеть вот так:


workgroup = WORKGROUP
server string = Samba Server %v
netbios name = SambaSrv
security = user
map to guest = bad user
name resolve order = bcast host
dns proxy = no


path = /samba/obmen
browsable =yes
writable = yes
guest ok = yes
read only = no

Чтобы применить изменения, перезапустите сервер Samba:

sudo service smbd restart

С анонимным доступом к общему ресурсу мы закончили.

Теперь можем проверить доступность этой папки в Windows-машине.

Нажимаем Win+R и в адресной строке пишем:

Скрин показывает, что доступ получен, и получен он без вводи логин и пароля, то есть анонимно.

Защищенный общий доступ к папке Ubuntu

Чтобы расшарить папку для Windows в Ubuntu, к которой будут иметь доступ только пользователи из определенной группы, создадим отдельную папку и опишем ее в файле настройки Samba в Ubuntu.

Создаем папку:

sudo mkdir -p /samba/obmen/sec

Устанавливаем права, чтобы доступ к папке получали только пользователи из группы securedgroup.

Создаем группу:

sudo addgroup securedgroup

Настраиваем права:

cd /samba/obmen
sudo chmod -R 0770 sec/
sudo chown -R alex:securedgroup sec

Добавляем настройки в конфигурационный файл samba

Открываем конфигурационный файл

sudo gedit /etc/samba/smb.conf

И добавляем в него этот блок:


path = /samba/obmen/sec
valid users = @securedgroup
guest ok = no
writable = yes
browsable = yes

Перезапускаем сервер Samba.

Теперь доступ к общей папке в Ubuntu могут получить только пользователи группы securegroup.

Чтобы проверить как это работает добавим пользователя alex в нашу группу:

sudo usermod -a -G securedgroup alex

Чтобы пользователь мог работать с расшаренными папками в Ubuntu, он должен быть в базе данных Samba.

Создаём для него пароль Samba:

sudo smbpasswd -a alex

После ввода команды будет предложено ввести новый пароль.

Для применения изменений перезагружаем файловый сервер.

Для того, чтобы доступ к папке мог получить только определённый пользователь, заменяем @securedgroup на имя пользователя.

Вот и всё

10 октября 2016, 18:32
  
Александр

Linux

  
13304

Из этой категории

  • Установка LAMP-сервера и phpMyAdmin в Debian 10Установка XAMPP в Debian 10 (Ubuntu) LinuxОтключить пароль SUDO в LinuxBash-команды для экономии времениУстанавливаем Brackets в Debian 10Работа с пакетами при помощи dpkgНастройка Linux Debian 10Скачиваем сайты целиком — утилита wget15 специальных символов-команд, которые нужно знать для работы в Bash Linux42 команды Linux
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector