Введение
Статья основана на материалах из wiki.samba.org
В материалы внесены существенные изменения, отражающие работу с современной версией Bind9.
Для того, чтобы создать контроллер домена Samba Active Directory (AD), в первую очередь нужно создать и настроить DNS-сервер.
Для использования с ОС Astra Linux рекомендуется DNS-сервер BIND9, входящий в комплект дистрибутивов.
Далее описывается базовая инсталляция BIND9, которую, в дальнейшем, можно будет использовать для Samba AD DC.
Для перехода с использования внутренней службы DNS Samba на использование сервера Bind9 также см. Изменение службы DNS контроллера домена AD Samba.
Установка Bind
Процедуру установки пакета bind cм. DNS-сервер BIND9
Настройка BIND
Создание файла зоны localhost и файла реверсивной зоны 0.0.127.in-addr.arpa
Файлы зоны localhost и файла реверсивной зоны 0.0.127.in-addr.arpa при установке пакета создаются автоматически (файлы /etc/bind/db.local и /etc/bind/db.127 соответственно).
Запуск сервиса
Для запуска/перезапуска сервиса BIND используйте команды
sudo systemctl restart bind9
Проверка зон
Следующие примеры запрашивают у сервиса DNS информацию о локальной машине (127.0.0.1).
Проверка зоны перенаправления localhost
Команда:
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:
localhost has address 127.0.0.1
Проверка реверсивной зоны 0.0.127.in-addr.arpa.
Команда:
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:
1.0.0.127.in-addr.arpa domain name pointer localhost.
Настройка модуля BIND9_DLZ
Во время назначения Samba на роль контроллера домена AD автоматически создается конфигурационный файл /var/lib/samba/bind-dns/named.conf службы BIND9:
Для включения модуля BIND9_DLZ:
Добавить в конфигурационный файл /etc/bind/named.conf команду включения конфигурации samba:
Определить используемую версию bind командой:
Разрешить доступ к файлу /var/lib/samba/bind-dns/named.conf:
Проверить правильность конфигурации:
Ошибка /usr/sbin/samba_dnsupdate: ; TSIG error with server: tsig verify failure
Сообщения в системном журнале вида "/usr/sbin/samba_dnsupdate: update failed: REFUSED" и связанные с ними сообщения об ошибках обновления DNS можно игнорировать.
Ошибка "status: FORMERR" при обращении к DNS-серверу Windows AD
Пример:
dig SRV _ldap._tcp.windomain.ru
; <<>> DiG 9.11.3-1ubuntu1.5-Debian <<>> SRV _ldap._tcp.windomain.ru
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: FORMERR, id: 16281
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: ad69f89824966028 (echoed)
;; QUESTION SECTION:
;_ldap._tcp.windomain.ru. IN SRV
;; Query time: 0 msec
;; SERVER: 10.0.2.10#53(10.0.2.10)
;; WHEN: Fri Dec 06 08:52:19 MSK 2019
;; MSG SIZE rcvd: 64
Ошибка возникает из-за того, что DNS-сервер Windows AD, вопреки действующим стандартам, считает ошибкой низвестные ему опции запроса (стандарты требуют просто игнорировать такие опции).
Вариант обхода - использовать в команде dig опцию +nocookie (или +noends):
; <<>> DiG 9.11.3-1ubuntu1.5-Debian <<>> SRV _ldap._tcp.windomain.ru +nocookie
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46065
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; QUESTION SECTION:
;_ldap._tcp.windomain.ru. IN SRV
;; ANSWER SECTION:
_ldap._tcp.windomain.ru. 600 IN SRV 0 100 389 swin.windomain.ru.
_ldap._tcp.windomain.ru. 900 IN SRV 0 100 389 ad.windomain.ru.
;; ADDITIONAL SECTION:
swin.windomain.ru. 3600 IN A 10.0.2.10
ad.windomain.ru. 900 IN A 10.0.2.250
;; Query time: 0 msec
;; SERVER: 10.0.2.10#53(10.0.2.10)
;; WHEN: Fri Dec 06 08:58:06 MSK 2019
;; MSG SIZE rcvd: 156