Дополнительный контроллер домена AD на Linux + Samba DC
Для резервного контроллера лучше всего использовать Debian, если нет каких-то дополнительных требований. Изначально пытался сделать с Ubuntu - огромное количество проблем из-за сетевых служб. Основная проблема с Ubuntu - имена не распознаются в локальной сети.
Инструкция актуальна для Debian 12 + Samba 4.17
Изначально предполагается, что на сервер прилетает DHCP c DNS, указывающим на контроллер домена
Делаем дополнительный контроллер на Linux
-
Обновляем пакеты и ставим samba с необходимыми пакетами
apt update && apt install samba heimdal-clients winbind -y -
Редактируем конфиг файл Kerberos
nano /etc/krb5.conf -
Добавляем\редактируем туда строки в раздел libdefaults
[libdefaults] dns_lookup_realm = false dns_lookup_kdc = true default_realm = полное_имя_домена -
Получаем билет kerberos, чтобы проверить авторизацию
kinit имя_пользователя_в_домене -
Проверяем, что получили, командой klist (отобразится список билетов, если всё ок)
klist
-
Подключаемся к домену
samba-tool domain join полное_имя_домена DC -U"имя_домена\доменный_админ" -
Если все ок, то в конце получаем строчку
Joined domain имя_домена (SID номер_сида) as a DC -
На контроллере с Windows добавляем подключение к домену на Samba для работы репликации в обе стороны

Открываем Active Directory - сайты и службы, выбираем новый контроллер на Samba (в данном случае SRV-DC02), выбираем NTDS Settings, в поле справа нажимаем ПКМ - Создать - Подключение, там выбираем второй домен, откуда реплицируемся. В итоге должно быть как на скрине. Т.е. на КД с Windows будет отображаться КД Samba, а на КД Samba - КД Windows. -
Ждем минут 15-20, проверяем репликацию
Со стороны Linuxsamba-tool drs showrepl
Смотрим, что нет фейлов и видно соседей. Пример вывода
Default-First-Site-Name\SRV-DC02 DSA Options: 0x00000001 DSA object GUID: f4160f3d-37ce-4e20-af87-60eb94f68ffd DSA invocationId: e18fc6cd-7367-4f43-945f-97adf803f7c1 ==== INBOUND NEIGHBORS ==== CN=Configuration,DC=ad,DC=example,DC=com Default-First-Site-Name\SRV-DC01 via RPC DSA object GUID: 962d0c6a-4884-4f62-9e34-bb21f6165b85 Last attempt @ Thu Jul 20 18:18:38 2023 MSK was successful 0 consecutive failure(s). Last success @ Thu Jul 20 18:18:38 2023 MSK CN=Schema,CN=Configuration,DC=ad,DC=example,DC=com Default-First-Site-Name\SRV-DC01 via RPC DSA object GUID: 962d0c6a-4884-4f62-9e34-bb21f6165b85 Last attempt @ Thu Jul 20 18:18:38 2023 MSK was successful 0 consecutive failure(s). Last success @ Thu Jul 20 18:18:38 2023 MSK DC=ad,DC=example,DC=com Default-First-Site-Name\SRV-DC01 via RPC DSA object GUID: 962d0c6a-4884-4f62-9e34-bb21f6165b85 Last attempt @ Thu Jul 20 18:20:15 2023 MSK was successful 0 consecutive failure(s). Last success @ Thu Jul 20 18:20:15 2023 MSK DC=DomainDnsZones,DC=ad,DC=example,DC=com Default-First-Site-Name\SRV-DC01 via RPC DSA object GUID: 962d0c6a-4884-4f62-9e34-bb21f6165b85 Last attempt @ Thu Jul 20 18:18:38 2023 MSK was successful 0 consecutive failure(s). Last success @ Thu Jul 20 18:18:38 2023 MSK DC=ForestDnsZones,DC=ad,DC=example,DC=com Default-First-Site-Name\SRV-DC01 via RPC DSA object GUID: 962d0c6a-4884-4f62-9e34-bb21f6165b85 Last attempt @ Thu Jul 20 18:18:38 2023 MSK was successful 0 consecutive failure(s). Last success @ Thu Jul 20 18:18:38 2023 MSK ==== OUTBOUND NEIGHBORS ==== CN=Configuration,DC=ad,DC=example,DC=com Default-First-Site-Name\SRV-DC01 via RPC DSA object GUID: 962d0c6a-4884-4f62-9e34-bb21f6165b85 Last attempt @ Thu Jul 20 18:08:45 2023 MSK was successful 0 consecutive failure(s). Last success @ Thu Jul 20 18:08:45 2023 MSK CN=Schema,CN=Configuration,DC=ad,DC=example,DC=com Default-First-Site-Name\SRV-DC01 via RPC DSA object GUID: 962d0c6a-4884-4f62-9e34-bb21f6165b85 Last attempt @ Thu Jul 20 14:36:04 2023 MSK was successful 0 consecutive failure(s). Last success @ Thu Jul 20 14:36:04 2023 MSK DC=ad,DC=example,DC=com Default-First-Site-Name\SRV-DC01 via RPC DSA object GUID: 962d0c6a-4884-4f62-9e34-bb21f6165b85 Last attempt @ Thu Jul 20 14:36:04 2023 MSK was successful 0 consecutive failure(s). Last success @ Thu Jul 20 14:36:04 2023 MSK DC=DomainDnsZones,DC=ad,DC=example,DC=com Default-First-Site-Name\SRV-DC01 via RPC DSA object GUID: 962d0c6a-4884-4f62-9e34-bb21f6165b85 Last attempt @ Thu Jul 20 14:36:04 2023 MSK was successful 0 consecutive failure(s). Last success @ Thu Jul 20 14:36:04 2023 MSK DC=ForestDnsZones,DC=ad,DC=example,DC=com Default-First-Site-Name\SRV-DC01 via RPC DSA object GUID: 962d0c6a-4884-4f62-9e34-bb21f6165b85 Last attempt @ Thu Jul 20 14:36:04 2023 MSK was successful 0 consecutive failure(s). Last success @ Thu Jul 20 14:36:04 2023 MSK ==== KCC CONNECTION OBJECTS ==== Connection -- Connection name: SRV-DC01 Enabled : TRUE Server DNS name : SRV-DC01.ad.example.com Server DN name : CN=NTDS Settings,CN=SRV-DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=ad,DC=example,DC=com TransportType: RPC options: 0x00000000 Warning: No NC replicated for Connection! Connection -- Connection name: a58daa83-8abd-4b28-b386-6089f66a7bb2 Enabled : TRUE Server DNS name : SRV-DC01.ad.example.com Server DN name : CN=NTDS Settings,CN=SRV-DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=ad,DC=example,DC=com TransportType: RPC options: 0x00000001 Warning: No NC replicated for Connection!Со стороны Windows
repadmin /showreplТакже смотрим ошибки и наличие соседей. Пример вывода
Repadmin: выполнение команды /showrepl контроллере домена localhost с полным доступом Default-First-Site-Name\SRV-DC01 Параметры DSA: IS_GC Параметры сайта: (none) DSA - GUID объекта: 962d0c6a-4884-4f62-9e34-bb21f6165b85 DSA - код вызова: a8539ab0-7014-4f61-83c9-04aff4e56b93 ==== ВХОДЯЩИЕ СОСЕДИ ====================================== DC=ad,DC=example,DC=com Default-First-Site-Name\SRV-DC02 через RPC DSA - GUID объекта: f4160f3d-37ce-4e20-af87-60eb94f68ffd Последняя попытка @ 2023-07-20 16:45:01 успешна. CN=Configuration,DC=ad,DC=example,DC=com Default-First-Site-Name\SRV-DC02 через RPC DSA - GUID объекта: f4160f3d-37ce-4e20-af87-60eb94f68ffd Последняя попытка @ 2023-07-20 17:23:45 успешна. CN=Schema,CN=Configuration,DC=ad,DC=example,DC=com Default-First-Site-Name\SRV-DC02 через RPC DSA - GUID объекта: f4160f3d-37ce-4e20-af87-60eb94f68ffd Последняя попытка @ 2023-07-20 16:45:01 успешна. DC=DomainDnsZones,DC=ad,DC=example,DC=com Default-First-Site-Name\SRV-DC02 через RPC DSA - GUID объекта: f4160f3d-37ce-4e20-af87-60eb94f68ffd Последняя попытка @ 2023-07-20 16:45:01 успешна. DC=ForestDnsZones,DC=ad,DC=example,DC=com Default-First-Site-Name\SRV-DC02 через RPC DSA - GUID объекта: f4160f3d-37ce-4e20-af87-60eb94f68ffd Последняя попытка @ 2023-07-20 16:45:01 успешна. -
Добавляем репликацию SysVol на Samba
На стороне Windows делаем задачу с параметрами
Триггер - Ежедневно, повторять каждый день, повторять задачу каждые 5 минут в течение бесконечно
Действие - запуск robocopy, аргументы - \\основной_кд\sysvol\имя_домен\ \\второй_кд\sysvol\имя_домен\ /mir /sec
Пример аргументов robocopy:
\\SRV-DC01\SYSVOL\ad.example.com\ \\SRV-DC02\SYSVOL\ad.example.com\ /mir /sec
После этого раз в 5 минут на домен с Samba будет улетать копия папки со всеми политиками и скриптами. В обратную сторону это не работает, но при необходимости можно добавить синхронизацию через rsync — см. Samba DC — репликация SYSVOL.