В современных IT-инфраструктурах отказоустойчивость и непрерывность работы сервисов аутентификации и авторизации являются критическими факторами. Единый контроллер домена создаёт риск полной остановки доступа пользователей к ресурсам при его сбое или необходимости планового обслуживания. Решением этой проблемы является развёртывание дополнительного (вторичного) контроллера домена, который берёт на себя нагрузку при недоступности основного и обеспечивает балансировку запросов.

Рассмотрим процесс установки и настройки второго контроллера домена на базе Samba AD DC в операционной системе Debian 13. Предполагается, что у вас уже функционирует первичный контроллер (dc1) с параметрами, соответствующими нашей предыдущей инструкции.

💡 Присоединяйтесь к нашим сообществам!

Будьте в курсе новых статей, обновлений и полезных материалов:

MAX MAX Telegram Telegram VK ВКонтакте Dzen Дзен RuTube RuTube

Содержание

Исходные данные

Параметр dc1 (Primary) dc2 (Secondary)
IP-адрес 192.168.0.11 192.168.0.16
Имя сервера dc1.itsch.lan dc2.itsch.lan
Домен itsch.lan itsch.lan
Шлюз 192.168.0.1 192.168.0.1
Подсеть 192.168.0.0/24 192.168.0.0/24
Роль Первичный DC Дополнительный DC

Требования: чистая установка Debian 13 на сервере dc2; на dc1 уже развёрнут домен; оба сервера в одной подсети.

1. Подготовка первичного контроллера (dc1)

Выполняется на сервере 192.168.0.11.

1.1. Проверка и донастройка NTP-сервера

Отредактируем конфигурационный файл chrony:

mcedit /etc/chrony/chrony.conf

Добавляем строки:

allow 192.168.0.0/24
server pool.ntp.org iburst

Перезапусткаем chrony и проверяем источники:

systemctl restart chrony
chronyc sources -v

1.2. Настройка DNS-форвардера на dc1

Добавляем в /etc/samba/smb.conf (раздел [global]):

dns forwarder = 8.8.8.8 8.8.4.4

Перезапускаем Samba:

systemctl restart samba-ad-dc

Проверяем внешний резолвинг:

ping ya.ru -c 2

1.3. Добавление peer-связи для NTP (рекомендуется)

В файле /etc/chrony/chrony.conf на dc1 добавляем:

peer dc2.itsch.lan iburst

Перезапускаем chrony:

systemctl restart chrony

2. Подготовка вторичного контроллера (dc2)

Выполняется на сервере 192.168.0.16.

2.1. Базовая настройка системы

apt update && apt upgrade -y
apt install -y mc curl wget net-tools dnsutils chrony
hostnamectl set-hostname dc2.itsch.lan
echo "192.168.0.16 dc2.itsch.lan dc2" >> /etc/hosts

2.2. Настройка сети (временно указываем DNS на dc1)

Определяем имя интерфейса:

INTERFACE=$(ip link show | grep -E '^[0-9]:' | grep -v lo | awk -F': ' '{print $2}' | head -1)

Создаём /etc/network/interfaces:

mcedit /etc/network/interfaces

Содержимое:

auto lo
iface lo inet loopback

auto ${INTERFACE}
iface ${INTERFACE} inet static
    address 192.168.0.16
    netmask 255.255.255.0
    gateway 192.168.0.1
    dns-nameservers 192.168.0.11 127.0.0.1
    dns-search itsch.lan

Применяем настройки:

systemctl restart networking

2.3. Фиксация резолвера для этапа присоединения

echo "nameserver 192.168.0.11" > /etc/resolv.conf
echo "search itsch.lan" >> /etc/resolv.conf
chattr +i /etc/resolv.conf

Проверяем связь с dc1:

ping dc1.itsch.lan
nslookup dc1.itsch.lan 192.168.0.11

3. Присоединение к домену

3.1. Установка пакетов Samba и Kerberos

apt install -y samba winbind krb5-user krb5-config

При установке Kerberos указываем:

3.2. Остановка стандартных служб

systemctl stop smbd nmbd winbind
systemctl disable smbd nmbd winbind
mv /etc/samba/smb.conf /etc/samba/smb.conf.bak

3.3. Вступление в домен как дополнительный DC

samba-tool domain join itsch.lan DC -U Administrator

Вводим пароль администратора домена. При успехе увидим: Joined domain ITSCH (SID ...) as a DC.

3.4. Копирование конфигурации Kerberos

cp /var/lib/samba/private/krb5.conf /etc/krb5.conf

3.5. Окончательная настройка DNS на dc2

chattr -i /etc/resolv.conf
mcedit /etc/resolv.conf

Приведём к виду:

nameserver 127.0.0.1
nameserver 192.168.0.11
search itsch.lan
options timeout:1 attempts:1 rotate
chattr +i /etc/resolv.conf

3.6. Запуск службы Samba AD DC

systemctl unmask samba-ad-dc
systemctl enable samba-ad-dc
systemctl start samba-ad-dc
systemctl status samba-ad-dc

3.7. Первичная проверка репликации

samba-tool drs showrepl

Все inbound-соседи должны иметь статус success.

 

 

4. Настройка DNS-зон и PTR-записей

4.1. На dc2 создаём обратную зону и PTR-записи

samba-tool dns zonecreate dc2.itsch.lan 0.168.192.in-addr.arpa -U Administrator
samba-tool dns add dc2.itsch.lan 0.168.192.in-addr.arpa 16 PTR dc2.itsch.lan. -U Administrator
samba-tool dns add dc2.itsch.lan 0.168.192.in-addr.arpa 11 PTR dc1.itsch.lan. -U Administrator

Если зона уже существует, команда zonecreate выдаст ошибку "Zone already exists" – это нормально.

4.2. На dc1 проверяем наличие зоны и добавляем PTR для dc2

Выполняем на dc1 (192.168.0.11):

samba-tool dns add dc1.itsch.lan 0.168.192.in-addr.arpa 16 PTR dc2.itsch.lan. -U Administrator
samba-tool dns add dc1.itsch.lan 0.168.192.in-addr.arpa 11 PTR dc1.itsch.lan. -U Administrator

4.3. Проверка обратного резолвинга

На dc2 выполняем:

nslookup 192.168.0.11 127.0.0.1
nslookup 192.168.0.16 127.0.0.1

5. Настройка синхронизации времени (NTP)

5.1. Настройка chrony на dc2

mcedit /etc/chrony/chrony.conf

Приводим к виду:

server dc1.itsch.lan iburst
pool 2.debian.pool.ntp.org iburst
allow 192.168.0.0/24
peer dc1.itsch.lan iburst
systemctl restart chrony
chronyc sources -v

Должен появиться источник ^* dc1.itsch.lan.

5.2. Проверка настройки на dc1

Убедимся, что в /etc/chrony/chrony.conf на dc1 есть строка peer dc2.itsch.lan iburst. Если нет – добавляем и перезапускаем chrony.

6. Финальная настройка Kerberos

На обоих контроллерах приведём /etc/krb5.conf к единому виду:

mcedit /etc/krb5.conf
[libdefaults]
        default_realm = ITSCH.LAN
        dns_lookup_realm = false
        dns_lookup_kdc = true
        ticket_lifetime = 24h
        renew_lifetime = 7d
        forwardable = true

[realms]
        ITSCH.LAN = {
                kdc = dc1.itsch.lan
                kdc = dc2.itsch.lan
                admin_server = dc1.itsch.lan
                default_domain = itsch.lan
        }

[domain_realm]
        .itsch.lan = ITSCH.LAN
        itsch.lan = ITSCH.LAN

Проверяем получение билета на dc2:

kinit administrator@ITSCH.LAN
klist

 

7. Финальные проверки работоспособности

7.1. Репликация

samba-tool drs showrepl

Все inbound-соседи должны быть успешны.

Предупреждение No NC replicated for Connection для исходящих соединений – нормально для свежего DC.

7.2. Создание тестового пользователя

samba-tool user create testuser Test123! --given-name=Test --surname=User

Через минуту проверяем на dc1:

samba-tool user list | grep testuser

7.3. Проверка внешнего DNS через форвардер

Если ещё не настроили форвардер на dc2, добавляем в /etc/samba/smb.conf:

dns forwarder = 8.8.8.8 8.8.4.4
systemctl restart samba-ad-dc
ping ya.ru -c 2

7.4. Проверка отказоустойчивости

На клиенте прописываем оба DNS: 192.168.0.11 и 192.168.0.16. Останавливаем Samba на dc1:

systemctl stop samba-ad-dc

Убеждаемся, что клиент может резолвить имена и аутентифицироваться. Затем запускаем dc1 обратно:

systemctl start samba-ad-dc

7.5. Управление сроком действия пароля администратора

samba-tool user setexpiry administrator --noexpiry

Или можем сменить пароль:

samba-tool user setpassword administrator --newpassword="НовыйНадёжныйПароль123!"

Вторичный контроллер домена Samba AD DC

Важные замечания

 

🚀 Понравилась статья?

Подписывайтесь на наши соцсети чтобы не пропустить новые полезные материалы!

MAX MAX Telegram Telegram VK ВКонтакте Dzen Дзен RuTube RuTube