Сервер dns на debian

Небольшой мануал по установке и настройке сервера имен (dns) на операционной системе debian. Мануал пересекается со статьей Сервер dhcp на debian. И в итоге получим настроенный ddns сервер
Установка DNS сервера
sudo apt install bind9
Необходимо сгенерировать ключ для обновления dns записей
dnssec-keygen -a HMAC-MD5 -b 128-r /dev/urandom -n USER DHCP_UPDATER
Сгенерированный ключ храниться в файле /etc/bind/Kdhcp_updater.xxxx.key
DHCP_UPDATER. IN KEY 0 3 157 hi/CIXoy+pGalrBzxmNYNQ==
hi/CIXoy+pGalrBzxmNYNQ== это и есть ключ, который понадобится немного позже.
Небольшое дополнение для debian 12.
В данной версии ОС dnssec-keygen не хочет генерировать ключ по алгоритму hmac-md5. Поэтому здесь применим другую команду
sudo tsig-keygen -a HMAC-MD5 DHCP_UPDATER
На выходе получим уже готовый блок для вставки в конфиг bind
key "DHCP_UPDATER" { algorithm hmac-md5; secret "FGJd5mb8/5vly/Md9O1rfg=="; };
Теперь настройка dns сервера. Главный файл находится в /etc/bind/named.conf, необходимо прописать в нем сгенерированный выше ключ
sudo nano /etc/bind/named.conf
// This is the primary configuration file for the BIND DNS server named. // // Please read /usr/share/doc/bind9/README.Debian.gz for information on the // structure of BIND configuration files in Debian, *BEFORE* you customize // this configuration file. // // If you are just adding zones, please do that in /etc/bind/named.conf.local include "/etc/bind/named.conf.options"; include "/etc/bind/named.conf.local"; include "/etc/bind/named.conf.default-zones"; key DHCP_UPDATER { algorithm hmac-md5; secret "hi/CIXoy+pGalrBzxmNYNQ=="; };
Пройдемся по остальным конфигурационным файлам из списка, /etc/bind/named.conf.options
sudo nano /etc/bind/named.conf.options
options { directory "/var/cache/bind"; auth-nxdomain no; forwarders { 192.168.100.1; }; listen-on { 127.0.0.1; 10.5.5.5; }; allow-transfer { none; }; notify no; empty-zones-enable yes; allow-query { 10.5.5.0/24; 127.0.0.0/8; }; allow-recursion { 10.5.5.0/24; 127.0.0.0/8; }; allow-update { none; }; dnssec-validation no; version "REFUSED"; listen-on-v6 { none; }; };
- forwaders — вышестоящий dns сервер
- listen-on — ip адреса, на которых dns сервер будет слушать запросы от клиентов
- allow-query — ip адреса, с которых разрешены запросы к dns серверу
Настройки прямой и обратной зон , находятся в файле /etc/bind/named.conf.local
sudo nano /etc/bind/named.conf.local
// // Do any local configuration here // // Consider adding the 1918 zones here, if they are not used in your // organization //include "/etc/bind/zones.rfc1918"; zone "lct.loc" { type master; file "/var/cache/bind/db.lct.loc"; allow-update { key DHCP_UPDATER; }; }; zone "5.5.10.in-addr.arpa" { type master; file "/var/cache/bind/db.10.5.5"; allow-update { key DHCP_UPDATER; }; };
В каталоге /var/cache/bind/ хранятся динамические файлы dns сервера.
Настройки зон по-умолчанию, находятся в файле /etc/bind/named.conf.default-zones, их можно не менять
sudo nano /etc/bind/named.conf.default-zones
// prime the server with knowledge of the root servers zone "." { type hint; file "/usr/share/dns/root.hints"; }; // be authoritative for the localhost forward and reverse zones, and for // broadcast zones as per RFC 1912 zone "localhost" { type master; file "/etc/bind/db.local"; }; zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; }; zone "0.in-addr.arpa" { type master; file "/etc/bind/db.0"; }; zone "255.in-addr.arpa" { type master; file "/etc/bind/db.255"; };
Теперь необходимо создать и настроить файлы для работы динамических зон dns сервера
Прямая зона:
sudo nano /var/cache/bind/db.lct.loc
$ORIGIN . $TTL 3600 ; 1 hour lct.loc IN SOA srv.lct.loc. admin.lct.loc. ( 2024060512 ; serial 7200 ; refresh (2 hours) 540 ; retry (9 minutes) 36000 ; expire (10 hours) 3600 ; minimum (1 hour) ) NS srv.lct.loc. $ORIGIN lct.loc. srv A 10.5.5.5
- serial — это серийный номер зоны, может быть любым, но после каждого редактирования файла, должен изменяться на единицу.
- NS запись показывает, что dns сервером является наш сервер
- A запись привязывает ip адрес к имени.
Наполнение файла будет производиться автоматически. Так же, при необходимости, можно добавить добавить А запись вручную:
name A 10.5.5.24 proxy A 10.5.5.32
Если одному ip адресу необходимо присвоить несколько имен, то можно прописать dns запись CNAME:
ntp CNAME srv proxy CNAME srv
Обратная зона:
sudo nano /var/cache/bind/db.10.5.5
$ORIGIN . $TTL 3600 ; 1 hour 5.5.10.in-addr.arpa IN SOA srv.lct.loc. admin.lct.loc. ( 2019063010 ; serial 7200 ; refresh (2 hours) 540 ; retry (9 minutes) 36000 ; expire (10 hours) 3600 ; minimum (1 hour) ) NS srv.lct.loc. $ORIGIN 5.5.10.in-addr.arpa. 5 PTR lct.loc. PTR srv.lct.loc.
Далее необходимо прописать на сервере свой dns. Прописывать необходимо в файле /etc/resolv.conf.
sudo nano /etc/resolv.conf
domain lct.loc search lct.loc nameserver 127.0.0.1
Если на сервере установлен пакет resolvconf, тогда писать в файл /etc/resolv.conf нет смысла, т.к. данный файл будет постоянно перезаписываться автоматически. Поэтому редактировать необходимо файл /etc/resolvconf/resolv.conf.d/head
sudo nano /etc/resolvconf/resolv.conf.d/head
Теперь можно настроить сервер dhcp по инструкции из статьи Сервер dhcp на debian
Оставить комментарий