Инициализация

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

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

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

Параметры samba-tool

Команда инициализации домена samba-tool domain provision принимает ряд параметров, которые могут использоваться как в интерактивном, так и в неинтерактивном режиме.

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

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

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

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

--use-rfc2307

--use-rfc2307

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

Данные атрибуты недоступны в Windows 10 и выше, а также Windows Server 2016 и выше

Realm

--realm

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

Domain

--domain

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

Server Role

--server-role

Установка в роли контроллера домена

DNS backend

--dns-backend

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

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

  • INTERNAL_DNS:

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

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

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

  • BIND9_DLZ:

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

    • требуется настройка DNS-сервера BIND и соответствующей службы;

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

  • NONE:

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

    • рекомендуется использовать данный вариант при большом объеме трафика DNS-данных

DNS forwarder IP address

Недоступен

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

Данная настройка доступна только при использовании в качестве DNS-сервера значения SAMBA_INTERNAL

Administrator password

--adminpass

Пароль администратора домена, соответствующий требованиям безопасности (см. подробнее в документации Microsoft).

Если пароль не соответствует требованиям безопасности, процесс инициализации завершается неудачей

--backend-store

--backend-store

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

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

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

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

--backend-store-size

--backend-store-size

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

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

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

--function-level

--function-level

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

Возможные значения: 2000 | 2003 | 2008 | 2008_R2 | 2016; значение по умолчанию — 2008_R2.

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

Функциональный уровень 2016 является экспериментальным и может задаваться исключительно в целях тестирования. Использовать его в условиях промышленной эксплуатации не рекомендуется

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

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

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

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

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

Возможные значения: 2008_R2 | 2012 | 2012_R2 | 2016; значение по умолчанию — 2008_R2

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

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

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

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

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

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

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

Инициализация в интерактивном режиме

Перед запуском инициализации в интерактивном режиме убедитесь в отсутствии файла smb.conf.

Если он существует, переименуйте его, например, с помощью следующей команды:

sudo mv /app/inno-samba/etc/smb.conf /app/inno-samba/etc/smb.conf.samba_initial

Для запуска инициализации в интерактивном режиме выполните команду с параметром --interactive.

Например:

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

Пример инициализации в интерактивном режиме:

sudo /app/inno-samba/bin/samba-tool domain provision --use-rfc2307 --interactive --backend-store=mdb --backend-store-size=16Gb
# Имя области безопасности Kerberos
Realm [SAMDOM.EXAMPLE.COM]: SAMDOM.EXAMPLE.COM
# Имя домена
Domain [SAMDOM]: SAMDOM
# Роль сервера — контроллер домена, участника домена, отдельный сервер
Server Role (dc, member, standalone) [dc]: dc
# Служба DNS
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: BIND9_DLZ
# IP-адрес для перенаправления DNS-запросов
DNS forwarder IP address (write 'none' to disable forwarding) [10.0.9.100]: 8.8.8.8
# Пароль администратора
Administrator password: Passw0rd
# Подтверждение введенного пароля администратора
Retype password: Passw0rd
Looking up IPv4 addresses
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up share.ldb
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=samdom,DC=example,DC=com
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Modifying display specifiers and extended rights
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up well known security principals
Setting up sam.ldb users and groups
Setting up self join
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=samdom,DC=example,DC=com
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
See /app/inno-samba/bind-dns/named.conf for an example configuration include file for BIND
and /app/inno-samba/bind-dns/named.txt for further documentation required for secure DNS updates
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba 4 has been generated at /app/inno-samba/private/krb5.conf
Merge the contents of this file with your system krb5.conf or replace it with this one. Do not create a symlink!
Setting up fake yp server settings
Once the above files are installed, your Samba AD server will be ready to use
Server Role:           active directory domain controller
Hostname:              DC1
NetBIOS Domain:        SAMDOM
DNS Domain:            samdom.example.com
DOMAIN SID:            S-1-5-21-2614513918-2685075268-614796884

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

Для добавления параметров в конфигурационный файл smb.conf на этапе инициализации используйте следующий формат: --option="<parameter name> = <parameter value>".

Инициализация в неинтерактивном режиме

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

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

Дополнительная настройка

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

  1. Настройте автоматический запуск доменной службы Samba и перезапустите ее с помощью следующих команд:

    sudo systemctl unmask inno-samba
    sudo systemctl enable inno-samba
  2. Если в качестве DNS-сервера было указано значение BIND9_DLZ, требуется:

    • настроить DNS-сервер BIND 9;

    • добавить параметры 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
  3. Запустите доменную службу Samba:

    sudo systemctl restart inno-samba
  4. Чтобы участники домена AD могли находить требуемые сервисы (LDAP, Kerberos) с помощью DNS-сервера, обеспечивающего разрешение имен в соответствующей DNS-зоне AD, в файле /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).

    Не используйте для доступа к сформированному файлу krb5.conf символическую ссылку. В Samba доступ к каталогу /app/inno-samba/private/ имеет только пользователь с правами root. Это означает, что при использовании символической ссылки другие пользователи не смогут получить к нему доступ. Например, в случае задания в качестве DNS-сервера значения BIND9_DLZ динамические обновления DNS работать не будут.

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

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

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

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

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

    Например:

    /app/inno-samba/bin/samba-tool dns zonecreate <Your-AD-DNS-Server-IP-or-hostname> 9.0.10.in-addr.arpa -U Administrator
    Password for [administrator@SAMDOM.EXAMPLE.COM]:
    Zone 9.0.10.in-addr.arpa created successfully