Сервер 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
Оставить комментарий