Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Серверы Linux. Часть VI. Знакомство с сервером Samba

Оригинал: Samba domain controller
Автор: Paul Cobbaut
Дата публикации: 24 мая 2015 г.
Перевод: A.Панин
Дата перевода: 15 июля 2015 г.

Глава 17. Сервер Samba в роли контроллера домена

17.1. О контроллерах домена

17.1.1. Windows NT4

ОС Windows NT4 работает с отдельными ведущими контроллерами доменов, осуществляющими репликацию данных. При работе с данной операционной системой в рамках домена используется ровно один первичный контроллер домена (Primary Domain Controller - PDC), а также при необходимости резервирующие контроллеры домена (Backup Domain Controller - BDC). Сервер Samba 3 реализует как все возможности первичных и резервирующих контроллеров домена из состава ОС Windows NT4, так и некоторые дополнительные возможности. Упомянутыми возможностями являются поддержка файловых операций и операций печати, поддержка механизма управления доменом с единым входом в домен, поддержка сценариев, исполняющихся при осуществлении входа в систему, поддержка механизмов обслуживания домашних директорий, а также перемещаемых профилей пользователей.

17.1.2. Windows 200x

Вместе с выпуском ОС Windows 2000 была представлена технология Active Directory. AD предусматривает использование механизма репликации данных с использованием множества ведущих серверов, а также групповых политик. Сервер Samba 3 может выступать лишь в роли участника домена Active Directory, так как он не позволяет осуществлять управление групповыми политиками. Сервер Samba 4 может осуществлять управление групповыми политиками (на момент написания главы доступна лишь его бета-версия).

17.1.3. Samba 3

Сервер Samba 3 может выступать в роли контроллера домена в рамках собственного домена. В рамках домена на основе ОС Windows NT4 с одним первичным контроллером домена и несколькими резервирующими контроллерами домена, которые могут вводиться в строй при необходимости, сервер Samba 3 может выступать лишь в роли участника домена. Это же утверждение справедливо и для сервера Samba 3 в рамках домена Active Directory. Если говорить кратко, то контроллер домена на основе сервера Samba 3 не может управлять доменом совместно с контроллерами домена на основе ОС Windows.

17.1.4. Samba 4

Сервер Samba 4 может выступать в роли контроллера домена Active Directory и решать такие задачи, как управление групповыми политиками. На момент написания данной главы версия сервера Samba 4, пригодная для промышленного использования, все еще не выпущена!

17.2. О режимах контроля доступа к разделяемым ресурсам

17.2.1. Режим контроля доступа security = share

Данный режим контроля доступа типичен для 'Windows для рабочих групп', где клиент отправляет запрос на соединение с разделяемым ресурсом и предоставляет пароль для установки этого соединения. Любой пользователь, которому известен пароль для доступа к разделяемому ресурсу, может получить доступ к нему. Данный режим доступа использовался в ОС Windows 3.11, Windows 95, Windows 98 и Windows ME.

17.2.2. Режим контроля доступа security = user

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

17.2.3. Режим контроля доступа security = domain

При использовании данного режима контроля доступа сервер Samba получает возможность сверять данные пользователя с данными, полученными по протоколу NTLM при использовании ОС Windows NT4 и ото всех доменов Active Directory. В данном случае сервер Samba будет работать по аналогии с резервирующим контроллером домена на основе ОС Windows NT4, входящим в домен Active Directory на основе ОС Windows 2000/3.

17.2.4. Режим контроля доступа security = ads

При использовании данного режима контроля доступа сервер Samba будет использовать сервер Kerberos для соединения с доменом Active Directory.

17.2.5. Режим контроля доступа security = server

Данный режим контроля доступа является устаревшим; он может использоваться для передачи данных для аутентификации на уровне другого сервера.

17.3. О модулях для доступа к паролям

В предыдущих главах мы использовали базу данных пользователей с именем smbpasswd. При настройке домена мы перешли к использованию модуля доступа к паролям из базы данных tdbsam. В качестве другого варианта может рассматриваться модуль для доступа к паролям посредством сервера LDAP. При работе с доменами большего масштаба предпочтительнее использовать сервер LDAP вместо не настолько масштабируемой базы данных tdbsam. Участники команды разработчиков проекта Samba не рекомендуют использовать базу данных tdbsam в том случае, если вам необходимо работать более чем с одним контроллером домена.

17.4. Секция глобальных параметров [global] файла конфигурации smb.conf

Пришло время приступить к добавлению комментариев в файл конфигурации вашего сервера Samba с именем smb.conf. В первую очередь обратим внимание на имена нашего домена и сервера в секции глобальных параметров [global], а также параметры управления доменом.

17.4.1. Режим контроля доступа (security)

В качестве значения параметра режима контроля доступа к разделяемым ресурсам security должно использоваться значение user (которое и используется по умолчанию). Данный режим позволяет серверу Samba осуществлять управление учетными записями пользователей, таким образом позволяя серверу Samba выступать в роли контроллера домена.

security = user

17.4.2. Приоритет сервера (os level)

Сервер Samba должен быть установлен на наиболее надежном компьютере из сети, поэтому он должен выигрывать все этапы процедуры выборов обозревателя сети и становиться им (значение параметра приоритета сервера os level должно превышать 32).

os level = 33

17.4.3. Модуль для доступа к паролям (passdb backend)

С помощью параметра passdb backend можно указать имя модуля для доступа к паролям, который будет использоваться сервером Samba, такое, как smbpasswd, tdbsam или ldap.

passdb backend = tdbsam

17.4.4. Предпочтительный переход в режим обозревателя сети (preferred master)

Установка значения yes параметра preferred master позволяет демону nmbd осуществить процедуру выборов обозревателя сети при запуске.

preferred master = yes

17.4.5. Поддержка службы входа в домен (domain logons)

Установка значения yes параметра domain logons позволяет сделать настраиваемый сервер Samba контроллером домена.

domain logons = yes

17.4.6. Запрос роли обозревателя сети для рабочей группы (domain master)

Установка значения yes параметра domain master позволяет серверу Samba запросить роль обозревателя сети для своей рабочей группы. Не используйте данный параметр при работе с рабочей группой, в которой уже присутствует первичный контроллер домена на основе ОС Windows NT4.

domain master = yes

17.4.7. Содержимое секции глобальных параметров [global]

В примере ниже показан вариант содержимого секции глобальных параметров [global] файла конфигурации сервера Samba для использования этого сервера в роли контроллера домена.

[global]
# Имена
        workgroup = SPORTS
        netbios name = DCSPORTS
        server string = Sports Domain Controller
# Параметры управления доменом
        security = user
        os level = 33
        preferred master = Yes
        domain master = Yes
        domain logons = Yes

17.5. Разделяемый ресурс netlogon

Наличие разделяемого ресурса netlogon является неотъемлемой частью спецификации контроллера домена от компании Microsoft. Ниже приведено содержимое секции файла конфигурации smb.conf, предназначенной для создания разделяемого ресурса netlogon на уровне сервера Samba.

[netlogon]
comment = Network Logon Service
path = /srv/samba/netlogon
admin users = root
guest ok = Yes
browseable = No

17.6. Другие секции описания разделяемых ресурсов [share]

Создадим несколько секций описания разделяемых ресурсов для тестирования работоспособности сервера Samba. К основной разделяемой директории с именем sports смогут получить доступ все пользователи, а к остальным разделяемым директориям - только участники соответствующих групп.

[sports]
comment = Information about all sports
path = /srv/samba/sports
valid users = @ntsports
read only = No

[tennis]
comment = Information about tennis
path = /srv/samba/tennis
valid users = @nttennis
read only = No

[football]
comment = Information about football
path = /srv/samba/football
valid users = @ntfootball
read only = No

17.7. Пользователи и группы

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

[root@RHEL52 samba]# groupadd ntadmins
[root@RHEL52 samba]# groupadd ntsports
[root@RHEL52 samba]# groupadd ntfootball
[root@RHEL52 samba]# groupadd nttennis

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

[root@RHEL52 samba]# useradd -m -G ntadmins Administrator
[root@RHEL52 samba]# useradd -m -G ntsports,nttennis venus
[root@RHEL52 samba]# useradd -m -G ntsports,nttennis kim
[root@RHEL52 samba]# useradd -m -G ntsports,nttennis jelena
[root@RHEL52 samba]# useradd -m -G ntsports,ntfootball figo
[root@RHEL52 samba]# useradd -m -G ntsports,ntfootball ronaldo
[root@RHEL52 samba]# useradd -m -G ntsports,ntfootball pfaff

В любом случае следует подстраховаться, проверив корректность создания учетных записей пользователей, групп пользователей и сохранения паролей в файлах /etc/passwd, /etc/group и /etc/shadow соответственно.

[root@RHEL52 samba]# tail -11 /etc/group
ntadmins:x:507:Administrator
ntsports:x:508:venus,kim,jelena,figo,ronaldo,pfaff
ntfootball:x:509:figo,ronaldo,pfaff
nttennis:x:510:venus,kim,jelena
Administrator:x:511:
venus:x:512:
kim:x:513:
jelena:x:514:
figo:x:515:
ronaldo:x:516:
pfaff:x:517:

17.8. База данных пользователей сервера Samba tdbsam

После этого нам следует передать информацию об учетных записях пользователей серверу Samba с помощью инструмента smbpasswd. В момент добавления информации об учетной записи первого пользователя в базу данных tdbsam будет создан файл базы данных с именем /etc/samba/passdb.tdb.

[root@RHEL52 samba]# smbpasswd -a root
New SMB password:
Retype new SMB password:
tdbsam_open: Converting version 0 database to version 3.
Added user root.

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

[root@RHEL4b samba]# smbpasswd -a root
New SMB password:
Retype new SMB password:
Added user root.

17.9. Об учетных записях компьютеров

Каждый компьютер, работающий под управлением ОС Windows семейства NT (Windows NT, 2000, XP, Vista) может стать участником домена. Присоединение к домену (путем нажатия правой кнопки мыши на иконке "Мой компьютер") подразумевает создание в рамках домена учетной записи компьютера. Эта учетная запись компьютера также будет иметь пароль (который вы не сможете узнать), использующийся для предотвращения случайного присоединения к домену других компьютеров с идентичными именами. Учетная запись компьютера, созданная средствами сервера Samba может быть обнаружена в файле /etc/passwd системы Linux. Учетные записи компьютеров выглядят аналогично обычным учетным записям пользователей, но их имена всегда заканчиваются символом доллара. Ниже приведен пример учетной записи компьютера, работающего под управлением ОС Windows 2003, созданной сервером Samba 3.

[root@RHEL52 samba]# tail -5 /etc/passwd
jelena:x:510:514::/home/jelena:/bin/bash
figo:x:511:515::/home/figo:/bin/bash
ronaldo:x:512:516::/home/ronaldo:/bin/bash
pfaff:x:513:517::/home/pfaff:/bin/bash
w2003ee$:x:514:518::/home/nobody:/bin/false

Для того, чтобы иметь возможность создания учетных записей пользователей, вам придется использовать учетную запись пользователя, обладающего правами для создания учетных записей пользователей (по умолчанию в Linux такими правами обладает лишь пользователь root). Также вам придется сообщить серверу Samba о способе выполнения описанной задачи путем добавления параметра add machine script в секцию глобальных параметров файла конфигурации smb.conf.

add machine script = /usr/sbin/useradd -s /bin/false -d /home/nobody %u

Теперь вы можете добавить компьютер, работающий под управлением ОС производства компании Microsoft, в домен sports (в процессе работы с учетной записью пользователя root). После перезагрузки компьютера, работающего под управлением ОС производства компании Microsoft, вы сможете использовать имя пользователя Administrator (и пароль Stargate 1) для входа в домен, но в результате будет выведено сообщение об ошибке, касающейся переносимого профиля. Мы исправим ее в следующем разделе.

При присоединении к домену, созданному на основе сервера Samba, вам придется вводить данные учетной записи пользователя системы Linux, который обладает достаточными правами для создания учетных записей пользователей (обычно такими правами обладает лишь пользователь root). В том случае, если компьютер, работающий под управлением ОС производства компании Microsoft, выводит сообщение о некорректном параметре, вы, скорее всего, забыли добавить параметр add machine script в файл конфигурации сервера Samba.

17.10. Локальные или переносимые профили

К вашему сведению, если вы захотите принудительно использовать локальные профили пользователей вместо переносимых, вы должны будете просто добавить две следующие строки в секцию глобальных параметров файла конфигурации сервера Samba с именем smb.conf.

logon home =
logon path =

Компьютеры, работающие под управлением ОС производства компании Microsoft, хранят большой объем метаданных, относящихся к конкретному пользователю, а также данных приложений в профиле пользователя. Добавление возможности доступа к описанному профилю пользователя из сети позволит пользователю сохранить собственные настройки рабочего стола и приложений при работе на других компьютерах из сети. Профили пользователей, передаваемые по сети, называются переносимыми профилями пользователей (roaming profiles) или плавающими профилями (roving profiles). Контроллер домена на основе сервера Samba может управлять такими профилями. В первую очередь мы должны будем добавить соответствующую секцию в файл конфигурации smb.conf.

[Profiles]
 comment = User Profiles
 path = /srv/samba/profiles
 readonly = No
 profile acls = Yes

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

logon path = \\%L\Profiles\%U

Переменная %L преобразуется в имя сервера Samba, а переменная %U - в имя пользователя. После добавления информации об учетной записи пользователя в базу данных smbpasswd, входа пользователя в домен и выходя из него, профиль пользователя будет выглядеть следующим образом.

[root@RHEL4b samba]# ll /srv/samba/profiles/Venus/
итого 568
drwxr-xr-x  4 Venus Venus   4096 июл  5 10:03 Application Data
drwxr-xr-x  2 Venus Venus   4096 июл  5 10:03 Cookies
drwxr-xr-x  3 Venus Venus   4096 июл  5 10:03 Desktop
drwxr-xr-x  3 Venus Venus   4096 июл  5 10:03 Favorites
drwxr-xr-x  4 Venus Venus   4096 июл  5 10:03 My Documents
drwxr-xr-x  2 Venus Venus   4096 июл  5 10:03 NetHood
-rwxr--r--  1 Venus Venus 524288 июл  5  2007 NTUSER.DAT
-rwxr--r--  1 Venus Venus   1024 июл  5  2007 NTUSER.DAT.LOG
-rw-r--r--  1 Venus Venus    268 июл  5 10:03 ntuser.ini
drwxr-xr-x  2 Venus Venus   4096 июл  5 10:03 PrintHood
drwxr-xr-x  2 Venus Venus   4096 июл  5 10:03 Recent
drwxr-xr-x  2 Venus Venus   4096 июл  5 10:03 SendTo
drwxr-xr-x  3 Venus Venus   4096 июл  5 10:03 Start Menu
drwxr-xr-x  2 Venus Venus   4096 июл  5 10:03 Templates

17.11. Группы пользователей в списках контроля доступа NTFS

На данный момент мы уже создали учетные записи пользователей в UNIX-подобной системе, а также группы пользователей в той же UNIX-подобной системе, которые содержат эти учетные записи пользователей.

[root@RHEL4b samba]# grep nt /etc/group
...
ntadmins:x:506:Administrator
ntsports:x:507:Venus,Serena,Kim,Figo,Pfaff
nttennis:x:508:Venus,Serena,Kim
ntfootball:x:509:Figo,Pfaff
[root@RHEL4b samba]# 

Мы добавили информацию об учетной записи пользователя с именем Venus в базу данных сервера Samba tdbsam с помощью утилиты smbpasswd.

smbpasswd -a Venus

Означает ли это то, что пользователь с именем Venus имеет доступ к разделяемым ресурсам tennis и sports? Да, механизм управления доступом к разделяемым ресурсам работает на уровне сервера Samba. Но при этом группа пользователей nttennis не доступна на машинах, работающих под управлением ОС Windows. Для того, чтобы группы пользователей были доступны на машинах, работающих под управлением ОС Windows (а именно, в меню на закладке управления правами доступа NTFS диалогов свойств файлов и директорий), нам придется установить соответствие между группами пользователей UNIX и Windows. Для этого мы должны использовать команду net groupmap.

[root@RHEL4b samba]# net groupmap add ntgroup="tennis" unixgroup=nttennis type=d
No rid or sid specified, choosing algorithmic mapping
Successully added group tennis to the mapping db
[root@RHEL4b samba]# net groupmap add ntgroup="football" unixgroup=ntfootball type=d
No rid or sid specified, choosing algorithmic mapping
Successully added group football to the mapping db
[root@RHEL4b samba]# net groupmap add ntgroup="sports" unixgroup=ntsports type=d
No rid or sid specified, choosing algorithmic mapping
Successully added group sports to the mapping db
[root@RHEL4b samba]# 

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

17.12. Сценарии, исполняющиеся при входе в систему

Перед тестированием сценария, исполняющегося при входе в систему, следует убедится в том, что в сценарии были использованы символы возврата каретки ОС DOS.

[root@RHEL4b netlogon]# cat start.bat 
net use Z: \\DCSPORTS0\SPORTS
[root@RHEL4b netlogon]# unix2dos start.bat 
unix2dos: converting file start.bat to DOS format ...
[root@RHEL4b netlogon]# 

После этого следует скопировать сценарии в разделяемую директорию netlogon и добавить следующую директиву в файл конфигурации smb.conf.

logon script = start.bat

17.13. Практическое задание: сервер Samba в роли контроллера домена

1.Настройте сервер Samba для работы в роли контроллера домена.

2. Создайте разделяемые директории salesdata, salespresentations и meetings. Разделяемая директория salesdata должна быть доступна всем продавцам и управляющим. Группа salespresentations должна быть доступна только всем продавцам. Разделяемая директория meetings должна быть доступна только всем управляющим. Используйте группы пользователей для решения данной задачи.

3. Присоедините компьютер, работающий под управлением ОС производства компании Microsoft, к вашему домену. Проверьте корректность создания учетной записи вашего компьютера в файле /etc/passwd.

4. Настройте и убедитесь в корректной работе механизма переносимых профилей.

5. Получите информацию о домашних директориях пользователей, настройте механизм их переноса и проверьте, получают ли пользователи из домена доступ к своим домашним директориям после доступа к устройству, обозначаемому с помощью буквы H: посредством Проводника ОС Microsoft Windows.

6. Используйте несколько групп пользователей с пользователями уровня контроллера домена на основе сервера Samba для добавления соответствующих групп уровня списков контроля доступа NTFS. Проверьте работоспособность последних!

7. Зная о том, что переменная %m содержит имя компьютера, сделайте так, чтобы для каждого компьютера (идентифицируемого с помощью учетной записи пользователя) создавался отдельный файл журнала.

8. Зная о том, что переменная %s содержит имя клиентской операционной системы, осуществите подключение файла конфигурации smb.%s.conf, содержащего секцию описания разделяемого ресурса. (Разделяемый ресурс должен быть видим лишь клиентам, использующим указанную операционную систему).

9. Если позволяет время (или вы ожидаете завершения выполнения данного практического задания другими студентами), скомбинируйте параметры "valid users" и "invalid users" с именами групп пользователей, а также имена пользователей с параметрами "hosts allow" и "hosts deny" и создайте таблицу приоритетов.


Предыдущий раздел: Оглавление Следующий раздел:
Глава 16. Сервер Samba в роли участника домена   Глава 18. Первый взгляд на версию 4 сервера Samba