Создание первого домена в лесу

Эллес может развертываться в качестве первого контроллера домена при построении леса.

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

  • домен верхнего уровня (TLD) — EXAMPLE.COM;

  • DNS-имя создаваемого домена — samdom.example.com;

  • область безопасности Kerberos (realm) — SAMDOM.EXAMPLE.COM.

  • имя хоста первого контроллера домена — DC1;

  • статический IP-адрес первого контроллера домена — 10.0.9.100.

Подготовка к развертыванию

Перед началом развертывания Эллес в качестве первого контроллера домена в лесу:

  1. Выберите DNS-домен для создаваемого леса. Не рекомендуется использовать для организации домен верхнего (первого) уровня (TLD), так как разрешение имен в домене, который указывается при установке Эллес, будет осуществляться через контроллер домена. Оптимальный подход — использовать для размещения контроллера поддомен. В данном руководстве в качестве примера используется поддомен samdom.example.com.

    Выбранное имя также будет использоваться в качестве имени области безопасности (realm) Kerberos.

    После установки и настройки контроллера домена будет невозможно изменить имя DNS-зоны и имя области безопасности Kerberos, так как Эллес не поддерживает такое изменение.

  2. Выберите для контроллера домена имя хоста длиной не более 15 символов (ограничение протокола NetBIOS) и назначьте его.

    Например:

    sudo hostnamectl set-hostname dc1
  3. Назначьте серверу, на котором будет развертываться контроллер домена, статический IP-адрес и зарезервируйте его на маршрутизаторе.

    Контроллер домена Эллес будет обеспечивать разрешение DNS-имен для всех подключенных к нему рабочих станций. Поэтому при назначении ему IP-адреса может потребоваться использовать значение за пределами пула адресов DHCP.
  4. Отключите инструменты, которые автоматически обновляют файл с конфигурацией разрешения DNS-имен /etc/resolv.conf.

  5. Убедитесь, что в файле /etc/hosts полное доменное имя (FQDN) и короткое имя хоста корректно сопоставлены с IP-адресом контроллера домена.

    Например:

    127.0.0.1     localhost
    10.0.9.100    dc1.samdom.example.com     DC1

    Имя хоста и FQDN не должны сопоставляться с IP-адресом 127.0.0.1 или любым другим IP-адресом, отличным от того, который назначен серверу контроллера домена в настройках LAN.

  6. Если контроллер домена Samba или Эллес ранее уже развертывался на сервере, перед установкой:

    1. Определите, какие пакеты требуется удалить.

      Например:

      apt list --installed | grep samba
    2. Удалите существующие пакеты с помощью пакетного менеджера.

      Например:

      sudo apt purge samba inno-samba samba-common-bin samba-common
    3. Удалите содержимое каталога /app/inno-samba/, если он существует:

      sudo rm -rf /app/inno-samba/*
  7. Если ранее на сервере выполнялась настройка аутентификации по протоколу Kerberos, при необходимости создайте резервную копию файла /etc/krb5.conf и удалите его:

    sudo rm /etc/krb5.conf
  8. Установите DNS-сервер BIND 9 и дополнительные утилиты:

    sudo apt install bind9 bind9utils
  9. Установите основной пакет inno-samba, следуя инструкциям, приведенным в разделе «Установка пакета inno-samba».

Развертывание

Развертывание Эллес в качестве контроллера домена предусматривает создание баз данных и первоначального набора записей, необходимых для работы домена, включая учетную запись администратора и записи DNS.

В состав пакета inno-samba входит встроенный инструмент командной строки samba-tool (/app/inno-samba/bin/samba-tool), позволяющий задать требуемые настройки в конфигурационном файле smb.conf как в интерактивном режиме, так и в обычном режиме.

Развертывание выполняется только для первого контроллера в домене. Остальные контроллеры должны присоединяться к существующему домену.

Параметры развертывания

Развертывание домена выполняется с помощью подкоманды samba-tool domain provision, которая принимает ряд параметров и может выполняться в интерактивном или неинтерактивном режиме.

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

Интеракт. режим Неинтеракт. режим Описание

Realm

--realm

Область безопасности (realm) Kerberos. DNS-имя домена в верхнем регистре

Domain

--domain

Имя домена NetBIOS (Workgroup). Строка длиной не более 15 символов без точек. Рекомендуется использовать первую часть DNS-имени домена

Server Role

--server-role

Установка в роли контроллера домена: --server-role=dc

DNS backend

--dns-backend

DNS-сервер. Первый контроллер в домене должен устанавливаться с DNS-сервером.

Поддерживаются следующие DNS-серверы:

  • BIND9_DLZ:

    • требуется установка BIND 9.8 или выше на контроллере домена Эллес;

    • требуется настройка DNS-сервера BIND 9;

    • рекомендуется использовать данный вариант во всех сценариях использования Эллес;

  • INTERNAL_DNS:

    • используется по умолчанию при развертывании нового домена и присоединении к существующему домену;

    • для работы с DNS не требуется дополнительное ПО;

    • в силу ряда ограничений использовать данный вариант с Эллес не рекомендуется;

  • NONE:

    • требуется развертывание и настройка отдельного DNS-сервера, который будет обслуживать DNS-запросы как в рамках отдельного домена, так и между доменами;

    • не рекомендуется использовать данный вариант с Эллес

DNS forwarder IP address

-

Один или несколько (через запятую) IP-адресов DNS-серверов для рекурсивного разрешения имен

Administrator password

--adminpass

Пароль администратора домена, соответствующий требованиям к сложности:

  • не содержит полностью значение атрибута samAccountName или displayName учетной записи пользователя (без учета регистра);

  • содержит символы как минимум из трех из следующих категорий:

    • прописные буквы;

    • строчные буквы;

    • цифры от 0 до 9;

    • специальные символы ~!@#$%^&*_-+=`|\()\{}[]:;"'<>,.?/

    • символы Unicode, классифицируемые как буквенно-цифровые, но не имеющие регистра.

Если пароль не соответствует требованиям к сложности, процесс развертывания завершается неуспешно

--backend-store

--backend-store

Тип базы данных каталога. По умолчанию Эллес использует TDB с ограничением на размер 4 ГБ.

Если ожидается, что размер базы данных каталога будет превышать 4 ГБ, требуется использовать LMDB. Для этого задайте: --backend-store=mdb.

В этом случае по умолчанию максимально допустимый размер базы будет увеличен до 8 ГБ. Для изменения значения по умолчанию используйте параметр --backend-store-size.

Для корректной работы с LMDB установите пакет утилит lmdb-utils

--backend-store-size

--backend-store-size

Максимальный размер файлов базы данных каталога.

При использовании LMDB (--backend-store=mdb) по умолчанию размер базы данных ограничивается значением 8 ГБ. Чтобы увеличить его, используйте данный параметр. Например: --backend-store-size=16Gb.

Заданное ограничение является фиксированным. Его превышение приведет к неработоспособности Эллес

--function-level

--function-level

Общий функциональный уровень (режим работы) домена и леса.

Возможные значения: 2008_R2 | 2012 | 2012_R2 | 2016.

Значение по умолчанию — 2016

--use-rfc2307

--use-rfc2307

Подключение расширений NIS, необходимых для отображения информации на вкладке Unix Attributes в оснастке ADUC на ОС Windows

--option="tls priority = NORMAL:-VERS-TLS1.0:-VERS-TLS1.1:-RSA"

--option="tls priority = NORMAL:-VERS-TLS1.0:-VERS-TLS1.1:-RSA"

Отключение устаревших алгоритмов шифрования и обмена ключами, разрешенных для использования по умолчанию при подключении к серверу LDAP.

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

Если сервер, на котором выполняется развертывание, имеет несколько сетевых интерфейсов, дополнительно задайте следующие опции для привязки Эллес к определенным интерфейсам:

--option="interfaces=lo eth0" --option="bind interfaces only=yes"

Это необходимо для регистрации командой samba-tool domain provision корректного IP-адреса в процессе развертывания.

Развертывание в интерактивном режиме

Перед запуском развертывания в интерактивном режиме убедитесь в отсутствии файла /app/inno-samba/etc/smb.conf. Если он существует, переименуйте или удалите его.

Для запуска развертывания в интерактивном режиме выполните подкоманду samba-tool domain provision, передав:

  • параметр --interactive;

  • дополнительные параметры команды, которые не доступны в интерактивном режиме;

  • конфигурационные параметры Эллес для добавления в файл smb.conf в формате --option="<parameter name> = <parameter value>".

Например:

sudo /app/inno-samba/bin/samba-tool domain provision \
    --interactive \
    --use-rfc2307 \
    --backend-store=mdb \
    --backend-store-size=16Gb \
    --function-level=2012_R2

В процессе выполнения команды укажите:

  • Realm — имя области безопасности Kerberos;

  • Domain — имя домена;

  • Server Role (dc, member, standalone) — роль сервера (dc);

  • DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) — плагин для работы службы DNS (BIND9_DLZ);

  • DNS forwarder IP address — IP-адрес внешнего сервера DNS для перенаправления запросов DNS (если требуется);

  • Administrator password — пароль администратора;

  • Retype password — подтверждение введенного пароля администратора.

Развертывание в неинтерактивном режиме

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

sudo /app/inno-samba/bin/samba-tool domain provision \
   --server-role=dc \
   --use-rfc2307 \
   --dns-backend=BIND9_DLZ \
   --realm=SAMDOM.EXAMPLE.COM \
   --domain=SAMDOM \
   --adminpass=Passw0rd \
   --backend-store=mdb \
   --backend-store-size=16Gb \
   --function-level=2012_R2

Завершение настройки

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

  1. Настройте автоматический запуск доменной службы inno-samba:

    sudo systemctl unmask inno-samba.service
    sudo systemctl enable inno-samba.service
  2. Для интеграции с сервером DNS BIND 9 через плагин BIND9_DLZ:

    • добавьте в конфигурационный файл /etc/bind/named.conf команду включения конфигурации inno-samba:

      include "/app/inno-samba/bind-dns/named.conf";
    • добавьте в раздел options файла /etc/bind/named.conf.options настройку ключей авторизации:

      options {
         tkey-gssapi-keytab "/app/inno-samba/bind-dns/dns.keytab";
         ...
      };
    • перезапустите сервис bind9:

      sudo systemctl restart bind9.service
  3. Перезапустите доменную службу inno-samba:

    sudo systemctl restart inno-samba.service
  4. Чтобы участники домена могли находить требуемые сервисы (LDAP, Kerberos) с помощью DNS-сервера, обеспечивающего разрешение имен в соответствующей DNS-зоне, в файле /etc/resolv.conf на сервере с контроллером домена укажите имя DNS-домена в качестве значения параметра search и IP-адрес сервера в качестве значения параметра nameserver.

    Например:

    search samdom.example.com
    nameserver 10.0.9.100
  5. Скопируйте конфигурацию Kerberos, созданную в процессе развертывания, в конфигурацию Kerberos, используемую операционной системой, например, с помощью следующей команды:

    sudo cp /app/inno-samba/private/krb5.conf /etc/krb5.conf

    Созданная при развертывании конфигурация Kerberos использует записи о ресурсах (SRV-записи) DNS-службы для поиска центра распространения ключей (KDC).

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

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

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

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

  6. При необходимости добавьте одну или несколько обратных DNS-зон.

    Например:

    /app/inno-samba/bin/samba-tool dns zonecreate dc1.samdom.example.com 9.0.10.in-addr.arpa -U Administrator
    Password for [Administrator@SAMDOM.EXAMPLE.COM]:
    Zone 9.0.10.in-addr.arpa created successfully

Проверка результатов развертывания

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

  • проверка режима работы контроллера домена:

    sudo /app/inno-samba/bin/samba-tool domain level show
    Domain and forest function level for domain 'DC=samdom,DC=example,DC=com'
    
    Forest function level: (Windows) 2012_R2
    Domain function level: (Windows) 2012_R2
    Lowest function level of a DC: (Windows) 2016
  • проверка конфигурации DNS:

    • запрос значения SRV-записи _ldap в домене:

      host -t SRV _ldap._tcp.samdom.example.com.
      _ldap._tcp.samdom.example.com has SRV record 0 100 389 dc1.samdom.example.com.
    • запрос значения SRV-записи _kerberos в домене:

      host -t SRV _kerberos._udp.samdom.example.com.
      _kerberos._udp.samdom.example.com has SRV record 0 100 88 dc1.samdom.example.com.
    • запрос A-записи контроллера домена:

      host -t A dc1.samdom.example.com.
      dc1.samdom.example.com has address 10.0.9.100
  • проверка ресурсов с совместным доступом:

    /app/inno-samba/bin/smbclient -L localhost -N
    Anonymous login successful
    
        Sharename       Type      Comment
        ---------       ----      -------
        sysvol          Disk
        netlogon        Disk
        IPC$            IPC       IPC Service (Samba inno-samba 1.3.2 (Samba 4.20.0pre1-GIT-9115c9a)
    SMB1 disabled -- no workgroup available
    Ресурсы netlogon и sysvol формируются автоматически в процессе развертывания Эллес как контроллера домена.
  • для проверки аутентификации подключитесь, например, к ресурсу netlogon с использованием учетной записи администратора домена, созданной в процессе развертывания:

    /app/inno-samba/bin/smbclient //localhost/netlogon -UAdministrator -c 'ls'
    Password for [EXAMPLE\Administrator]:
     .                                   D        0  Wed Apr  19 12:01:55 2023
     ..                                  D        0  Thu Apr  20 10:38:46 2023
    
                   11758760 blocks of size 1024. 5076316 blocks available
  • для проверки работы службы аутентификации по протоколу Kerberos:

    • выполните запрос билета Kerberos для учетной записи администратора домена:

      kinit Administrator@SAMDOM.EXAMPLE.COM
    • выведите список находящихся в кэше билетов Kerberos:

      klist
      Credentials cache: FILE:/tmp/rkb5cc_1000
              Principal: Administrator@SAMDOM.EXAMPLE.COM
      
        Issued                Expires               Principal
      Apr 4 11:18:35 2023  Apr 4 21:18:35 2023   krbtgt/SAMDOM.EXAMPLE.COM@SAMDOM.EXAMPLE.COM