Product SiteDocumentation Site

2.2.3. Внутренний DNS-сервер Samba (SAMBA_INTERNAL)

Контроллер домена (DC) Samba Active Directory (AD) предоставляет внутренний DNS-сервер, который поддерживает основные функции, необходимые для AD. Он прост в настройке и не требует дополнительного программного обеспечения или знаний о DNS. Создание домена с внутренним DNS-сервером рекомендуется для простых настроек DNS.
Внутренний DNS Samba имеет следующие недостатки:
  • нельзя использовать как кеширующий сервер;
  • не поддерживает рекурсивные запросы;
  • не поддерживает подпись транзакции с общим ключом (TSIG) (shared-key transaction signature);
  • нет зоны-заглушки (stub zones);
  • не поддерживает zone transfers;
  • не поддерживает балансировку нагрузки циклического перебора между контроллерами домена (Round Robin load balancing among DC's).
Внутренний DNS-сервер может разрешать только DNS-зоны Active Directory (AD). Чтобы включить рекурсивные запросы других зон, следует в параметре dns forwarder в файле smb.conf указать один или несколько IP-адресов DNS-серверов, поддерживающих рекурсивное разрешение. Например:
dns forwarder = 192.168.0.190

Примечание

Samba 4.5 и более поздние версии в параметре dns forwarder поддерживают несколько IP-адресов, разделенных пробелами. Старые версии поддерживают один IP-адрес. Обращение ко второму и последующим DNS-серверам произойдёт только в том случае, если первый не вернул никакого ответа.

Примечание

Внешний DNS-сервер можно указать при создании домена.
При создании домена с внутренним DNS-сервером нужно использовать параметр --dns-backend=SAMBA_INTERNAL или не указывать этот параметр вообще.

2.2.3.1. Выбор имени домена

Должно быть установлено правильное имя узла и домена для сервера. Для этого в файл /etc/sysconfig/network необходимо добавить строку:
HOSTNAME=dc1.test.alt
И выполнить команды:
# hostnamectl set-hostname dc1.test.alt
# domainname test.alt

Примечание

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

2.2.3.2. Настройка файла /etc/resolvconf.conf

Для корректного распознавания всех локальных DNS-запросов в файле /etc/resolvconf.conf должна присутствовать строка:
name_servers=127.0.0.1
Если этой строки в файле /etc/resolvconf.conf нет, то в конец этого файла следует добавить строку:
name_servers=127.0.0.1
и перезапустить сервис resolvconf:
# resolvconf -u

2.2.3.3. Восстановление к начальному состоянию Samba

Необходимо очистить базы и конфигурацию Samba (домен, если он создавался до этого, будет удалён):
# rm -f /etc/samba/smb.conf
# rm -rf /var/lib/samba
# rm -rf /var/cache/samba
# mkdir -p /var/lib/samba/sysvol

Предупреждение

Перед созданием домена необходимо обязательно удалить /etc/samba/smb.conf: rm -f /etc/samba/smb.conf

2.2.3.4. Интерактивное создание домена

Для запуска интерактивной установки необходимо выполнить команду:
# samba-tool domain provision
В ответе на первые два вопроса нужно указать доменное имя и имя рабочей группы:
Realm [TEST.ALT]:
Domain [TEST]:

Примечание

Чтобы принять значение по умолчанию, необходимо нажать Enter.
Далее нужно указать тип серверной роли и бэкенд DNS-сервера:
Server Role (dc, member, standalone) [dc]:
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:
При запросе DNS forwarder IP address можно указать внешний DNS-сервер, чтобы DC мог разрешать внешние доменные имена:
DNS forwarder IP address (write 'none' to disable forwarding) [127.0.0.1]:  8.8.8.8
Задать пароль для администратора:
Administrator password:
Retype password:

Примечание

Пароль администратора должен быть не менее 7 символов и содержать символы как минимум трёх групп из четырёх возможных: латинских букв в верхнем и нижнем регистрах, чисел и других небуквенно-цифровых символов. Пароль не полностью соответствующий требованиям это одна из причин завершения развертывания домена ошибкой.
Начнется процесс конфигурации:
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=test,DC=alt
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=test,DC=alt
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
The Kerberos KDC configuration for Samba AD is located at /var/lib/samba/private/kdc.conf
A Kerberos configuration suitable for Samba AD has been generated at /var/lib/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!
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:        TEST
DNS Domain:            test.alt
DOMAIN SID:            S-1-5-21-3617232745-2316959539-2936900449

2.2.3.5. В пакетном режиме

Пример команды создания контроллера домена test.alt в пакетном режиме:
# samba-tool domain provision --realm=test.alt --domain=test \
--adminpass='Pa$$word' --dns-backend=SAMBA_INTERNAL \
--option="dns forwarder=8.8.8.8" \
--server-role=dc --use-rfc2307
Для пакетной установки необходимо как минимум указать следующие параметры:
  • --realm REALM_NAME — имя области Kerberos (LDAP) и DNS имя домена;
  • --domain=DOMAIN — имя домена (имя рабочей группы);
  • --adminpass=PASSWORD — пароль основного администратора домена;
  • dns forwarder=forwarder_ip_address — внешний DNS-сервер, чтобы DC мог разрешать внешние доменные имена;
  • --server-role=ROLE — тип серверной роли;
  • --dns-backend=NAMESERVER-BACKEND — бэкенд DNS-сервера;
  • --use-rfc2307 — позволяет поддерживать расширенные атрибуты типа UID и GID в схеме LDAP и ACL на файловой системе Linux.

Примечание

Пароль администратора должен быть не менее 7 символов и содержать символы как минимум трёх групп из четырёх возможных: латинских букв в верхнем и нижнем регистрах, чисел и других небуквенно-цифровых символов. Пароль не полностью соответствующий требованиям это одна из причин завершения развертывания домена ошибкой.
Если уровень не указан, то домен разворачивается на уровне 2008_R2. Для разворачивания домена на другом уровне, уровень необходимо явно указать, например:
# samba-tool domain provision --realm=test.alt --domain=test \
--adminpass='Pa$$word' --dns-backend=SAMBA_INTERNAL \
--option="dns forwarder=8.8.8.8" --option="ad dc functional level = 2016" \
--server-role=dc --function-level=2016

Примечание

Если необходим уровень 2012_R2, то следует сначала развернуть домен на уровне 2008_R2, а затем повысить его до 2012_R2 (см. Повышение уровня схемы, функционального уровня домена).

Примечание

Некоторые параметры команды samba-tool domain provision приведены в в табл. Основные опции для samba-tool domain provision. Полный список параметров можно увидеть, запустив команду:
# samba-tool domain provision --help

2.2.3.6. Создание домена в ЦУС

При инициализации домена в веб-интерфейсе Центра управления системой (см. ЦУС) следует выполнить следующие действия:
  1. В модуле Ethernet-интерфейсы указать имя компьютера и DNS 127.0.0.1:
    Ethernet-интерфейсы
  2. В модуле Домен указать имя домена, отметить пункт Active Directory, указать IP-адреса внешних DNS-серверов, задать пароль администратора домена и нажать кнопку Применить:
    Создание домена в ЦУС

    Примечание

    Пароль администратора должен быть не менее 7 символов и содержать символы как минимум трёх групп из четырёх возможных: латинских букв в верхнем и нижнем регистрах, чисел и других небуквенно-цифровых символов. Пароль не полностью соответствующий требованиям это одна из причин завершения развертывания домена ошибкой.
  3. После успешного создания домена, будет выведена информация о домене:
    Создание домена в ЦУС
  4. Перегрузить сервер.

2.2.3.7. Запуск службы каталогов

Установить службу по умолчанию и запустить её:
# systemctl enable --now samba

Примечание

Если служба после установки никаким способом не запускается, необходимо перезагрузить сервер.

Примечание

Пример файла /etc/samba/smb.conf после создания домена с SAMBA_INTERNAL:
 Global parameters
[global]
        dns forwarder = 8.8.8.8
        netbios name = DC1
        realm = TEST.ALT
        server role = active directory domain controller
        workgroup = TEST
        idmap_ldb:use rfc2307 = yes

[sysvol]
        path = /var/lib/samba/sysvol
        read only = No

[netlogon]
        path = /var/lib/samba/sysvol/test.alt/scripts
        read only = No