Присоединение к домену Active Directory в роли контроллера домена

Для обеспечения отказоустойчивости и балансировки нагрузки в доменный лес AD могут добавляться дополнительные контроллеры домена.

Присоединение к домену может быть выполнено одновременно с установкой Samba или после нее.

Примеры в данном разделе основаны на следующих допущениях:

  1. В сети уже доступен полностью настроенный основной контроллер домена AD со следующими параметрами:

    • статический IP-адрес сервера — 10.0.9.100;

    • полное доменное имя (FQDN) — dc1.samdom.example.com.

  2. Требуется добавить еще один контроллер домена, который также будет выполнять роль DNS-сервера, со следующими параметрами:

    • статический IP-адрес сервера — 10.0.9.150;

    • полное доменное имя (FQDN) — dc2.samdom.example.com.

Для выполнения операции присоединения требуется пароль администратора домена.

Для использования аутентификации на базе Kerberos необходимо обеспечить синхронизацию времени у всех участников домена AD.

Присоединение

Для присоединения к домену выполните следующие шаги:

  1. Назначьте серверу, на котором будет развертываться контроллер домена, статический IP-адрес.

    В примерах в данном разделе в качестве IP-адреса сервера используется значение 1.0.9.150.

  2. Задайте IP-адрес существующего контроллера домена (10.0.9.100) в качестве DNS-сервера.

    После внесенных изменений файл /etc/resolv.conf должен содержать следующие настройки:

    search samdom.example.com
    nameserver 10.0.9.100
    Некоторые утилиты (например, NetworkManager) могут перезаписывать изменения, вносимые в данный файл вручную. См. описание корректного способа настройки разрешения имен в документации на используемый дистрибутив Linux.
  3. Выберите для контроллера домена имя хоста длиной не более 15 символов (ограничение протокола NetBIOS) и назначьте его.

    Например:

    sudo hostnamectl set-hostname dc2.samdom.example.com
  4. Убедитесь, что в файле /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.

  5. Если планируется использовать добавляемый контроллер домена также и в качестве DNS-сервера:

    • при использовании внутреннего DNS-сервера Samba (SAMBA_INTERNAL) дополнительная настройка не требуется;

    • при использовании DNS-сервера BIND 9 (BIND9_DLZ) требуется дополнительная настройка.

  6. Выполните стандартные проверки, чтобы убедиться в отсутствии на сервере следов прошлых установок Samba.

  7. Установите основной пакет inno-samba и дополнительные пакеты, следуя инструкциям, приведенным в разделе «Установка пакета inno-samba».

  8. На первом контроллере домена:

    • создайте обратную DNS-зону для подключения нового контроллера:

      /app/inno-samba/bin/samba-tool dns zonecreate dc1.samdom.example.com 9.0.10.in-addr.arpa -U Administrator
      Password for [SAMDOM\Administrator]:
      Zone 9.0.10.in-addr.arpa created successfully
    • добавьте IP-адрес нового контроллера в доменную DNS-службу:

      /app/inno-samba/bin/samba-tool dns add dc1.samdom.example.com samdom.example.com dc2 A 10.0.9.150 -U Administrator
      Password for [SAMDOM\Administrator]:
      Record added successfully
  9. Проверьте корректность разрешения имен любым доступным способом (например, с помощью утилиты dig).

  10. Остановите ненужные службы и запретите их запуск с помощью следующих команд:

    sudo systemctl stop smbd nmbd winbind
    sudo systemctl disable smbd nmbd winbind
    sudo systemctl mask winbind nmbd smbd
  11. Настройте автоматический запуск доменной службы Samba и перезапустите ее с помощью следующих команд:

    sudo systemctl unmask inno-samba
    sudo systemctl enable inno-samba
  12. Убедитесь в корректности настройки аутентификация с использованием Kerberos в файле /etc/krb5.conf:

    [libdefaults]
        default_realm = SAMDOM.EXAMPLE.COM
        dns_lookup_realm = false
        dns_lookup_kdc = true

    В тех случаях, когда топология сети позволяет беспрепятственно доставлять по протоколу UDP пакеты большего размера от контроллера домена к клиентам, для повышения производительности в конфигурационный файл /etc/krb5.conf может быть добавлена следующая настройка:

    [kdc]
        max-kdc-datagram-reply-length = 2800

    Она обеспечивает формирование сервером ответа на запрос аутентификации, полученный от клиента по протоколу UDP, при превышении ограничения на максимальный размер ответа по умолчанию (1400 байт).

    Данную настройку следует использовать с большой осторожностью, так как фрагментация UDP-пакетов в сетях со сложной топологией может привести к обратному эффекту!

  13. Запросите билет администратора домена:

    kinit administrator@SAMDOM.EXAMPLE.COM
  14. Перед присоединением убедитесь в отсутствии файла smb.conf. Если он существует, переименуйте его, например, с помощью следующей команды:

    sudo mv /app/inno-samba/etc/smb.conf /app/inno-samba/etc/smb.conf.samba_initial
  15. Выполните присоединение к домену с помощью утилиты samba-tool с указанием требуемых опций.

    Пример команды:

    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

    Для получения информации о доступных параметрах используйте команду:

    /app/inno-samba/bin/samba-tool domain join --help

    Наиболее часто используемые параметры (см. полный список доступных параметров в разделе «Администрирование домена»):

    • --dns-backend=NAME_SERVER_BACKEND — используемый DNS-сервер; возможные значения: SAMBA_INTERNAL (значение по умолчанию), BIND9_DLZ (при развертывании DNS-сервера BIND 9 совместно с контроллером домена Samba), NONE (при использовании выделенного DNS-сервера);

      При использовании внутреннего DNS-сервера необходимо указать IP-адрес сервера пересылки в формате:

      --option="dns forwarder=forwarder_ip_address"
    • --site=SITE — привязка контроллера домена к определенному сайту AD;

    • --option="interfaces= lo eth0" --option="bind interfaces only=yes" — привязка Samba к указанным сетевым интерфейсам сервера (если их несколько); указание данной опции позволяет samba-tool зарегистрировать корректный IP-адрес при присоединении;

    • --option="idmap_ldb:use rfc2307 = yes" — используйте данную опцию, если при инициализации остальных контроллеров домена Samba передавался параметр --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;

      Значение данного параметра задает «заявляемый» функциональный уровень контроллера домена. То есть при взаимодействии с другими участниками гетерогенной среды контроллер будет «заявлять», что работает на данном функциональном уровне.

      Установка параметра вручную на отдельном контроллере домена повышает риск несовпадения набора возможностей на контроллерах в домене. Поэтому при принятии решения об использовании данного параметра следует установить его на всех контроллерах домена Samba.

      При присоединении к существующему домену рекомендуется указывать функциональный уровень не выше текущего уровня домена.
    • --no-gc — выключение роли Global Catalog (GC) для нового контроллера при присоединении к домену;

      В связи с ограничением в реализации текущий версии использование данного ключа является обязательным при присоединении сервера к домену в многодоменном лесу.
    • --option="tls priority = NORMAL:-VERS-TLS1.0:-VERS-TLS1.1:-RSA" — отключение устаревших алгоритмов шифрования и обмена ключами, разрешенных для использования по умолчанию при подключении к серверу LDAP;

      Параметр изменяет список приоритетов библиотеки GnuTLS по умолчанию (см. подробнее в документации на библиотеку). Рекомендуется использовать указанное значение для повышения уровня безопасности.

    • --option="dns:auto site coverage = off" — отключение функциональности автоматического покрытия контроллером домена Samba сайтов без контроллеров домена (механизм Auto Site Coverage).

      По умолчанию данная функциональность включена (dns:auto site coverage = on в smb.conf). Это означает, что контроллер домена может обслуживать не только тот сайт, в котором он находится, но и другие сайты в случае отсутствия в них собственных контроллеров домена.

      Если в силу особенностей топологии сети присоединяемый сервер не должен использоваться службой каталогов для обслуживания других сайтов, функциональность может быть отключена при присоединении с помощью ключа --option либо в последующем путем редактирования конфигурационного файла smb.conf.

    В случае успешного выполнения присоединения в конце вывода отобразится строка:

    Joined domain SAMDOM (SID S-1-5-21-469703510-2364959079-1506205053) as a DC
  16. При использовании в качестве DNS-сервера BIND 9 (--dns-backend=BIND9_DLZ) настройте его для работы с контроллером домена:

    • добавьте параметры Samba в настройки службы DNS; например:

      echo 'include "/app/inno-samba/bind-dns/named.conf";' | sudo tee -a /etc/bind/named.conf
    • настройте права доступа:

      sudo chown -R root:bind /app/inno-samba/bind-dns
    • перезапустите BIND 9 с помощью следующей команды:

      sudo systemctl restart bind9
  17. Запустите доменную службу Samba:

    sudo systemctl start inno-samba

Проверка результатов присоединения

Для проверки корректности присоединения:

  1. Проверьте работу 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-адрес добавленного контроллера домена.

  2. Проверьте статус репликации между контроллерами домена в лесу AD с точки зрения добавленного контроллера с помощью следующей команды:

    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 минут для автоматического формирования подключений для репликации.
  3. На вновь добавленном контроллере домена создайте нового пользователя c любым именем:

    samba-tool user create newuser

    Убедитесь, что учетная запись созданного пользователя доступна на первом контроллере домена с помощью следующей команды:

    samba-tool user list