- Цели
- Исходные данные
- Установка сервера
- Будем запускать сервер в изолированном окружении:
- Настройка опций сервера
- Безопасность
- Включение в конфигурацию новой доменной зоны
- Прямая доменная зона
- Обратная зона
- Запуск сервера и проверка работоспособности
- Клиенты
- Работа в ненулевых мандатных режимах
- Введение
- Установка Bind
- Настройка BIND
- Создание файла зоны localhost и файла реверсивной зоны 0.0.127.in-addr.arpa
- Запуск сервиса
- Для запуска/перезапуска сервиса BIND используйте команды
- Проверка зон
- Проверка зоны перенаправления localhost
- Проверка реверсивной зоны 0.0.127.in-addr.arpa.
- Настройка модуля BIND9_DLZ
- Ошибка /usr/sbin/samba_dnsupdate: ; TSIG error with server: tsig verify failure
- Ошибка «status: FORMERR» при обращении к DNS-серверу Windows AD
Цели
Как обычно, если не указано иное, команды выполняются от имени пользователя root .
Исходные данные
Доменная зона | home.net |
Подсеть | 192.168.0/24 |
Имя основного сервера | dc.home.net |
IP-адрес сервера имен | 192.168.0.1 |
Имя первого хоста | arm01.home.net |
IP-адрес первого хоста | 192.168.0.101 |
Имя N-го хоста | armN.home.net |
IP-адрес N-го хоста | 192.168.0.(100+N) |
Установка сервера
Сервер установлен, но установка сделана не безопасным способом. Нужно выполнить несколько дополнительных действий, описанных подробнее в Debian Wiki — Bind.
Будем запускать сервер в изолированном окружении:
mkdir -p /var/bind9/chroot/ mknod /var/bind9/chroot/dev/null c 1 3 mknod /var/bind9/chroot/dev/random c 1 8 chmod 660 /var/bind9/chroot/dev/ mv /etc/bind /var/bind9/chroot/etc ln -s /var/bind9/chroot/etc/bind /etc/bind chown bind:bind /var/bind9/chroot/etc/bind/rndc.key chmod 775 /var/bind9/chroot/var/ chgrp bind /var/bind9/chroot/var/
Теперь нужно изменить расположение PIDFILE. Для этого в файле /etc/init.d/bind9 нужно переопределить переменную PIDFILE .
PIDFILE=/var/bind9/chroot/var/run/named/named.pid
Чтобы сервер понимал, что его запускают в изолированном окружении, нужно изменить параметры его запуска, внеся небольшие коррективы в файл /etc/default/bind9
OPTIONS="-u bind -t /var/bind9/chroot"
Перенастроим логирование rsyslog
echo "\$AddUnixListenSocket /var/bind9/chroot/dev/log" > /etc/rsyslog.d/bind-chroot.conf
Настройка опций сервера
Безопасность
Основные настройки сервера хранятся в файле /etc/bind/named.conf.options (на самом деле сейчас это всего лишь символическая ссылка, но на суть дела это не влияет). Добавим пару параметров для пущей безопасности в разделе options :
Включение в конфигурацию новой доменной зоны
В файле /etc/bind/named.conf.default-zones добавим указание на файлы прямой и обратной зоны, чтобы сервер мог обслуживать локальную сеть:
. zone "home.net" in < // Локальная сеть type master; file "/etc/bind/db.home.net"; // В этом файле будут адреса прямой зоны >; zone "0.168.192.in-addr.arpa" < // Так описывается обратная зона, т. е. первые три октета // записываются в обратном порядке и добавляется .in-addr.arpa type master; file "/etc/bind/db.0.168.192"; // В этом файле будут адреса обратной зоны >;
Прямая доменная зона
Ниже просто приведу содержимое файла /etc/bind/db.home.net .
$TTL 3h @ IN SOA dc.home.net. administrator.home.net. ( ; Вместо @ будет подставлено автоматически имя зоны из файла /etc/bind/named.conf.default-zones 2017092701 ; Это число нужно менять каждый раз при изменении этого файла ; Очень удобно взять текущее число и добавить ещё пару цифр для указания ревизии 3h ; 1h ; 1w ; 1h ) IN NS dc.home.net. ; Указываем имя основного DNS-сервера, обслуживающего зону ; Наличие пробела или табуляции в начале строки и точки ; после .net обязательно dc IN A 192.168.0.1 ; IP-адрес сервера имен imap IN CNAME dc ; Указываем, что наш DNS-сервер так же отзывается на imap.home.net smtp IN CNAME dc ; и smtp.home.net arm01 IN A 192.168.0.101 arm02 IN A 192.168.0.102 arm03 IN A 192.168.0.103 arm04 IN A 192.168.0.104 arm05 IN A 192.168.0.105 arm06 IN A 192.168.0.106 arm07 IN A 192.168.0.107 arm08 IN A 192.168.0.108 arm09 IN A 192.168.0.109 arm10 IN A 192.168.0.110
Обратная зона
Создадим файл, на который ссылается обратная зона, и заполним его по образцу:
$TTL 3h @ IN SOA dc.home.net. administrator.home.net. ( 2017092701 ; Это число тоже нужно менять 3h ; 1h ; 1w ; 1h ) IN NS dc.home.net. 1 IN PTR dc.home.net. ; Наш сервер 101 IN PTR arm01.home.net. 102 IN PTR arm02.home.net. 103 IN PTR arm03.home.net. 104 IN PTR arm04.home.net. 105 IN PTR arm05.home.net. 106 IN PTR arm06.home.net. 107 IN PTR arm07.home.net. 108 IN PTR arm08.home.net. 109 IN PTR arm09.home.net. 110 IN PTR arm10.home.net.
Запуск сервера и проверка работоспособности
Если всё сделано правильно, точки расставлены и IP-адреса указаны верно, можно попробовать запустить наш сервер:
Если вместо кучи ошибок сервер просто написал, что всё хорошо, можно проверить разрешение имен:
host arm01.home.net host 192.168.0.9
В обоих случаях сервер должен вернуть информацию о том, на что указывает доменное имя или IP-адрес. Если вместо этого он выдает сообщение об ошибке, самое время проверить корректность конфигурационных файлов. Это делается вызовом следующих несложных команд:
named-checkconf /etc/bind/named.conf named-checkzone home.net /etc/bind/db.home.net named-checkzone 192.168.0 /etc/bind/db.0.168.192
Данные утилиты из состава пакета bind9utils укажут на ошибки в конфигурационных файлах.
Клиенты
Существует несколько способов настроить обращение к DNS-серверу на клиентских машинах. По скольку речь идет об операционной системе для социальной группы ‘siloviki’, выбор инструментальных средств невелик — wicd , /etc/network/interfaces и /etc/resolv.conf .
Первый способ отметаем сразу же, поскольку с wicd довольно много проблем. Не буду останавливаться на них подробно, но обычно первое, что приходится делать на свежеустановленной системе — убрать его из автозагрузки:
service wicd stop chkconfig wicd off
Можно указать DNS-сервер в настройках сетевых интерфейсов, однако, в этом случае их нужно прописывать для каждого сетевого интерфейса, а я не люблю повторяться. В связи с этим просто откорректируем файл /etc/resolv.conf на клиентских машинах:
domain home.net search home.net nameserver 192.168.0.1
Работа в ненулевых мандатных режимах
В данном дистрибутиве реализована мандатная модель разграничения доступа, в том числе к сетевым сервисам. Чтобы обеспечить корректную работу демона named в режимах с мандатной меткой, отличной от нулевой, нужно добавить всего одну строчку в файл /etc/parsec/privsock.conf :
Введение
Статья основана на материалах из 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
Добавлять зоны перенаправления и реверсивные зоны домена AD в файлы named.conf не нужно, так как эти зоны хранятся динамически в AD.
Создание файла зоны localhost и файла реверсивной зоны 0.0.127.in-addr.arpa
Файлы зоны localhost и файла реверсивной зоны 0.0.127.in-addr.arpa при установке пакета создаются автоматически (файлы /etc/bind/db.local и /etc/bind/db.127 соответственно).
Запуск сервиса
Для запуска/перезапуска сервиса BIND используйте команды
Проверка зон
Следующие примеры запрашивают у сервиса 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 появится только после этого назначения.
Во время назначения Samba на роль контроллера домена AD автоматически создается конфигурационный файл /var/lib/samba/bind-dns/named.conf службы BIND9:
# This DNS configuration is for BIND 9.8.0 or later with dlz_dlopen support.
#
# This file should be included in your main BIND configuration file
#
# For example with
# include «/var/lib/samba/bind-dns/named.conf»;
#
# This configures dynamically loadable zones (DLZ) from AD schema
# Uncomment only single database line, depending on your BIND version
#
dlz «AD DNS Zone» <
# For BIND 9.8.x
# database «dlopen /usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9.so»;
# For BIND 9.9.x
# database «dlopen /usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9_9.so»;
# For BIND 9.10.x
# database «dlopen /usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9_10.so»;
# For BIND 9.11.x
database «dlopen /usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9_11.so»;
>;
Для включения модуля BIND9_DLZ:
Добавить в конфигурационный файл /etc/bind/named.conf команду включения конфигурации samba:
Определить используемую версию bind командой:
С помощью любого текстового редактора убедиться, что в файле /var/lib/samba/bind-dns/named.conf раскомментировна строка, соответствующая используемой версии BIND. При написании этой статьи использовалась версия BIND 9.11.
Разрешить доступ к файлу /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;; 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;; 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