Інсталяція та налаштування NSD4 на Centos7

nsd

NSD це демон сервера імен, є авторитетним сервером імен DNS. Він був розроблений для роботи в середовищах, де швидкість, надійність, стабільність і безпека мають велике значення.

NSD це швидкий DNS, який може обслуговувати мільйони запитів на секунду. Це робить сервер імен ідеальним для впровадження домену верхнього рівня, кореневих серверів DNS і для тих, хто потребує швидкого й оптимізованого авторитетного сервера імен. Наразі три кореневі сервери DNS і багато реєстрів доменів верхнього рівня використовують NSD як частину своєї серверної реалізації. NSD не реалізував рекурсивне кешування.

Розглянемо приклад інсталяції та налаштування NSD4 на Centos7. Для прикладу, я замовив тестовий VDS на у провайдера Ukrnames.

У прикладі, 127.0.0.2 – це мастер, 127.0.0.1 – слейв який ми налаштоваємо

Завантажуємо та розпаковуємо NSD4:

wget https://www.nlnetlabs.nl/downloads/nsd/nsd-4.6.0.tar.gz

tar xzf nsd-4.6.0.tar.gz

cd /nsd-4.6.0

Ставимо gcc, libevent-devel, openssl-devel:
yum -y install gcc libevent-devel openssl-devel

Збираємо:

./configure

make

make install

Переходимо в директорію NSD та копіюємо файл конфігурації:

cd /etc/nsd

cp nsd.conf.sample nsd.conf

Відкриваємо файл конфігурації:

nano /etc/nsd/nsd.conf

server:
ip-address: 0.0.0.0
do-ip4: yes
do-ip6: no
port: 53
verbosity: 2
username: nsd
logfile: «/var/log/nsd.log»
pidfile: «/var/run/nsd/nsd.pid»

remote-control:
control-enable: yes
control-interface: 127.0.0.1

zone:
name: «example.com»
zonefile: «/etc/nsd/slave/db.example.com»
allow-notify: 127.0.0.2 NOKEY
allow-notify: 127.0.0.1 NOKEY
request-xfr: 127.0.0.2 NOKEY

Ствоюємо директорію для зберігання файлів зони:

mkdir -p /etc/nsd/slave

Створюємо користувача та даємо йому права:

groupadd -g 5252 nsd
useradd -M -d /etc/nsd -s /sbin/nologin -g nsd -u 5252 nsd

Даємо права на директорію для користувача nsd:

chown -R nsd:nsd /etc/nsd

Генеруємо ключі для керування nsd:

nsd-control-setup

Створюємо директорію для файла-процессу nsd та даємо права:

mkdir -p /var/run/nsd/

chown -R nsd:nsd /var/run/nsd/

chown -R nsd:nsd /var/db/nsd/

Створюємо сервіс:

nano /etc/systemd/system/nsd.service

[Unit]
Description=NSD DNS Server
After=syslog.target network.target

[Service]
Type=forking
PIDFile=/var/run/nsd/nsd.pid
ExecStartPre=/usr/bin/mkdir -p /var/run/nsd/
ExecStartPre=/usr/bin/chown -R nsd:nsd /var/run/nsd/
ExecStart=/usr/local/sbin/nsd-control -c /etc/nsd/nsd.conf start
ExecReload=/usr/local/sbin/nsd-control -c /etc/nsd/nsd.conf write
ExecReload=/usr/local/sbin/nsd-control -c /etc/nsd/nsd.conf reconfig
ExecStop=/usr/local/sbin/nsd-control -c /etc/nsd/nsd.conf write
ExecStop=/usr/local/sbin/nsd-control -c /etc/nsd/nsd.conf stop
ExecStopPost=/usr/bin/rm -rf /var/run/nsd

[Install]
WantedBy=multi-user.target

Зберігаємо.

Перевірямо стан:

systemctl status nsd

Має повернути:

nsd.service — NSD DNS Server
Loaded: loaded (/etc/systemd/system/nsd.service; disabled)
Active: inactive (dead)

Активуємо сервіс:

systemctl enable nsd

ln -s ‘/etc/systemd/system/nsd.service’ ‘/etc/systemd/system/multi-user.target.wants/nsd.service’

Перезавантажуємо сервер, щоб перевірити робору nsd після рестарту:

systemctl reboot

Основні команди nsd якими я користуюся:

nsd-control status

nsd-control stop

nsd-control start

nsd-control reload

Детальний опис команд можно прочитати тут

Схожі публікації