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;
file "/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;
file "/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 работает успешно, Вам все еще необходимо выполнить алгоритм привязки описанный в следующей статье.