6.11 Установка DNS-сервера на примере BIND9
BIND9 – це потужне та широко використовуване програмне забезпечення для DNS-серверів. Воно дозволяє керувати доменними іменами та їх дозволом до IP-адрес, що є ключовим елементом роботи інтернету.
Встановлення та налаштування DNS-сервера також є обов’язковою частиною для виконання прив’язки Вашого віртуального сервера до наших NS, щоб керувати записами домену безпосередньо на сервері все ще використовуючи наші NS навіть без панелі керування. Детальніше про сам процес в інструкції, про вимоги до налаштування у другому параграфі цієї статті.
Покрокова інструкція на прикладі Ubuntu 22
У цьому посібнику ми розглянемо процес встановлення та базового налаштування BIND9 на чистому сервері Ubuntu 22. Для встановлення потрібно root.
1. Оновіть систему:
sudo apt update && sudo apt upgrade -y
2. Встановіть BIND9 та необхідні утиліти:
sudo apt install bind9 bind9utils bind9-doc -y
Після цього переконайтеся, що служба BIND9 запущена:
sudo systemctl status bind9
Якщо служба не активна, запустіть її:
sudo systemctl start bind9
Налаштування конфігурації зони
3. Відкрийте основний файл конфігурації:
sudo nano /etc/bind/named.conf.local
Додайте блок зони, вказавши Ваш домен та шлях до файлу зони:
zone "example.com" {
type master;
файл "/etc/bind/zones/db.example.com";
};
Пояснення:
example.com
– ім’я Вашого домену.type master
вказує, що сервер є основним для цієї зони.file
вказує шлях до файлу, де зберігається інформація про зону.
4. Створіть папку для файлів зон (якщо її немає):
sudo mkdir -p /etc/bind/zones
Створіть файл зони:
sudo nano /etc/bind/zones/db.example.com
І заповніть його наступним чином:
$TTL 604800
@ IN SOA ns1.thehost.ua. admin.example.com. (
2024101001; Serial
604800; Refresh
86400; Retry
2419200; Expire
604800); Negative Cache TTL
; Name servers
@ IN NS ns1.thehost.ua.
@ IN NS ns2.thehost.net.
@ IN NS ns3.thehost.biz.
@ IN NS ns4.thehost.pro.
; A records
example.com. IN A 192.0.2.1
www IN A 192.0.2.2
Замініть example.com.
, 192.0.2.1
, та 192.0.2.2
на Ваш домен, та IP-адреси. Якщо Ви не використовуєте на сервері наші NS, також змініть їхній список і ns1.thehost.ua.
у SOA-записі.
Порада: за потреби, можете відразу заповнити файл зони та іншими DNS-записами за допомогою інструкції.
Налаштування зворотної зони (PTR-запису)
Увага: розділ про налаштування PTR не є актуальним для будь-яких наших послуг і носить освітній характер. Якщо Ваша послуга розміщена у нас, керування PTR виконується за інструкцією.
Зворотна зона використовується для перетворення IP-адрес на імена доменів (PTR-записи). Це корисно для роботи з системами, яким необхідно переконатись у зворотній відповідності (наприклад, поштовими серверами).
5. У файлі /etc/bind/named.conf.local
додайте блок:
zone "2.0.192.in-addr.arpa" {
type master;
файл "/etc/bind/zones/db.192.0.2";
};
6. Створіть файл зворотної зони:
sudo nano /etc/bind/zones/db.192.0.2
Заповніть його:
$TTL 604800
@ IN SOA ns1.example.com. admin.example.com. (
2024101001; Serial
604800; Refresh
86400; Retry
2419200; Expire
604800); Negative Cache TTL
; Name servers
@ IN NS ns1.example.com.
; PTR records
0 IN PTR ns1.example.com.
1 IN PTR www.example.com.
Замініть www.example.com.
та ns1.example.com.
на необхідні Вам значення.
Перевірка конфігурації
7. Перевірте синтаксис конфігурації:
sudo named-checkconf
Перевірте зони:
sudo named-checkzone example.com /etc/bind/zones/db.example.com
sudo named-checkzone 2.0.192.in-addr.arpa /etc/bind/zones/db.192.0.2
Система сповістить Вас у разі наявності помилок у конфігурації.
Налаштування брандмауера
8. Відкрийте порт 53 для DNS-запитів:
sudo ufw allow 53/tcp
sudo ufw allow 53/udp
iptables -I INPUT -p tcp -m tcp --dport 53 -j ACCEPT
iptables -I INPUT -p udp -m tcp --dport 53 -j ACCEPT
Врахуйте: процес відкриття портів може відрізнятися залежно від використовуваного брандмауера. Порти можуть бути закриті з боку провайдера послуг (у нас вони відкриті).
Перезапуск служби
9. Перезапустіть BIND9:
sudo systemctl restart bind9
Переконайтеся, що служба працює коректно за допомогою перевірки статусу:
sudo systemctl status bind9
Тестування
10. Перевірте дозвіл доменного імені:
dig @192.0.2.1 example.com
Перевірте запис PTR:
dig @192.0.2.1 -x 192.0.2.1
Прив’язка до наших NS на VPS
Наявність працюючого DNS-сервера на Вашому віртуальному сервері дозволяє прив’язати та синхронізувати його роботу з нашими NS.
Для виконання прив’язки від DNS-сервера потрібно дотриматися таких умов:
- Наші неймсервера. Для виконання прив’язки у домену повинні бути вказані наші неймсервера у відповідних файлах конфігурації.
- Директива allow-transfer. Директива
allow-transfer
у файлах конфігурації у файлі/etc/bind/named.conf.options
(і у файлах зон) має бути НЕ вказана. Або, у крайньому випадку, зазначено так:
allow-transfer {
91.223.180.14;
46.4.57.177;
176.111.63.45;
94.130.133.155;
2a0c:f00::1:14;
2a01:4f8:140:14c8::7;
2a01:4f8:13b:365b::155;
};
Що не рекомендується через малоймовірну, але можливу зміну списку IP-адрес наших NS.
- Прив’язка в панелі VM-Cloud. Якщо вищезазначені умови дотримані та сервіс BIND працює успішно, Вам все ще необхідно виконати алгоритм прив’язки, описаний у наступній статті.