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

Резервный Ubuntu AD-DC — запуск BIND9

AdminGuide ·
Резервный Ubuntu AD-DC — запуск BIND9

Резервный Ubuntu AD-DC нуждается в рабочем DNS сервере. При этом этот DNS сервер не должен быть независимым. Он должен работать совместно с другими серверами домена. В связи с этим мы и настраивали репликацию SysVol. Теперь, прежде чем впервые включить установленный ранее на резервный Ubuntu AD-DC BIND9, мы должны проверить, реплицируется ли наша днс зона на наш резервный контроллер домена.

Резервный Ubuntu AD-DC — Проверяем репликацию DNS записей

На ag-dc-2 запускаем команду:

bash
sudo samba-tool drs showrepl

Во входящих соединениях смотрим:

bash
DC=ForestDnsZones,DC=adminguide,DC=lan
        Default-First-Site-Name\AG-DC-1 via RPC
                DSA object GUID: 953d05c6-b395-4b24-93bc-9f2d46ac256d
                Last attempt @ NTTIME(0) was successful
                0 consecutive failure(s).
                Last success @ NTTIME(0)

и

bash
DC=DomainDnsZones,DC=adminguide,DC=lan
        Default-First-Site-Name\AG-DC-1 via RPC
                DSA object GUID: 953d05c6-b395-4b24-93bc-9f2d46ac256d
                Last attempt @ NTTIME(0) was successful
                0 consecutive failure(s).
                Last success @ NTTIME(0)

Даты Last attempt и Last success должны быть актуальными, consecutive failure(s) должно быть равно нулю. Если что-то не соответствует ожидаемому результату — ищите где вы сделали ошибку ранее.

Запускаем bind9, допиливаем apparmor

Первой командой запустим сервер. Именно запустим. До этого он всё время был выключен.

bash
sudo systemctl unmask bind9
sudo systemctl enable bind9
sudo service bind9 start

Далее можно посмотреть логи на предмет строк в которых фигурирует apparmor=«DENIED».

bash
tail -n 50 /var/log/syslog

Всё потому что аппармор вообще не в курсе что вы там химичите. И вы ли вообще это химичите. Поэтому при попытке дёрнуть тот или иной файл или неизвестную аппармору ранее директорию, он всё блочит. Чтобы «дообучить» аппармор нужна команда aa-logprof из пакета apparmor-utils. Если её нету на сервере, доставляем командой sudo apt install apparmor-utils

bash
sudo aa-logprof

Оно будет задавать вам всякие вопросы, а вы если не хотите вникать в суть, должны везде жать всё похожее на (A)llow, (I)nherit и (S)ave Changes. В общем всячески соглашаться с машинами, будущими нашими хозяевами. Когда аппармор прошерстит сислог и получит ответы на все интересующие его вопросы, перезапустим его командой:

bash
sudo systemctl restart apparmor

или с помощью команды

bash
sudo /etc/init.d/apparmor stop && sudo /etc/init.d/apparmor start

Резервный Ubuntu AD-DC — Финальная проверка

Теперь снова перезапускаем bind9 и проверяем несколько запросов к только что сконфигурированному (ещё не полностью) 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

Вы должны видеть следующий ответ от нашего DNS сервера

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.

Всё работает. Теперь необходимо перенастроить ag-dc-2 чтобы для работы он использовал собственный DNS сервер

Изменяем параметры адаптера

bash
sudo nano /etc/netplan/*.yaml

Заменяем указанный DNS сервер со 192.168.1.100 на IP адрес текущего контроллера домена, 192.168.1.101

bash
network:
    ethernets:
        ens160:
            dhcp4: no
            dhcp6: no
            addresses: [192.168.1.101/24, ]
            gateway4: 192.168.1.1
            nameservers:
                    addresses: [192.168.1.101, ]
    version: 2

Сохраняем с помощью

bash
sudo netplan apply

Открываем на редактирование resolv.conf

bash
sudo nano /etc/resolv.conf

И точно так же меняем там адрес DNS сервера с 192.168.1.100 на 192.168.1.101

bash
nameserver 192.168.1.101
search adminguide.lan

Проверяем ещё раз, но теперь без указания IP адреса DNS сервера куда будет отправлен запрос:

bash
sudo service bind9 restart
host -t A localhost
host -t PTR 127.0.0.1
nslookup adminguide.ru 192.168.1.100
nslookup adminguide.ru

Ответ должен быть следующим:

bash
adminguideru@ag-dc-2:~$ host -t A localhost
localhost has address 127.0.0.1
adminguideru@ag-dc-2:~$ host -t PTR 127.0.0.1
1.0.0.127.in-addr.arpa domain name pointer localhost.
adminguideru@ag-dc-2:~$
adminguideru@ag-dc-2:~$ nslookup adminguide.ru 192.168.1.100
Server:         192.168.1.100
Address:        192.168.1.100#53
Non-authoritative answer:
Name:   adminguide.ru
Address: 31.31.196.248
adminguideru@ag-dc-2:~$ nslookup adminguide.ru
Server:         192.168.1.101
Address:        192.168.1.101#53
Non-authoritative answer:
Name:   adminguide.ru
Address: 31.31.196.248

Проверяем работоспособность kerberos

Запрашиваем тикет для учётной записи администратора домена

bash
kinit administrator

Вводим пароль администратора домена

Надо убедиться что всё работает, потому проверяем кеш с тикетами керберос

bash
klist

Ожидаемый результат выглядит так:

bash
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: administrator@ADMINGUIDE.LAN

Valid starting     Expires            Service principal
01/02/21 08:17:24  01/02/21 18:17:24  krbtgt/ADMINGUIDE.LAN@ADMINGUIDE.LAN
        renew until 01/03/21 08:17:17

Если что-то не так, пишите, будем разбираться.

Если всё хорошо, значит я няшечка. Лайк, репост, подписка. Так же для добровольцев на сайте есть яндекс форма с донатом, а потом будет патреон 🙂

Переходим к следующей статье.