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

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

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

  • домен верхнего уровня (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

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

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

Значение по умолчанию — 2008_R2.

Все контроллеры в домене должны будут работать на указанном функциональном уровне

--option="ad dc functional level = <level>"

--option="ad dc functional level = <level>"

Добавление параметра ad dc functional level в конфигурационный файл /app/inno-samba/etc/smb.conf.

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

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

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

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

--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=2016 \
    --option="ad dc functional level = 2016"

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

  • 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=2016 \
   --option="ad dc functional level = 2016"

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

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

  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) 2016
    Domain function level: (Windows) 2016
    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