Задание №10: Инфраструктура службы доменных имён (DNS BIND)
В данном задании на сервере главного офиса (HQ-SRV) развёртывается корпоративный DNS-сервер BIND 9 (named).
Сервер обеспечивает сопоставление доменных имён в IP-адреса (прямая зона) и IP-адресов в доменные имена (обратная зона PTR) для зоны .au-team.irpo, а также перенаправляет внешние запросы в Интернет через серверы пересылки (Forwarders).
Место выполнения
Все действия выполняются под пользователем root на сервере HQ-SRV (hq-srv.au-team.irpo).
1. Внимание: порядок действий и потеря Интернета
Осторожно: не меняйте DNS до установки пакетов!
Если вы переключите DNS в файле resolv.conf на 127.0.0.1 до того, как установите пакеты и запустите службу BIND, на сервере полностью пропадёт доступ в Интернет по доменным именам. В результате команда apt-get не сможет подключиться к репозиториям ALT Linux.
Строго соблюдайте порядок: сначала устанавливаем bind bind-utils nano, и только затем переключаем системный резолвер на локальный адрес 127.0.0.1!
2. Теоретическая справка: структура BIND в ALT Linux
1. Как устроены зоны в файле options.conf?
- Прямая зона (
zone "au-team.irpo"): сопоставляет читаемые имена компьютеров (hq-rtr,br-srv) с их IPv4-адресами (записи типа A). - Обратная зона (
zone "168.192.in-addr.arpa"): сопоставляет IP-адрес с именем (записи типа PTR). В обратных зонах октеты сети записываются в обратном порядке. Для сетей192.168.x.xидентификатором зоны является168.192.in-addr.arpa. - Пересылка (
forwarders { 77.88.8.7; 77.88.8.3; };): если клиент запрашивает внешний сайт (например,ya.ru), BIND перенаправляет этот запрос на общедоступные DNS-серверы Яндекса. dnssec-validation no;: отключает проверку DNSSEC. Так как наша зона.au-team.irpoлокальная и не подписана в мировом корневом дереве DNS, включенный DNSSEC привёл бы к ошибкам разрешения имён (SERVFAIL).
2. Зачем менять права chown :named?
В целях безопасности демон BIND в ALT Linux запускается от имени системного непривилегированного пользователя и группы named. Если файлы созданы пользователем root, демон не сможет их прочитать. Поэтому группе named обязательно передаются права на файлы зон.
Шаг 1. Установка пакетов и генерация ключа RNDC
Сначала скачиваем и устанавливаем службу и утилиты диагностики:
# 1. Устанавливаем BIND, утилиты запросов (dig, host, nslookup) и редактор nano:
apt-get update && apt-get install bind bind-utils nano -y
# 2. Перенаправляем резолвер сервера на самого себя:
echo $'search au-team.irpo\nnameserver 127.0.0.1' > /etc/net/ifaces/enp7s1/resolv.conf
# 3. Генерируем ключ управления сервером RNDC:
rndc-confgen -a -c /etc/bind/rndc.keyШаг 2. Настройка конфигурации BIND (options.conf)
Открываем конфигурационный файл службы:
nano /etc/bind/options.confПолностью очищаем файл и вставляем следующую конфигурацию:
options {
listen-on { 127.0.0.1; 192.168.100.2; };
forwarders { 77.88.8.7; 77.88.8.3; };
recursion yes;
allow-recursion { any; };
allow-query { any; };
dnssec-validation no;
directory "/etc/bind/zone";
dump-file "/var/run/named/named_dump.db";
statistics-file "/var/run/named/named.stats";
pid-file "/var/run/named/named.pid";
};
logging {
category default { default_syslog; };
};
zone "au-team.irpo" {
type master;
file "au-team.irpo";
};
zone "168.192.in-addr.arpa" {
type master;
file "168.192.in-addr.arpa";
};Шаг 3. Настройка файла прямой зоны (au-team.irpo)
В качестве основы копируем стандартный шаблон локальной зоны:
cp -r /etc/bind/zone/127.in-addr.arpa /etc/bind/zone/au-team.irpo
nano /etc/bind/zone/au-team.irpoПриводим файл к следующему виду:
$TTL 1D
@ IN SOA au-team.irpo. root.au-team.irpo. (
2025020600
12H
1H
1W
1H
)
@ IN NS hq-srv.au-team.irpo.
hq-rtr IN A 192.168.100.1
hq-srv IN A 192.168.100.2
hq-cli IN A 192.168.200.2
br-rtr IN A 192.168.0.1
br-srv IN A 192.168.0.2
docker IN A 172.16.1.1
web IN A 172.16.2.1Обратите внимание на точки в конце имён!
В файлах зон BIND точка в конце имени (например, hq-srv.au-team.irpo.) означает абсолютное доменное имя. Если не поставить точку, BIND автоматически припишет к нему имя текущей зоны (hq-srv.au-team.irpo.au-team.irpo.), что приведёт к ошибке!
Шаг 4. Настройка файла обратной зоны (168.192.in-addr.arpa)
Создаём файл обратного разрешения IP-адресов в имена:
cp -r /etc/bind/zone/127.in-addr.arpa /etc/bind/zone/168.192.in-addr.arpa
nano /etc/bind/zone/168.192.in-addr.arpaЗаполняем записями PTR:
$TTL 1D
@ IN SOA au-team.irpo. root.au-team.irpo. (
2025020600
12H
1H
1W
1H
)
@ IN NS au-team.irpo.
1.100 IN PTR hq-rtr.au-team.irpo.
2.100 IN PTR hq-srv.au-team.irpo.
2.200 IN PTR hq-cli.au-team.irpo.Как читать запись 1.100?
Зона называется 168.192.in-addr.arpa. Запись 1.100 вместе с именем зоны образует полный обратный адрес 1.100.168.192.in-addr.arpa, что соответствует нормальному IP-адресу 192.168.100.1 (шлюз HQ-RTR).
Шаг 5. Назначение прав и запуск службы BIND
# 1. Передаем права владения файлами зон системной группе named:
chown :named /etc/bind/zone/au-team.irpo /etc/bind/zone/168.192.in-addr.arpa
# 2. Включаем автозапуск и стартуем службу BIND:
systemctl enable --now bind
# 3. Перезапускаем сеть, чтобы обновился системный /etc/resolv.conf:
service network restart
# 4. Перезапускаем сервис BIND для применения свежих зон:
systemctl restart bind.serviceШаг 6. Проверка работоспособности (Верификация)
Выполните тестовые запросы утилитой host:
1. Проверка разрешения внутреннего имени (прямая зона):
host br-rtrОжидаемый ответ:
br-rtr.au-team.irpo has address 192.168.0.12. Проверка обратного разрешения IP в имя (обратная зона):
host -t PTR 192.168.100.2Ожидаемый ответ:
2.100.168.192.in-addr.arpa domain name pointer hq-srv.au-team.irpo.3. Проверка внешнего Интернета через серверы пересылки (Forwarders):
host ya.ruОжидаемый ответ: успешный вывод IP-адресов Яндекса, подтверждающий работу рекурсии и директивы forwarders.
