Назад к статьям

Настраиваем BIND9 для Linux AD-DC на Ubuntu 18.04 – Часть 2

AdminGuide · 11.09.2020
Настраиваем BIND9 для Linux AD-DC на Ubuntu 18.04 – Часть 2

Снова настраиваем BIND9 для Linux AD-DC на Ubuntu 18.04. Да, мы уже прошли почти половину пути. В первой статье мы сделали предварительную настройку BIND9. Предварительная настройка позволила нам инициализировать контроллер домена Active Directory. Теперь нам необходимо донастроить bind9 таким образом, чтобы он был готов принять на себя роль полноценного DNS сервера контроллера домена и обслуживать как локальную зону, так и перенаправлять неизвестные ему запросы на DNS форвардер.

Список статей из цикла «Контроллер домена Linux на Ubuntu Server 18.04», актуализированных в 2020 году:

Настройка BIND9 для Linux AD-DC на Ubuntu 18.04 – Часть 1

Linux AD-DC на Ubuntu 18.04 – Настройка Samba4 – Часть 1

Настраиваем BIND9 для Linux AD-DC на Ubuntu 18.04 – Часть 2

Настраиваем BIND9 для Linux AD-DC — Активируем интеграцию DLZ

bash
sudo nano /var/lib/samba/private/named.conf

Если всё было сделано правильно, там автоматом будет раскомменчена строка отвечающая за интеграцию нашей версии самбы с нашей версией bind9.

Настраиваем BIND9 для Linux AD-DC на Ubuntu 18.04 – Часть 2 - Активация BIND9 DLZ
Активация BIND9 DLZ

Этот же файл надо заинклудить в основную конфигурацию named

bash
sudo nano /etc/bind/named.conf

Добавляем в конец

bash
include "/var/lib/samba/private/named.conf";
Настраиваем BIND9 для Linux AD-DC на Ubuntu 18.04 – Часть 2 - Дополняем named.conf
Дополняем named.conf

Проверяем права на dns.keytab

bash
ls -l /var/lib/samba/private/dns.keytab
bash
AdminGuide.Ru@ag-dc-1:~$ ls -l /var/lib/samba/private/dns.keytab
-rw-r----- 2 root bind 802 Apr  3 19:36 /var/lib/samba/private/dns.keytab

Проверяем права на папку /private/

bash
ls -ld /var/lib/samba/private
bash
adminguideru@ag-dc-1:~$ ls -ld /var/lib/samba/private
drwxr-xr-x 6 root root 4096 авг 25 20:43 /var/lib/samba/private

Смотрим права на /etc/krb5.conf

bash
ls -l /etc/krb5.conf
bash
AdminGuide.Ru@ag-dc-1:~$ ls -l /etc/krb5.conf
-rw-r--r-- 1 root bind 2891 Apr  3 17:51 /etc/krb5.conf

В случае несоответствия

bash
sudo chown root:bind /etc/krb5.conf

Проверяем наличие утилиты nsupdate

bash
which nsupdate
bash
AdminGuide.Ru@ag-dc-1:~$ which nsupdate
/usr/bin/nsupdate

Настраиваем BIND9 для Linux AD-DCЗагружаем список корневых днс серверов

bash
sudo wget -q -O /var/cache/bind/named.root http://www.internic.net/zones/named.root
sudo chown root:bind /var/cache/bind/named.root
sudo chmod 640 /var/cache/bind/named.root

Настраиваем BIND9 для Linux AD-DC Проверяем конфиг

bash
sudo named-checkconf
sudo service bind9 start

Если ошибок не будет обнаружено, то named-checkconf не выдаст никакой информации, можно пытаться запустить сервис. Если попытка запуска тоже не выдаст никаких критов прямо в терминал — значит хорошо. DNS сервер почти готов к работе

Настраиваем BIND9 для Linux AD-DC — Создаём файлы зон

bash
sudo mkdir /var/cache/bind/master
sudo chown bind:bind /var/cache/bind/master

localhost

bash
sudo nano /var/cache/bind/master/localhost.zone

Копируем туда следующее:

bash
$TTL 3D

$ORIGIN localhost.

@       1D      IN     SOA     @       root (
                       2013050101      ; serial
                       8H              ; refresh
                       2H              ; retry
                       4W              ; expiry
                       1D              ; minimum
                       )

@       IN      NS      @
        IN      A       127.0.0.1

Изменяем владельца и права доступа

bash
sudo chown bind:bind /var/cache/bind/master/localhost.zone
sudo chmod 640 /var/cache/bind/master/localhost.zone

0.0.127.in-addr.arpa

bash
sudo nano /var/cache/bind/master/0.0.127.zone
bash
$TTL 3D

@       IN      SOA     localhost. root.localhost. (
                        2013050101      ; Serial
                        8H              ; Refresh
                        2H              ; Retry
                        4W              ; Expire
                        1D              ; Minimum TTL
                        )

       IN      NS      localhost.

1      IN      PTR     localhost.
bash
sudo chown bind:bind /var/cache/bind/master/0.0.127.zone
sudo chmod 640 /var/cache/bind/master/0.0.127.zone

Запускаем\перезапускаем bind9, проверяем созданные зоны

bash
sudo service bind9 restart
host -t A localhost 127.0.0.1
host -t PTR 127.0.0.1 127.0.0.1
bash
AdminGuide.Ru@ag-dc-1:~$ sudo service bind9 restart
AdminGuide.Ru@ag-dc-1:~$ host -t A localhost 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases: 
localhost has address 127.0.0.1
AdminGuide.Ru@ag-dc-1:~$ host -t PTR 127.0.0.1 127.0.0.1
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.

Если же на host запросы вы видите следующую ошибку:

bash
;; connection timed out; no servers could be reached

Значит вероятнее всего у вас шалит apparmor.
Смотрим лог с помощью команды:

bash
tail -n 50 /var/log/syslog

Если вы видите там строки по типу:

bash
Aug 25 20:48:53 ag-dc-1 kernel: [ 6806.022442] audit: type=1400 audit(1598377733.390:19): apparmor="DENIED" operation="open" profile="/usr/sbin/named" name="/var/lib/samba/private/named.conf" pid=4028 comm="isc-worker0001" requested_mask="r" denied_mask="r" fsuid=111 ouid=0

Это значит что AppArmor исправно работает и защищает ваш сервер. Т.к. настройки AppArmor не являются предметом данной статьи, то просто отключите его и повторно выполните текущий пункт.

Отключение AppArmor

С помощью systemctl останавливаем, отключаем и запрещаем автозапуск для AppArmor

bash
sudo systemctl stop apparmor && sudo systemctl disable apparmor && sudo systemctl mask apparmor

Перезагружаем сервер

bash
sudo reboot -h now

Переходим к разделу: «Контроллер домена Ubuntu — Настройка — Часть 2»