Присоединение к домену в роли контроллера домена
Для обеспечения отказоустойчивости и балансировки нагрузки в доменный лес должны добавляться дополнительные контроллеры домена.
Примеры в данном разделе основаны на следующих допущениях:
-
В сети уже доступен полностью настроенный основной контроллер домена со следующими параметрами:
-
статический 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@DOMAIN.NAME'
В примере:
-
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@DOMAIN.NAME'
В примере:
-
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 Naming Master
.Если опция
--server
не указана, такой прокси-контроллер выбирается автоматически по определенному алгоритму. В случае использования опции в качестве прокси выступает указанный в ней сервер.Для корректной работы механизма проксирования необходимо, чтобы существовал такой контроллер домена, с которого контроллер домена с ролью
FSMO 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 Naming Master
нет подходящих партнеров по репликации.Чтобы решить данную проблему, необходимо:
-
На контроллере домена с ролью
FSMO 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. -
--option="ad dc functional level = <level>"
— добавление в файл /app/inno-samba/etc/smb.conf параметраad dc functional level
;Возможные значения:
2008_R2 | 2012 | 2012_R2 | 2016
. Значение по умолчанию —2008_R2
.Значение данного параметра задает «заявляемый» функциональный уровень контроллера домена. То есть при взаимодействии с другими участниками смешанной среды (контроллерами домена под управление ОС Windows Server) контроллер будет «заявлять», что работает на данном функциональном уровне.
Установка параметра вручную на отдельном контроллере домена повышает риск несовпадения набора возможностей на контроллерах в домене. Поэтому при принятии решения об использовании данного параметра следует установить его на всех контроллерах домена Эллес.
При присоединении к существующему домену рекомендуется указывать функциональный уровень не выше текущего уровня домена. -
--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 \ --option="ad dc functional level = 2012_R2" \ -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
; если используется файл 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
Убедитесь, что учетная запись созданного пользователя доступна на первом контроллере домена с помощью следующей команды:
sudo /app/inno-samba/bin/samba-tool user list
-
Если сервер вводился в домен в режиме RODC:
-
создайте на контроллере домена DC1 пользователя newuser и добавьте его в группу
Allowed RODC Password Replication Group
, чтобы разрешить репликацию его пароля на RODC; -
на сервере RODC проверьте возможность загрузки кэша пароля с помощью следующий команды:
sudo /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]
-