Выполнение присоединения требует:
- Наличия привилегий суперпользователя (в ОС СН - суперпользователя с высоким уровнем целостности);
- Наличия пароля администратора того домена, к котором будет выполняться присоединение.
Данная статья применима к:
- ОС ОН Орёл 2.12
- ОС СН Смоленск 1.6
- ОС СН Ленинград 8.1
Введение
Статья основана на материалах из wiki.samba.org
Для нормальной работы доменного леса Active Directory (AD) достаточно одного контроллера домена (domain controller, DC). Однако, для обеспечения отказоустойчивости и балансировки нагрузки, желательно всегда добавлять к домену дополнительные DC.
Процедура присоединения дополнительного Samba DC к существующему домену AD отличается от процедуры назначения первого DC домена.
Для создания нового доменного леса AD см. Samba как контроллер домена AD
В доменном лесу AD не существует разницы между различными DC, за исключением ролей FSMO, поэтому, когда речь идёт о домене AD, во избежание путаницы, используется единый термин "контроллер домена" или "DC".
Подготовка установки
Предполагается, что в сети уже имеется настроенный работающий сервер - контроллер домена Windows AD DC с адресом 10.0.2.10 и полным доменным именем dc1.samdom.example.com
На сервере Astra Linux:
- Настроить статический IP-адрес хоста (например, 10.0.2.250);
В качестве сервера DNS указать IP-адрес существующего сервера доменного DNS (т.е., в соответствии с указанными выше параметрами контроллера домена, адрес 10.0.2.10). Содержимое файла /etc/resolv.conf должно выглядеть примерно так:
search samdom.example.com
nameserver 10.0.2.10Задать полное доменное имя хоста:
- В файле /etc/hosts указать правильный адрес хоста, например:
Подробности см. Samba как контроллер домена AD
Дополнительно рекомендуется установить пакет dns-utils, содержащий инструмент dig для проверки настроек DNS:
sudo apt install dns-utilsЭтот инструмент позволяет проверять информацию, выдаваюмую DNS-серверами, и позволяет выбирать, у какого именно сервера запросить информацию.
Убедиться в правильности настройки DNS можно с помощью команды host, которая должна выдать правильный IP-адрес сервера:
dc2.samdom.example.com has address 10.0.2.10
Подготовка к присоединению к домену
Установка локального сервера DNS
По умолчанию, первый контроллер домена (DC) в доменном лесу поддерживает собственный сервер DNS для зон AD. Для обеспечения отказоустойчивости рекомендуется иметь в сети несколько DC, работающих также и как серверы DNS.
Если планируется поддерживать дополнительный DNS, то:
Для установки и настройки DNS см. BIND9 как DNS-сервер для Samba AD.
Присоединение к домену AD в роли DC
Присоединение к домену может быть совмещено с установкой Samba или может быть выполнено после выполнения установки. Подробнее про установку см.Samba как контроллер домена AD. В примере далее приведён полный сценарий, включающий и установку пакетов, и установку Samba, и присоединение к домену Windows AD.
После запуска нового контроллера домена служба синхронизации данных (knowledge consistency checker, KCC) на Samba DC создаёт соглашения о репликациии с другими DC в этом доменном лесу AD.
Автоматическая генерация соединений репликации может занять до 15-ти минут.
Пример сценария установки пакетов и выполнения присоединения к домену samdom.example.com в роли контроллера домена (DC), дополнительно работающего как сервер DNS с использованием сервиса DNS BIND9_DLZ:
# Устанавливаем пакеты
sudo apt install samba winbind libpam-winbind libnss-winbind libpam-krb5 krb5-config krb5-user krb5-kdc bind9
# Останавливаем ненужные службы
sudo systemctl stop winbind smbd nmbd krb5-kdc
sudo systemctl mask winbind smbd nmbd krb5-kdc
# Удаляем конфигурационный файл
sudo rm /etc/samba/smb.conf
# Выполнение присоединения
sudo samba-tool domain join samdom.example.com DC -U"SAMDOM\administrator" --dns-backend=BIND9_DLZ
# Включаем автоматический запуск служб
systemctl unmask samba-ad-dc
systemctl enable samba-ad-dc
# Перед запуском службы настраиваем DNS-сервер
echo 'include "/var/lib/samba/bind-dns/named.conf";' | sudo tee -a /etc/bind/named.conf
sudo chown root:bind /var/lib/samba/bind-dns
sudo systemctl restart bind9
# Запускаем службу
sudo systemctl start samba-ad-dc
После ввода команды будет запрошен пароль администратора домена, и выдана информация о ходе присоединения:
Другие часто используемые параметры команды samba-tool domain join:
Параметр | Описание |
---|---|
--site=SITE | Прямое указание хоста AD DC для присоединения. |
--option="interfaces=lo eth0" --option="bind interfaces only=yes" | Если хост имеет несколько сетевых интерфейсов, используйте эту опции для привязки Samba к нужным интерфейсам. Это позволит инструменту samba-tool в процессе присоединения зарегистрировать корректные IP-адреса хоста. |
--option='idmap_ldb:use rfc2307 = yes' | Если другие контроллеры были назначены с использованием опции --use-rfc2307, используйте эту опцию для присоединяемого контроллера. |
Подробности по команде samba-tool domain join см. в man samba-tool или с помощью команды:
Проверки результатов присоединения
После присоединения к домену в домене должны появиться два контроллера домена, и должны дублироваться основные службы: DNS, LDAP, Kerberos.
DNS
Адрес присоединённого контроллера домена должен появиться в списке адресов домена:
samdom.example.com has address 10.0.2.250
samdom.example.com has address 10.0.2.10
dig samdom.example.com @dc2.samdom.example.com
У ответов должен быть статус NOERROR и в ответах должна содержаться секция ANSWER SECTION с адресами серверов:
...
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25455
...
;; ANSWER SECTION:
samdom.example.com 600 IN A 10.0.2.250
samdom.example.com 600 IN A 10.0.2.10
...
Оба DNS сервера должны выдавать информацию о двух доменных службах каталогов:
dig SRV _ldap._tcp.samdom.example.com @dc2.samdom.example.com
...
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54924
...
;; ANSWER SECTION:
_ldap._tcp.samdom.example.com. 900 IN SRV 0 100 389 dc2.samdom.example.com.
_ldap._tcp.samdom.example.com. 600 IN SRV 0 100 389 dc1.samdom.example.com.
;; ADDITIONAL SECTION:
dc2.samdom.example.com. 900 IN A 10.0.2.250
dc1.samdom.example.com. 3600 IN A 10.0.2.10
...
Аналогично, оба DNS сервера должны выдавать информацию о двух доменных службах Kerberos:
dig SRV _kerberos._tcp.samdom.example.com @dc2.samdom.example.com
...
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54924
...
;; ANSWER SECTION:
_ldap._tcp.samdom.example.com. 900 IN SRV 0 100 389 dc2.samdom.example.com.
_ldap._tcp.samdom.example.com. 600 IN SRV 0 100 389 dc1.samdom.example.com.
;; ADDITIONAL SECTION:
dc1.samdom.example.com. 3600 IN A 10.0.2.10
dc2.samdom.example.com. 900 IN A 10.0.2.250
...
LDAP
Для проверки доступности и работоспособности службы LDAP можно запросить отчет о репликации:
Примерный вывод команды:
При проверке может выдаваться следующее предупреждение:
Согласно документации Samba, это предупреждение можно игнорировать.
Подробности см. Проверка статусов репликации каталогов.
Кроме этого, для проверки корректности работы репликации каталогов, добавьте нового пользователя на ранее установленном контроллере домена, и убедитесь, что этот пользователь автоматически появился на новом контроллере.
Также, можно использовать инструмент сравнения ldapcmp, чтобы сравнить два каталога. Подробности см. samba-tool ldapcmp.
Kerberos
Проверка работы Kerberos может быть выполнена получением билета Kerberos, например билета доменного администратора Windows AD (по умолчанию это administrator):
Проверить полученный билет можно командой klist:
Проверка файлового сервера
Подробности см. Samba как контроллер домена AD
Отображение встроенных пользователей и групп
Репликация ресурса Sysvol в настоящее время в Samba не поддерживается. Для использования существующих обходных решений все DC домена должны использовать одинаковое отбражение идентификаторов встроенных пользователей и групп.
По умолчанию, Samba DC хранит идентификаторы пользователей и групп в атрибуте 'xidNumber' в 'idmap.ldb'.
При этом, реализация 'idmap.ldb' не гарантирует, что все DC будут использовать одинаковый идентификатор для любого пользователя или группы.
Для того, чтобы обеспечить одинаковость идентификаторов, требуется:
- Создать актуальную резервную копию файла /var/lib/samba/private/idmap.ldb на ранее установленном DC командой:
- Переместить резервную копию в каталог /var/lib/samba/private/ на новом присоединяемом DC, и переименовать, удалив суффикс .bak, чтобы заменить существующий файл.
- Обновить список контроля доступа (ACL) каталога Sysvol на новом DC:
Настройка Winbindd на Samba AD DC
Необязательно. Подробности см. Настройка Winbindd на Samba AD DC.
Использование контроллера домена в качестве файлового сервера
Подробности см. Samba как контроллер домена AD
Репликация Sysvol
Samba в настоящее время не поддерживает репликацию Sysvol. Неподдерживаемые обходные решения см. Репликация Sysvol.
Если на других DC в каталоге Sysvol есть что-то, кроме GPO по умолчанию, обязательно нужно синхронизировать Sysvol на новом DC, иначе samba-tool ntacl sysvolreset будет завершаться с ошибкой.
Поиск и устранение проблем
В случае возникновения ошибок см. документацию и журналы:
- Системный журнал;
- Журналы Samba;
- Журналы BIND, если используется BIND9_DLZ
Подробности см. Поиск и устранение проблем