Samba как контроллер домена

Хотя он не может представлять из себя первичный контроллер домена (PDC) Active Directory, Samba сервер может быть настроен как контроллер домена Windows NT4. Основным преимуществом такой конфигурации является возможность централизовать учетные записи пользователей и машин. Кроме того Samba может использовать различные базы данных для хранения информации о пользователях.

Первичный контроллер домена

В этом разделе рассматривается настройка Samba в качестве первичного контроллера домена (PDC) с использованием smbpasswd в качестве хранилища данных.

1. Первым делом установим Samba и libpam-smbpass для синхронизации учетных записей пользователей, введя в терминале:

sudo apt-get install samba libpam-smbpass

2. Далее настроим Samba редактированием /etc/samba/smb.conf. Режим безопасности следует установить user, а рабочую группу следует назвать в соответствии с именем вашей организации:

   workgroup = EXAMPLE
   ...
   security = user

3. В закомментированной секции "Domains" добавьте или раскомментируйте следующее:

   domain logons = yes
   logon path = \\%N\%U\profile
   logon drive = H:
   logon home = \\%N\%U
   logon script = logon.cmd
   add machine script = sudo /usr/sbin/useradd -N -g machines -c Machine -d /var/lib/samba -s /bin/false %u
Если вы не собираетесь использовать перемещаемые профили (Roaming Profiles), оставьте опции logon home и logon path закомментированными.
  1. domain logons: заставляет сервис netlogon взаимодействовать с Samba как с контроллером домена.

  2. logon path: помещает пользовательский профиль Windows в его домашний каталог. Также существует возможность настроить разделяемый ресурс [profiles], поместив все профили в один каталог.

  3. logon drive: определяет локальный путь для домашнего каталога.

  4. logon home: определяет местоположение домашнего каталога.

  5. logon script: определяет сценарий, который должен быть выполнен один раз при входе пользователя. Сценарий должен быть помещен в разделяемый ресурс [netlogon].

  6. add machine script: сценарий, который будет автоматически запущен при создании доверительной учетной записи машины при добавлении рабочей станции в домен.

    В этом примере требуется создать группу machines с использованием утилиты addgroup. Подробности смотрите в разделе Добавление и удаление пользователей.

4. Раскомментируйте ресурс [homes] чтобы указать домашний каталог для входа:

[homes]
   comment = Home Directories
   browseable = no
   read only = no
   create mask = 0700
   directory mask = 0700
   valid users = %S

5. При настройке Samba в качестве доменного контроллера требуется настроить ресурс [netlogon]. Для включения ресурса раскомментируйте:

[netlogon]
   comment = Network Logon Service
   path = /srv/samba/netlogon
   guest ok = yes
   read only = yes
   share modes = no
Оригинальный путь для ресурса netlogon /home/samba/netlogon, но по стандарту иерархии файловых систем (FHS) правильным расположением для данных, касающихся данной системы, является каталог /srv.

6. Теперь создадим каталог netlogon и пустой (пока) файл сценария logon.cmd:

sudo mkdir -p /srv/samba/netlogon
sudo touch /srv/samba/netlogon/logon.cmd

Вы можете ввести любые обычные команды сценария входа для Windows в logon.cmd чтобы настроить клиентское окружение.

7. Перезапустим Samba чтобы запустить контроллер нового домена:

sudo restart smbd
sudo restart nmbd

8. Наконец существует немного дополнительных команд, требуемых для установки соответствующих прав.

С заблокированным по умолчанию суперпользователем (root), чтобы присоединить рабочую станцию к домену, системная группа должна отображаться на Windows группу Domain Admins. С использованием утилиты net в терминале введите:

sudo net groupmap add ntgroup="Domain Admins" unixgroup=sysadmin rid=512 type=d
Замените sysadmin на ту группу, которая вам подходит. Кроме того, пользователь, используемый для присоединения к домену, должен входить в группу sysadmin, также как и в системную группу admin. Группа admin позволяет использовать команду sudo.

Если пользователь пока не имеет учетных записей Samba, вы можете добавить их с помощью утилиты smbpasswd, заменив имя пользователя sysadmin на требуемое:

sudo smbpasswd -a sysadmin

Также требуется явно предоставить права группе Domain Admins чтобы позволить выполнять сценарий добавления машин (и других административных функций). Это может быть достигнуто выполнением команды:

net rpc rights grant -U sysadmin "EXAMPLE\Domain Admins" SeMachineAccountPrivilege \
 SePrintOperatorPrivilege SeAddUsersPrivilege SeDiskOperatorPrivilege \
 SeRemoteShutdownPrivilege

Теперь вы имеете возможность присоединять клиентов Windows к домену таким же образом, как присоединяли их к NT4 домену на Windows сервере.

Резервный контроллер домена

При наличии первичного контроллера домена (PDC) в сети лучше всего иметь также и резервный контроллер домена (BDC). Это позволяет авторизоваться клиентам когда PDC становится недоступен.

Когда вы настраиваете Samba в качестве BDC, вам требуется выбрать способ синхронизации учетных записей с PDC. Существует несколько вариантов достижения этого с помощью scp, rsync или использования LDAP в качестве базы passdb.

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

1. Сначала установим samba и libpam-smbpass. Введите в терминале:

sudo apt-get install samba libpam-smbpass

2. Теперь отредактируем /etc/samba/smb.conf и снимем комментарий со следующих записей секции [global]:

   workgroup = EXAMPLE
   ...
   security = user

3.В закомментированной секции Domains снимите комментарии или добавьте записи:

   domain logons = yes
   domain master = no

4. Убедитесь, что пользователь имеет права на чтение файлов в каталоге /var/lib/samba. Например, чтобы разрешить пользователям группы admin копировать файлы с помощью scp, введите:

sudo chgrp -R admin /var/lib/samba

5. Далее синхронизируйте учетные записи пользователей, используя scp для копирования каталога /var/lib/samba с PDC:

sudo scp -r username@pdc:/var/lib/samba /var/lib
Замените username на реальное имя пользователя, а pdc на сетевое имя или адрес вашего действующего PDC.

6. Наконец, перезапустим Samba:

sudo restart smbd
sudo restart nmbd

Вам надо проверить, что ваш резервный контроллер домена работает, остановив сервис Samba на PDC, и затем попытаться авторизоваться на Windows клиенте, входящем в домен.

Другая вещь, о которой не стоит забывать: если вы настроили опцию logon home как каталог на PDC и он становится недоступен, доступ к домашнему каталогу пользователя также станет невозможным. Именно поэтому лучше настроить logon home расположенным на отдельном файловом сервере, отличном от PDC и BDC.

Ссылки

  1. Для более глубокого изучения настроек Samba смотрите Коллекцию ЧаВо по Samba.

  2. Это же руководство в печатном виде.

  3. Хорошее руководство - Using Samba от O'Reilly.

  4. 4 глава Коллекции ЧаВо по Samba раскрывает настройки первичного контроллера домена.

  5. 5 глава Коллекции ЧаВо по Samba посвящена настройкам резервного контроллера домена.

  6. Страница Ubuntu Wiki Samba.