Настройка BIND9 для Linux AD-DC на Ubuntu 18.04 — тот этап с которого начинается всё действо после того, как мы провели первичную настройку Ubuntu Server 18.04. Без настройки bind9 мы не сможем инициализировать Linux AD-DC на Ubuntu Server 18.04. Также в принципе дела обстоят и во всех остальных операционных системах на которых можно поднять Linux AD-DC. Исключением конечно же является инициализация контроллера домена с помощью SAMBA INTERNAL DNS. Но в данной серии статей пойдёт речь об инициализации контроллера домена на Ubuntu Server 18.04 с использованием BIND9 DLZ и ISC-DHCP сервера.
Почему статья о настройке bind9 для Linux AD-DC на Ubuntu 18.04
А не например не Ubuntu 20? Сразу же стоит отметить что под Ubuntu 18.04 или Ubuntu 20.04 тут подразумевается в первую очередь Ubuntu Server 18.04 и Ubuntu Server 20.04. Но нужно понимать что настройка Linux AD-DC что для Ubuntu 18.04 Desktop что для Ubuntu Server 18.04 будет абсолютно идентичная по набору команд и устанавливаемых пакетов. Просто я не делаю больших различий между Ubuntu Server и ubuntu Desktop и для серверной нагрузки за исключением сервера терминалов я использую Ubuntu Server, банально с целью экономии ресурсов потребляемых виртуальными машинами.
Текущее состояние Ubuntu 20.04
Дак вот, в статье говорится про настройку Linux AD-DC для Ubuntu 18.04 потому что совсем недавно, в июне-июле 2020 года, Samba выпустили новую версию, которая пожалуй является переломной в плане технологий используемых для обновления DNS записей в локальной зоне контроллера домена. Если раньше и в данной статье для этих целей использовалась утилита nsupdate. Начиная с недавнего времени Samba начала использовать для этого утилиту samba-tool. Поэтому инструкции разработанные для Ubuntu 18.04, основывающиеся на установке самых последних версий пакетов из репозиториев Ubuntu 18.04, не подходят для Ubuntu 20.04 ввиду разных подходов в работе с DNS зоной.
Так же в репозиториях Ubuntu 20.04 находится bind9 версии 9.16.x. В свою очередь на момент написания статьи, самый последний dlz модуль доступный при установке Samba4 совместим с bind 9.12.x. И если с версией bind9 9.14.x этот модуль DLZ ещё работал без ошибок, то с версией 9.16.x и утилитой samba-tool, syslog сервера начинает пестрить ошибками, ссылающимися именно на код DLZ модуля. Взвесив все за и против я решил отложить адаптацию инструкций по настройке Linux AD-DC для Ubuntu 20 и сосредоточиться на обновлении и актуализации этих же инструкций для Ubuntu 18.04. Я слабо верю что обновления пакетов доставляемые в эти дни в Ubuntu 20.04 могут добраться и до репозиториев Ubuntu 18.04. А спустя пол года-год, когда все обновления по большей части устаканятся, можно будет адаптировать данную инструкцию и для Ubuntu 20.
Цель статьи — Настройка BIND9 для Linux AD-DC
Цель данной статьи — не только актуализировать информацию предыдущей. Эта статья будет с блекджеком и блудницами. Если ранее при настройке домен инициализировался с помощью samba_internal DNS сервера и был способен лишь контролировать авторизацию и обслуживать dns имена присоединённых к нему клиентов, в этой статье будут использоваться BIND9 + dhcpd и все вытекающие прелести, такие как автоматическое создание DNS A-записей в локальной зоне, для устройств получивших адрес по DHCP. То есть любых устройств, а не только членов домена. Изначально я планировал оформить информацию в виде одной статьи. Но наученный горьким опытом сложности поддержания таких статей, я опубликую этот мануал в виде 5 отдельных статей, создав тем самым 5 тематических постов со своими ветками обсуждений каждый. Нуждающийся же да превозможет :). Не стесняйтесь задавать вопросы в комментариях в том месте где вы увидели этот мануал. Если это одна из площадок где я размещаю контент, то я обязательно отвечу.
-
Установка Ubuntu Server 18.04
Полезные команды после установки# Обновить систему sudo apt update && sudo apt dist-upgrade -y # Установить набор сетевых утилит включающий привычный многим ifconfig sudo apt install net-tools # Узнать текущий ip адрес ip addr show ifconfig # Узнать текущий шлюз по умолчанию ip route show
-
Задаём имя сервера
Имя сервера нужно задавать ДО инициализации контроллера домена.
-
Задаём статический IP
Контроллер домена обязательно должен быть со статическим IP адресом, банально потому что если он сменит свой адрес, домен перестанет функционировать.
-
Версии ключевых пакетов использованных в статье
С недавних пор версии пакетов стали фатально важными при воспроизведении инструкции потому вот:
- Samba4: Version 4.7.6-Ubuntu
- bind9 (named): BIND 9.11.3-1ubuntu1.13-Ubuntu (Extended Support Version) <id:a375815>
-
Настройка BIND9 для Linux AD-DC — Часть 1
Примечательно, что начинается установка домена с установки DNS сервера, пакета, распространяемого отдельно от samba4. Можно и потом, но таки в этом случае придётся делать дополнительные телодвижения. Дабы этого избежать сперва надо установить bind и провести его частичную настройку. Установим, создадим зоны, проведём первичную конфигурацию
-
Ставим BIND9_DLZ
sudo apt install bind9
Прежде всего проверяем версию bind
named -v
На момент написания, в репозитории Ubuntu 18.04 была версия 9.11.3
-
Смотрим где bind держит named.conf
named -V | grep sysco
В результате увидим что-то типа этого:
—sysconfdir=/etc/bind — это папка где лежит файл named.conf
-
Смотрим где днс сервер держит кеш
sudo cat /etc/passwd | grep bind
В результате видим что-то типа этого:
Директория /var/cache/bind понадобится нам при дальнейшей настройке
-
Проверяем named.conf
nano /etc/bind/named.conf
В результате видим:
Нам понадобятся файлы выделенные красным
-
Правим named.conf.options
В первую очередь делаем бэкап и правим файл
sudo cp /etc/bind/named.conf.options /etc/bind/named.conf.options_bak sudo nano /etc/bind/named.conf.options
Удаляем его содержимое и заменяем следующим:
# Глобальные настройки options { auth-nxdomain yes; directory "/var/cache/bind"; #Папка с кешем bind notify no; empty-zones-enable no; tkey-gssapi-keytab "/var/lib/samba/private/dns.keytab"; minimal-responses yes; # IP адреса и подсети от которых будут обрабатываться запросы allow-query { 127.0.0.1; 192.168.1.0/24; #Текущая локальная сеть ag-dc-1.adminguide.lan }; # IP адреса и подсети от которых будут обрабатываться рекурсивные запросы # (Зон не обслуживаемых этим DNS сервером) allow-recursion { 127.0.0.1; 192.168.1.0/24; #Текущая локальная сеть ag-dc-1.adminguide.lan }; # Перенаправлять запросы, на которые нет информации в локальной зоне # на следующие сервера: forwarders { 192.168.1.1; #IP адрес DNS форвардера 8.8.8.8; #IP адрес DNS форвардера 8.8.4.4; #IP адрес DNS форвардера }; # Запрет на трансфер зоны allow-transfer { none; }; };
-
Правим named.conf.default-zones
sudo cp /etc/bind/named.conf.default-zones /etc/bind/named.conf.default-zones_bak sudo nano /etc/bind/named.conf.default-zones
Удаляем его содержимое и заменяем следующим:
# Корневые сервера # (Необходимы для рекурсивных запросов) zone "." { type hint; file "named.root"; }; # localhost zone zone "localhost" { type master; file "master/localhost.zone"; }; # 127.0.0. zone. zone "0.0.127.in-addr.arpa" { type master; file "master/0.0.127.zone"; };
-
Переходим разделу: «Контроллер домена Ubuntu — Настройка — Часть 1»
На данном этапе мы сделали всё необходимое. Теперь можно приступить к установке и конфигурации samba4
-
В данный момент весь текстовый контент на неделю раньше публикуется в моём Zen блоге . Там же проходят русскоязычные премьеры видеоуроков 🙂
Так же видео публикуются на Youtube канале, но там проходят сперва англоязычные премьеры 🙂
6 комментариев
После установки, не запускается Bind с ошибкой could not configure root hints from ‘named.root’: file not found
Нужно ли как то предсоздать этот файл или на этом этапе Bind и не должен работать ?
root@b1-dc01:~# sudo systemctl status bind9
● bind9.service — BIND Domain Name Server
Loaded: loaded (/lib/systemd/system/bind9.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2021-04-26 15:33:11 UTC; 1min 36s ago
Docs: man:named(8)
Process: 1204 ExecStart=/usr/sbin/named -f $OPTIONS (code=exited, status=1/FAILURE)
Main PID: 1204 (code=exited, status=1/FAILURE)
Apr 26 15:33:11 b1-dc01 named[1204]: listening on IPv6 interfaces, port 53
Apr 26 15:33:11 b1-dc01 named[1204]: listening on IPv4 interface lo, 127.0.0.1#53
Apr 26 15:33:11 b1-dc01 named[1204]: listening on IPv4 interface ens18, 172.20.55.10#53
Apr 26 15:33:11 b1-dc01 named[1204]: generating session key for dynamic DNS
Apr 26 15:33:11 b1-dc01 named[1204]: sizing zone task pool based on 3 zones
Apr 26 15:33:11 b1-dc01 named[1204]: could not configure root hints from ‘named.root’: file not found
Apr 26 15:33:11 b1-dc01 named[1204]: loading configuration: file not found
Apr 26 15:33:11 b1-dc01 named[1204]: exiting (due to fatal error)
Apr 26 15:33:11 b1-dc01 systemd[1]: bind9.service: Main process exited, code=exited, status=1/FAILURE
Apr 26 15:33:11 b1-dc01 systemd[1]: bind9.service: Failed with result ‘exit-code’.
Данная статья 1я из серии, там идёт поэтапная настройка, бинд будет полноценно запускаться в 3й по счёту статье 🙂
Содержание с порядком выполнения мануалов есть в блоге в дзене: https://zen.yandex.ru/media/id/5ec1740672423a6de38c60a9/nastroika-bind9-dlia-linux-addc-na-ubuntu-1804—chast-1-5f4530222ec78473e19389c4
Удалите мой предыдущий коммент, я уже разобрался прочитав последующие статьи.
PS Материал СУПЕР!
Спасибо, рад что пригодилось 🙂
Здравствуйте хотелось бы узнать как нужно бекапить DC и восстанавливать вслучае выхода из строя. Вы не планируете делать статью на эту тему? Потому что даже если развернуть 2 контроллера это не ведь является бекапом и все равно остается возможность того что база побьется, что нибудь удалится и нужно будет восстанавливать.
С подобной необходимостью никогда не сталкивался ввиду того что аутсоршу я маленькие фирмы которые банально будут не в состоянии\не захотят оплатить мой лишний геморрой с резервным копированием. Когда-нибудь да, я планирую написать подобный материал, но в связи с экстремально низким спросом на подобный контент в интернете, на данный момент я вынужден отложить написание статей в долгий ящик и сосредоточиться на другом способе заработка.