Присоединение к домену в роли контроллера домена
Для обеспечения отказоустойчивости и балансировки нагрузки в доменный лес должны добавляться дополнительные контроллеры домена.
Примеры в данном разделе основаны на следующих допущениях:
-
В сети уже доступен полностью настроенный основной контроллер домена со следующими параметрами:
-
статический IP-адрес сервера —
10.0.9.100; -
полное доменное имя (FQDN) —
dc1.samdom.example.com.
-
-
Требуется добавить еще один контроллер домена, который также будет выполнять роль DNS-сервера, со следующими параметрами:
-
статический IP-адрес сервера —
10.0.9.150; -
полное доменное имя (FQDN) —
dc2.samdom.example.com.
-
Для выполнения операции присоединения требуется пароль администратора домена.
| Для использования аутентификации Kerberos необходимо обеспечить синхронизацию времени у всех участников домена. |
Присоединение
Для присоединения к домену выполните следующие шаги:
-
Назначьте серверу, на котором будет развертываться контроллер домена, статический IP-адрес.
В примерах в данном разделе в качестве IP-адреса сервера используется значение
10.0.9.150. -
Задайте IP-адрес существующего контроллера домена (
10.0.9.100) в качестве DNS-сервера.После внесенных изменений файл /etc/resolv.conf должен содержать следующие настройки:
search samdom.example.com nameserver 10.0.9.100
Некоторые утилиты (например, NetworkManager) могут перезаписывать изменения, вносимые в данный файл вручную. См. описание корректного способа настройки разрешения имен в документации на используемый дистрибутив Linux. -
Выберите для контроллера домена имя хоста длиной не более 15 символов (ограничение протокола NetBIOS) и назначьте его.
Например:
sudo hostnamectl set-hostname dc2
-
Убедитесь, что в файле /etc/hosts полное доменное имя (FQDN) и короткое имя хоста корректно сопоставлены с IP-адресом контроллера домена.
Например:
127.0.0.1 localhost 10.0.9.150 dc2.samdom.example.com DC2
Имя хоста и FQDN не должны сопоставляться с IP-адресом
127.0.0.1или любым другим IP-адресом, отличным от того, который назначен серверу контроллера домена в настройках LAN. -
Выполните стандартные проверки, чтобы убедиться в отсутствии на сервере следов прошлых установок Samba или Эллес.
-
Установите основной пакет inno-samba и дополнительные пакеты, следуя инструкциям, приведенным в разделе «Установка пакета inno-samba».
-
На первом контроллере домена:
-
создайте обратную DNS-зону для подключения нового контроллера:
/app/inno-samba/bin/samba-tool dns zonecreate dc2.samdom.example.com 9.0.10.in-addr.arpa -U Administrator Password for [SAMDOM\Administrator]: Zone 9.0.10.in-addr.arpa created successfully
-
проверьте наличие DNS-записи типа A для присоединяемого контроллера домена и удалите ее, если она содержит неправильный IP-адрес.
Например:
-
просмотр записи A:
-
с помощью утилиты
dig, входящей в состав BIND 9:dig +noall +answer A dc2.samdom.example.com
В примере:
-
A— тип записи DNS, информацию о которой требуется получить; -
dc2.samdom.example.com— доменное имя хоста присоединяемого контроллера домена.
-
-
с помощью утилиты
samba-tool:/app/inno-samba/bin/samba-tool dns query dc1.samdom.example.com samdom.example.com dc2 A -U Administrator
В примере:
-
dc1.samdom.example.com— доменное имя DNS-сервера; -
samdom.example.com— имя зоны DNS; -
dc2— имя записи DNS; -
A— тип записи DNS, информацию о которой требуется получить.
-
-
-
удаление записи А, если она сопоставлена с некорректным IP-адресом:
/app/inno-samba/bin/samba-tool dns delete dc1.samdom.example.com samdom.example.com dc2 A <wrong-ip-address> -U Administrator
В примере:
-
dc1.samdom.example.com— доменное имя DNS-сервера; -
samdom.example.com— имя зоны DNS; -
dc2— имя записи DNS; -
A— тип записи DNS, которую требуется удалить; -
wrong-ip-address— некорректный IP-адрес, сопоставленный с контроллером домена в DNS.
-
См. описание формата вызова подкоманд samba-tool dnsв разделе «Администрирование DNS». -
-
-
Настройте автоматический запуск доменной службы
inno-samba:sudo systemctl unmask inno-samba.service sudo systemctl enable inno-samba.service
-
Приведите файл /etc/krb5.conf к следующему виду:
[libdefaults] default_realm = SAMDOM.EXAMPLE.COM dns_lookup_realm = false dns_lookup_kdc = true -
Для проверки корректности работы аутентификации Kerberos запросите билет администратора домена:
kinit Administrator@SAMDOM.EXAMPLE.COM
-
Перед запуском развертывания в интерактивном режиме убедитесь в отсутствии файла /app/inno-samba/etc/smb.conf. Если он существует, переименуйте или удалите его.
-
Выполните присоединение к домену с помощью подкоманды
samba-tool domain joinс указанием режима ввода и дополнительных параметров.Режимы ввода:
-
DC— контроллер домена с полным набором функциональности и копией базы данных службы каталогов доступной как для чтения, так и для записи; -
RODC— контроллер домена с копией базы данных службы каталогов, доступной только для чтения (см. описание особенностей в разделе «Администрирование контроллера RODC»).Перед вводом контроллера в домен Active Directory в режиме RODC убедитесь, что лес и домен Active Directory соответствуют следующим требованиям:
-
функциональный уровень леса и домена — Windows Server 2003 или выше;
-
в домене имеются (или имелись ранее) обычные контроллеры домена на ОС Windows Server 2008 или выше;
-
лес подготовлен для развертывания контроллеров домена в режиме RODC.
Готовность леса к вводу контроллеров домена в режиме RODC может быть проверена, например, одним из следующих способов:
-
в домене уже существуют контроллеры домена, работающие в режиме RODC;
Для проверки используйте следующую команду — она должна вернуть число больше
0:([array](Get-ADDomainController -Filter 'IsReadOnly -eq $true')).Count -
в домене существует контейнер
ActivedirectoryRodcUpdateс атрибутомRevision = 2.Для проверки наличия контейнера и значения атрибута
Revisionиспользуйте следующую команду:Get-ADObject "CN=ActivedirectoryRodcUpdate,CN=ForestUpdates,CN=Configuration,DC=domain,DC=name" -Properties Revision
Если результаты проверок показывают, что лес не подготовлен, выполните необходимые шаги по подготовке в соответствии с инструкцией в официальной документации компании Microsoft.
-
Некоторые параметры (см. полный список доступных параметров в разделе «Администрирование домена»):
-
--dns-backend=NAME_SERVER_BACKEND— используемый DNS-сервер;Возможные значения:
-
BIND9_DLZ(при развертывании DNS-сервера BIND 9 совместно с контроллером домена Эллес; рекомендуется использовать во всех сценариях развертывания); -
SAMBA_INTERNAL(значение по умолчанию; не рекомендуется использовать); -
NONE(при использовании выделенного DNS-сервера);
-
-
--server=SERVER— контроллер домена для присоединения;При вводе нового контроллера в дочерний домен в многодоменном лесу в качестве прокси используется один из существующих контроллеров домена (proxy DC). Он отвечает за внесение изменений в соответствующие записи, которые затем должны реплицироваться на контроллер домена с FSMO-ролью Domain Naming Master.
Если опция
--serverне указана, такой прокси-контроллер выбирается автоматически по определенному алгоритму. В случае использования опции в качестве прокси выступает указанный в ней сервер.Для корректной работы механизма проксирования необходимо, чтобы существовал такой контроллер домена, с которого контроллер домена с FSMO-ролью Domain Naming Master мог бы получить раздел
Configurationпосредством репликации. Если такой контроллер отсутствует, то в логе операции присоединения будет содержаться следующее сообщение:Site to search connections is: Default-First-Site-Name Connecting to FSMO Domain Naming Master st01-win-r-dc1.ROOTST01.LAN Error during extra server search, might not be critical: (8419, 'No replication partners found: WERR_DS_CANT_FIND_DSA_OBJ, check if intrasite replication is enabled and use repadmin or samba-tool on Naming Master to check replication status') DC st01-win-r-dc1.ROOTST01.LAN will be used
Оно указывает на то, что у контроллера домена с FSMO-ролью Domain Naming Master нет подходящих партнеров по репликации.
Чтобы решить данную проблему, необходимо:
-
На контроллере домена с FSMO-ролью Domain Naming Master создать контракт на репликацию с одним из контроллеров в том домене, в который требуется ввести новый контроллер.
-
Перезапустить процедуру присоединения. При этом можно как явно указать целевой прокси-контроллер вручную с помощью опции
--server, так и задействовать механизм автоматического определения.
В случае успешного завершения операции в логе должно содержаться сообщение вида:
Site to search connections is: Default-First-Site-Name Connecting to FSMO Domain Naming Master st01-win-r-dc1.ROOTST01.LAN DCs suitable for join in a domain CHILDST01.ROOTST01.LAN * st01-win-c-dc1.CHILDST01.ROOTST01.LAN in a site Default-First-Site-Name * st01-win-c-dc2.CHILDST01.ROOTST01.LAN in a site Default-First-Site-Name Testing if server st01-win-c-dc1.CHILDST01.ROOTST01.LAN is alive The site of the proxy DC (st01-win-c-dc1.CHILDST01.ROOTST01.LAN) is equal to the specified one (Default-First-Site-Name) Determined proxy DC with Naming Master replication contract: st01-win-c-dc1.CHILDST01.ROOTST01.LAN
Сообщение имеет следующую структуру:
-
список подходящих контроллеров в домене, которые указаны в контрактах на репликацию раздела
Configuration, а также сайты, в которых они расположены; -
описание процесса перебора контроллеров в порядке указания с информацией о результатах тестирования их доступности;
-
дополнительная (некритичная) проверка на совпадение контроллера по сайту.
При выполнении всех прочих условий в ходе перебора предпочтение отдается контроллеру, находящемуся в том сайте, в который вводится новый контроллер.
В общем случае при указании сервера в качестве прокси для операции присоединения рекомендуется выбирать ближайший, то есть находящийся в том же сайте и в том же домене, а также наиболее производительный и/или менее нагруженный контроллер.
-
-
--site=SITE— привязка контроллера домена к определенному сайту; -
--option="interfaces= lo eth0" --option="bind interfaces only=yes"— привязка Эллес к указанным сетевым интерфейсам сервера (если их несколько);Указание данной опции позволяет
samba-toolзарегистрировать корректный IP-адрес при присоединении. -
--option="idmap_ldb:use rfc2307 = yes"— используйте данную опцию, если при развертывании остальных контроллеров домена Эллес передавался параметр--use-rfc2307; -
--realm=REALM_NAME— задание области безопасности для домена;Переданное значение переопределяет значение параметра
realmв файле /app/inno-samba/etc/smb.conf. -
--no-gc— выключение роли Global Catalog (GC) для нового контроллера при присоединении к домену; -
--option="tls priority = NORMAL:-VERS-TLS1.0:-VERS-TLS1.1:-RSA"— отключение устаревших алгоритмов шифрования и обмена ключами, разрешенных для использования по умолчанию при подключении к серверу LDAP;Параметр изменяет список приоритетов библиотеки GnuTLS по умолчанию (см. подробнее в документации на библиотеку). Рекомендуется использовать указанное значение для повышения уровня безопасности.
-
--option="dns:auto site coverage = off"— отключение функциональности автоматического покрытия контроллером домена Эллес сайтов без контроллеров домена (см. подробнее в разделе «Покрытие сайтов контроллерами домена»); -
--option="dns:all:site coverage = SiteName1, SiteNameN",--option="dns:gc:site coverage = SiteName1, SiteNameN",--option="dns:krb:site coverage = SiteName1, SiteNameN",--option="dns:ldap:site coverage = SiteName1, SiteNameN"— параметры для настройки покрытия сайтов (см. подробнее в разделе «Покрытие сайтов контроллерами домена»).
Пример команды ввода сервера в домен в режиме полнофункционального контроллера домена:
sudo /app/inno-samba/bin/samba-tool domain join samdom.example.com DC \ --dns-backend=BIND9_DLZ \ --backend-store=mdb \ --backend-store-size=16Gb \ -U 'Administrator@SAMDOM.EXAMPLE.COM'
Пример команды ввода сервера в домен в режиме контроллера домена с доступом к базе только для чтения:
sudo /app/inno-samba/bin/samba-tool domain join samdom.example.com RODC \ --dns-backend=BIND9_DLZ \ --server=dc1.samdom.example.com \ -U 'Administrator@SAMDOM.EXAMPLE.COM'В случае успешного выполнения присоединения в конце вывода отобразится строка:
-
при вводе в режиме DC:
Joined domain SAMDOM (SID S-1-5-21-469703510-2364959079-1506205053) as a DC
-
при вводе в режиме RODC:
Joined domain SAMDOM (SID S-1-5-21-469703510-2364959079-1506205053) as an RODC
-
-
Для настройки интеграции с DNS-сервером BIND 9 через плагин
BIND9_DLZ:-
добавьте в конец конфигурационного файла /etc/bind/named.conf директиву
includeдля включения в него конфигурации плагинаBIND9_DLZ:include "/app/inno-samba/bind-dns/named.conf";
Например:
echo 'include "/app/inno-samba/bind-dns/named.conf";' | sudo tee -a /etc/bind/named.conf
-
добавьте в раздел
optionsфайла /etc/bind/named.conf.options настройку ключей авторизации:options { tkey-gssapi-keytab "/app/inno-samba/bind-dns/dns.keytab"; ... }; -
если контроллер вводится в дочерний домен в многодоменном лесу Active Directory, добавьте в конфигурацию BIND 9 настройки перенаправления запросов для зон DNS в родительском домене:
-
создайте отдельный файл для определений зон в каталоге /etc/bind/ или используйте существующий файл /etc/bind/named.conf.local;
-
добавьте в файл определения зон родительского домена в следующем формате:
zone "root-domain.name" { type forward; forwarders { <dns-server-ip-address>; }; }; -
добавьте директиву
includeс путем к файлу в основной конфигурационный файл /etc/bind/named.conf перед строкой, добавляющей конфигурацию плагина `BIND9_DLZ`l; если используется файл named.conf.local, ссылка на него включена по умолчанию:cat /etc/bind/named.conf // This is the primary configuration file for the BIND DNS server named. // // Please read /usr/share/doc/bind9/README.Debian.gz for information on the // structure of BIND configuration files in Debian, *BEFORE* you customize // this configuration file. // // If you are just adding zones, please do that in /etc/bind/named.conf.local include "/etc/bind/named.conf.options"; include "/etc/bind/named.conf.local"; include "/etc/bind/named.conf.default-zones"; include "/app/inno-samba/bind-dns/named.conf";
См. более подробную информацию в разделе «Настройка DNS».
-
-
перезапустите сервис
bind9:sudo systemctl restart bind9.service
-
-
Перезапустите доменную службу
inno-samba:sudo systemctl restart inno-samba.service
Проверка результатов присоединения
Для проверки корректности присоединения:
-
Проверьте работу DNS-службы:
host -t A samdom.example.com samdom.example.com has address 10.0.9.100 samdom.example.com has address 10.0.9.150
В списке адресов должен отображаться IP-адрес добавленного контроллера домена.
-
Проверьте статус репликации между контроллерами домена в лесу AD с точки зрения добавленного контроллера с помощью следующей команды:
sudo /app/inno-samba/bin/samba-tool drs showrepl
Вывод команды содержит информацию о состоянии входящей и исходящей репликации в рамках соглашений между контроллерами домена.
В случае успешного выполнения репликации в каждом из блоков в разделах
INBOUND NEIGHBORSиOUTBOUND NEIGHBORSотображаются сообщения вида:Default-First-Site-Name\DC1 via RPC DSA object GUID: a470d3e8-6309-4e27-bd81-1ebdd064bcf4 Last attempt @ Thu Apr 27 14:15:36 2023 UTC was successful 0 consecutive failure(s). Last success @ Thu Apr 27 14:15:36 2023 UTCПосле присоединения к домену службе синхронизации данных может понадобиться до 15 минут для автоматического формирования подключений для репликации. -
Если сервер вводился в домен в режиме DC, создайте на нем нового пользователя с любым именем:
sudo /app/inno-samba/bin/samba-tool user add newuser
Убедитесь, что учетная запись созданного пользователя доступна на первом контроллере домена с помощью следующей команды:
/app/inno-samba/bin/samba-tool user list
-
Если сервер вводился в домен в режиме RODC:
-
создайте на контроллере домена DC1 пользователя newuser и добавьте его в группу
Allowed RODC Password Replication Group, чтобы разрешить репликацию его пароля на RODC; -
на сервере RODC проверьте возможность загрузки кэша пароля с помощью следующий команды:
/app/inno-samba/bin/samba-tool rodc preload newuser --server=dc1.samdom.example.com Replicating DN CN=newuser,CN=Users,DC=samdom,DC=example,DC=com Exop on[CN=newuser,CN=Users,DC=samdom,DC=example,DC=com] objects[1] linked_values[0]
-