Создание подчиненного домена в лесу
Эллес может развертываться в роли первого контроллера домена в подчиненном домене в существующем лесу. Под подчиненным доменом понимается дочерний домен или домен — корень дополнительного дерева.
В процессе развертывания автоматически устанавливается доверительное отношение между доменами.
В результате развертывания:
-
пользователи одного домена леса могут авторизовываться и получать доступ к ресурсам другого домена леса;
-
разделы каталога уровня леса реплицируются между всеми доменами, включая подчиненные домены.
| В текущей версии Эллес поддерживается создание дочерних доменов второго уровня. |
Пример простого леса с подчиненными доменами:
Примеры в данном разделе основаны на следующих допущениях:
-
Развернут лес доменов на базе Microsoft Active Directory Domain Services (AD DS) и/или Эллес:
В текущей версии Эллес полноценная работа подчиненных доменов обеспечивается при развертывании в лесу, созданном на базе AD DS. -
в корневом/родительском домене леса работают контроллеры домена на базе AD DS и Эллес;
-
доступен контроллер домена с FSMO-ролью Domain Naming Master;
-
все контроллеры домена располагаются в одном сайте;
-
IP-адрес DNS-сервера в корневом/родительском домене —
10.0.9.100.
-
-
Требуется добавить в лес подчиненный домен на базе контроллера домена Эллес, который также будет выполнять роль DNS-сервера в рамках добавляемого домена, со следующими параметрами:
-
DNS-имя подчиненного домена леса:
-
в случае создания дочернего домена —
subsamdom.samdom.example.com; -
в случае создания домена — корня дополнительного дерева —
newsamdom.net;
-
-
статический IP-адрес добавляемого сервера —
10.0.9.200; -
полное доменное имя (FQDN) добавляемого сервера:
-
в случае создания дочернего домена —
subdc1.subsamdom.samdom.example.com; -
в случае создания домена — корня дополнительного дерева —
subdc1.newsamdom.net.
-
-
При выполнении операции развертывания используются учетные данные пользователя, включенного в группу Enterprise Admins.
| Для использования аутентификации Kerberos необходимо обеспечить синхронизацию времени между всеми участниками доменов. |
Подготовка к развертыванию
Перед началом развертывания Эллес в качестве первого контроллера домена в подчиненном домене:
-
Выберите DNS-имя для создаваемого подчиненного домена. При создании дочернего домена оно должно продолжать пространство имен родительского домена (в данном руководстве в качестве примера используется имя
subsamdom.samdom.example.com). При создании домена — корня дополнительного дерева его DNS-имя не должно продолжать пространство имен корневого домена леса и не должно быть связано иерархически с существующими именами доменов в лесу (в данном руководстве в качестве примера используется имяnewsamdom.net).Выбранное имя также будет использоваться в качестве имени области безопасности (realm) Kerberos.
После установки и настройки контроллера домена будет невозможно изменить имя DNS-зоны и имя области безопасности Kerberos, так как Эллес не поддерживает такое изменение.
-
Выберите для контроллера домена имя хоста длиной не более 15 символов (ограничение протокола NetBIOS) и назначьте его.
Например:
sudo hostnamectl set-hostname subdc1
Для применения изменений требуется перезагрузка сервера. -
Назначьте серверу, на котором будет развертываться контроллер домена, статический IP-адрес и зарезервируйте его на маршрутизаторе.
Контроллер домена Эллес будет обеспечивать разрешение DNS-имен для всех подключенных к нему рабочих станций. Поэтому при назначении ему IP-адреса может потребоваться использовать значение за пределами пула адресов DHCP. -
Убедитесь, что в файле /etc/hosts полное доменное имя (FQDN) и короткое имя хоста корректно сопоставлены с IP-адресом контроллера домена.
Например:
127.0.0.1 localhost 10.0.9.200 subdc1.subsamdom.samdom.example.com SUBDC1
Имя хоста и FQDN не должны сопоставляться с IP-адресом
127.0.0.1или любым другим IP-адресом, отличным от того, который назначен серверу контроллера домена в настройках LAN. -
Если контроллер домена Samba или Эллес ранее уже развертывался на сервере, перед установкой:
-
Определите, какие пакеты требуется удалить.
Например:
apt list --installed | grep samba
-
Удалите существующие пакеты с помощью пакетного менеджера.
Например:
sudo apt purge samba inno-samba samba-common-bin samba-common
-
Удалите содержимое каталога /app/inno-samba/, если он существует:
sudo rm -rf /app/inno-samba/*
-
-
Если ранее на сервере выполнялась настройка аутентификации по протоколу Kerberos, при необходимости создайте резервную копию файла /etc/krb5.conf и удалите его содержимое файла или сам файл. После завершения развертывания этот файл можно будет заменить файлом, сформированным Эллес в процессе выполнения операции.
-
Установите DNS-сервер BIND 9 и дополнительные утилиты для работы с ним:
sudo apt install bind9 bind9utils
-
Чтобы обеспечить корректное разрешение доменных имен, выполните настройку безусловного или условного перенаправления для зон родительского домена в конфигурации DNS-сервера BIND 9 на добавляемом сервере (см. подраздел «Настройка BIND 9 для делегирования зон DNS»).
Например, для настройки безусловного перенаправления укажите IP-адрес DNS-сервера корневого/родительского домена в значении параметра
forwardersв конфигурации DNS-сервера BIND 9.Пример минимального набора настроек в файле /etc/bind/named.conf.options:
options { directory "/var/cache/bind"; (1) forwarders { 10.0.9.100; }; (2) listen-on-v6 { none; }; (3) dnssec-validation no; (4) };1 Рабочий каталог DNS-сервера. 2 Серверы для перенаправления запросов, которые не могут быть разрешены текущим DNS-сервером. В примере в качестве такого сервера указан DNS-сервер корневого/родительского домена. 3 Использование только IPv4. 4 Для корректного разрешения доменных имен и выполнения репликации при взаимодействии с серверами в родительском домене необходимо явно отключить проверку подписания зон DNS в конфигурации BIND 9 в создаваемом подчиненном домене. -
Приведите файл с конфигурацией разрешения DNS-имен /etc/resolv.conf к следующему виду:
search subsamdom.samdom.example.com (1) nameserver 127.0.0.1 (2)
1 Список доменных суффиксов для добавления к неполным DNS-именам при попытке их разрешения. В данном случае указано DNS-имя создаваемого подчиненного домена. 2 IP-адрес DNS-сервера для разрешения доменных имен. Поскольку DNS-сервер BIND 9 работает на том же сервере, что и Эллес, в качестве сервера имен может быть указан локальный IP-адрес. Также может быть указан внешний IP-адрес сервера. Некоторые утилиты (например, NetworkManager) могут перезаписывать изменения, вносимые в данный файл вручную. См. описание корректного способа настройки разрешения имен в документации на используемый дистрибутив Linux. -
Проверьте корректность конфигурации BIND 9 и перезапустите DNS-сервер для применения изменений:
sudo named-checkconf sudo systemctl restart bind9.service
-
Убедитесь, что разрешение DNS-имен и записей работает корректно, например, с помощью утилиты
nslookup:nslookup -type=A DC1.SAMDOM.EXAMPLE.COM ... Name: DC1.SAMDOM.EXAMPLE.COM Address: 10.0.9.100
-
Установите основной пакет inno-samba, следуя инструкциям, приведенным в разделе «Установка пакета inno-samba».
Развертывание
Развертывание Эллес в качестве контроллера подчиненного домена предусматривает создание баз данных и первоначального набора записей, необходимых для работы домена, включая учетную запись администратора и записи DNS.
В состав пакета inno-samba входит встроенный инструмент командной строки samba-tool (/app/inno-samba/bin/samba-tool), позволяющий выполнить операцию развертывания с требуемыми параметрами, а также переопределить существующие или задать дополнительные настройки в конфигурационном файле smb.conf (в формате --option="<parameter name> = <parameter value>").
Развертывание выполняется только для первого контроллера в подчиненном домене. Остальные контроллеры должны присоединяться к существующему подчиненному домену.
Параметры развертывания
Развертывание домена выполняется с помощью подкоманды samba-tool domain add, которая принимает ряд параметров (см. полный список доступных параметров в разделе
«Администрирование домена»).
Обязательные параметры:
-
DNS-имя добавляемого подчиненного домена;
Имя должно быть уникальным в пределах леса. -
DNS-имя родительского домена при создании дочернего домена или DNS-имя корневого домена леса при создании домена — корня дополнительного дерева;
-
если создается домен — корень дополнительного дерева, требуется передать параметр
--role=tree-root; по умолчанию создается дочерний домен (--role=subdomain).
Рекомендованные параметры:
-
--dns-backend=BIND9_DLZ— использование плагинаBIND9_DLZдля интеграции с DNS-сервером BIND 9; -
--backend-store=mdb— использование LMDB в качестве базы данных;Если необходимо увеличить максимальный размер базы данных по умолчанию (8 ГБ), требуемое значение может быть передано в параметре
--backend-store-size. -
--function-level— функциональный уровень (режим работы) подчиненного домена; возможные значения:2008_R2 | 2012 | 2012_R2 | 2016; значение по умолчанию —2016;При добавлении подчиненного домена выполняется проверка: функциональный уровень леса =< функциональный уровень домена =< максимальный функциональный уровень, который может поддерживать контроллер домена.
Также подкоманда проверяет текущее значение версии схемы каталога. Если версия схемы ниже, чем в дистрибутиве Эллес, то для успешного выполнения операции:
-
у пользователя, от имени которого вызывается подкоманда, должны быть права администратора схемы (членство в группе
Schema Admins); -
должен быть доступен сервер с FSMO-ролью Schema Master.
Если хотя бы одно условие не выполняется, подкоманда прерывается с выводом сообщения об ошибке. Если все условия выполняются, выводится предупреждение об обновлении схемы и запрос подтверждения операции. При получении подтверждения обновляется схема, после чего добавляется подчиненный домен.
-
-
--option="rpc connection timeout = 120"— для успешного завершения работы подкоманды дополнительно рекомендуется изменить значение времени ожидания соединения с сервером RPC с помощью конфигурационного параметраrpc connection timeout.После успешного выполнения операции значение может быть изменено или может быть восстановлено значение по умолчанию. Для этого необходимо отредактировать значение параметра в конфигурационном файле smb.conf или удалить его из файла.
|
Если сервер, на котором выполняется развертывание, имеет несколько сетевых интерфейсов, дополнительно задайте следующие опции для привязки Эллес к определенным интерфейсам: --option="interfaces=lo eth0" --option="bind interfaces only=yes" Это необходимо для регистрации подкомандой |
Развертывание дочернего домена
Пример подкоманды для развертывания дочернего домена:
sudo /app/inno-samba/bin/samba-tool domain add subsamdom samdom.example.com \
--dns-backend=BIND9_DLZ \
--backend-store=mdb \
--function-level=2012_R2 \
--option="rpc connection timeout = 120" \
-U Administrator@SAMDOM.EXAMPLE.COM
В случае успешного завершения операции в конце вывода отображается сообщение:
INFO 2025-03-28 19:19:40,823 pid:1024 /app/inno-samba/lib/python3.7/site-packages/samba/add.py #1452: Added domain subsamdom.samdom.example.com (SID S-1-5-21-207620958-708556064-199204346) as a DC
Развертывание домена — корня дополнительного дерева
Пример подкоманды для развертывания домена — корня дополнительного дерева:
sudo /app/inno-samba/bin/samba-tool domain add newsamdom.net samdom.example.com \
--role=tree-root \
--dns-backend=BIND9_DLZ \
--backend-store=mdb \
--function-level=2012_R2 \
--option="rpc connection timeout = 120" \
-U Administrator@SAMDOM.EXAMPLE.COM
В случае успешного завершения операции в конце вывода отображается сообщение:
INFO 2025-03-28 19:19:40,823 pid:1621 /app/inno-samba/lib/python3.7/site-packages/samba/add.py #1452: Added domain newsamdom.net (SID S-1-5-21-1881019063-1858864412-2730101106) as a DC
Завершение настройки
После успешного развертывания выполните следующие шаги для завершения настройки контроллера домена:
-
Настройте автоматический запуск доменной службы
inno-samba:sudo systemctl unmask inno-samba.service sudo systemctl enable inno-samba.service
-
Для интеграции с сервером DNS BIND 9 через плагин
BIND9_DLZ:-
добавьте в конфигурационный файл /etc/bind/named.conf команду включения конфигурации inno-samba:
include "/app/inno-samba/bind-dns/named.conf";
-
добавьте в раздел
optionsфайла /etc/bind/named.conf.options настройку ключей авторизации:options { tkey-gssapi-keytab "/app/inno-samba/bind-dns/dns.keytab"; ... }; -
перезапустите сервис
bind9:sudo systemctl restart bind9.service
-
-
Перезапустите доменную службу
inno-samba:sudo systemctl restart inno-samba.service
-
Скопируйте конфигурацию Kerberos, созданную в процессе развертывания, в конфигурацию Kerberos, используемую операционной системой, например, с помощью следующей команды:
sudo cp /app/inno-samba/private/krb5.conf /etc/krb5.conf
Созданная при развертывании конфигурация Kerberos использует записи о ресурсах (SRV-записи) DNS-службы для поиска центра распространения ключей (KDC).
Проверка результатов развертывания
Для тестирования работы Эллес в качестве контроллера подчиненного домена могут быть выполнены, например, следующие проверки:
-
проверка доверительных отношений:
-
после развертывания дочернего домена:
-
на контроллере Эллес в дочернем домене доступна запись о двустороннем транзитивном доверительном отношении с родительским доменом:
/app/inno-samba/bin/samba-tool domain trust list Type[Parent] Transitive[Yes] Direction[BOTH] Name[samdom.example.com]
-
на контроллере Эллес в родительском домене доступна запись о двустороннем транзитивном доверительном отношении с дочерним доменом:
/app/inno-samba/bin/samba-tool domain trust list Type[Child] Transitive[Yes] Direction[BOTH] Name[subsamdom.samdom.example.com]
-
на контроллере на ОС Windows Server в родительском домене в оснастке Active Directory Domains and Trusts на вкладке Trusts окна свойств домена доступна запись о двустороннем транзитивном доверительном отношении типа
Parent-Childс дочерним доменом.
-
-
после развертывания домена — корня дополнительного дерева:
-
на контроллере Эллес в домене — корне дерева доступна запись о двустороннем транзитивном доверительном отношении с корневым доменом леса:
/app/inno-samba/bin/samba-tool domain trust list Type[TreeRoot] Transitive[Yes] Direction[BOTH] Name[samdom.example.com]
-
на контроллере Эллес в корневом домене леса доступна запись о двустороннем транзитивном доверительном отношении с доменом — корнем дерева:
/app/inno-samba/bin/samba-tool domain trust list Type[TreeRoot] Transitive[Yes] Direction[BOTH] Name[newsamdom.net]
-
на контроллере на ОС Windows Server в корневом домене леса в оснастке Active Directory Domains and Trusts на вкладке Trusts окна свойств корневого домена доступна запись о двустороннем транзитивном доверительном отношении типа
Tree Rootс доменом — корнем дерева.
-
-
-
проверка репликации — в выводе подкоманды не должно быть ошибок:
/app/inno-samba/bin/samba-tool drs showrepl
-
проверка конфигурации DNS (примеры для дочернего домена):
-
запрос значения SRV-записи
_ldapв домене:host -t SRV _ldap._tcp.subsamdom.samdom.example.com. _ldap._tcp.subsamdom.samdom.example.com has SRV record 0 100 389 subdc1.subsamdom.samdom.example.com.
-
запрос значения SRV-записи
_kerberosв домене:host -t SRV _kerberos._udp.subsamdom.samdom.example.com. _kerberos._udp.subsamdom.samdom.example.com has SRV record 0 100 88 subdc1.subsamdom.samdom.example.com.
-
запрос A-записи контроллера домена:
host -t A subdc1 subdc1.subsamdom.samdom.example.com has address 10.0.9.200
-
-
для проверки работы службы аутентификации по протоколу Kerberos (пример для дочернего домена):
-
выполните запрос билета Kerberos для учетной записи администратора подчиненного домена:
kinit Administrator@SUBSAMDOM.SAMDOM.EXAMPLE.COM
-
выведите список находящихся в кэше билетов Kerberos:
klist Credentials cache: FILE:/tmp/rkb5cc_1000 Principal: Administrator@SUBSAMDOM.SAMDOM.EXAMPLE.COM Issued Expires Principal May 15 13:03:47 2025 May 15 23:03:47 2025 krbtgt/SUBSAMDOM.SAMDOM.EXAMPLE.COM@SUBSAMDOM.SAMDOM.EXAMPLE.COM
-