Сервер доменных имен (DNS) является критическим компонентом инфраструктуры интернета, и создание собственного DNS-сервера может быть сложной задачей. Однако не с BIND, где вы можете создать свой DNS-сервер BIND в кратчайшие сроки. BIND заслужил отличную репутацию среди администраторов благодаря своей гибкости и поддержке высокой доступности.
В этой статье вы узнаете, как установить и настроить безопасный DNS-сервер BIND и проверить, что поддомены разрешаются на правильный IP-адрес.
Продолжайте читать и создавайте свой DNS-сервер без лишних усилий!
Предварительные требования
Этот учебник будет практическим демонстрационным материалом. Для следования за ним убедитесь, что у вас есть следующее.
- A Linux server – This example uses the Ubuntu 20.04 server.
- A non-root user with root privileges or root/administrator user.
- A domain name pointed to the server IP address – This demo uses the atadomain.io domain and server IP address 172.16.1.10.
Установка пакетов BIND
Репозиторий по умолчанию Ubuntu предоставляет пакеты BIND, но они не устанавливаются в системе по умолчанию. Вы можете установить BIND как основной DNS-сервер или только как авторитетный. BIND предоставляет вам мощные функции, такие как поддержка установки master-slave, поддержка DNSSEC и встроенные списки контроля доступа (ACL).
Чтобы начать работу с DNS BIND, вам сначала нужно установить пакеты BIND на свою машину с помощью менеджера пакетов apt.
1. Откройте терминал и войдите в свой сервер.
2. Затем выполните команду apt update
, чтобы обновить и обновить индекс пакетов репозитория. Эта команда гарантирует, что вы устанавливаете последнюю версию пакетов.

3. После обновления выполните следующую команду apt install
, чтобы установить пакеты BIND для сервера Ubuntu.
Пакеты bind9-utils и bind9-dnsutils предоставляют дополнительные инструменты командной строки для BIND. Эти пакеты полезны для тестирования и управления сервером DNS BIND.

4. Наконец, выполните команду systemctl
ниже, чтобы проверить службу BIND.
Пакет BIND поставляется с службой named, которая автоматически запускается и активируется во время установки пакета BIND.
Теперь вы должны видеть, что служба BIND named включена, а ее статус активен (работает). На этом этапе служба BIND будет автоматически запускаться при запуске/перезагрузке системы.

Настройка сервера DNS BIND
Теперь вы установили пакеты BIND на сервере Ubuntu, поэтому настало время настроить установку BIND на вашем сервере Ubuntu. Как? Редактируя конфигурации BIND и службы named
.
Вся конфигурация для BIND доступна в каталоге /etc/bind/, а конфигурации для службы named
— в /etc/default/named.
1. Отредактируйте конфигурацию /etc/default/named с помощью выбранного вами редактора и добавьте опцию -4
на строку OPTIONS
, как показано ниже. Эта опция запустит службу named
только на IPv4.
Сохраните внесенные изменения и закройте файл.

2. Затем отредактируйте файл /etc/bind/named.conf.options и добавьте следующую конфигурацию ниже строки directory "/var/cache/bind";
.
Эта конфигурация устанавливает службу BIND для работы на стандартном UDP-порте 53 на локальном хосте сервера и общедоступном IP-адресе (172.16.1.10). Одновременно она позволяет запросы от любого хоста к серверу DNS BIND, используя Cloudflare DNS 1.1.1.1 в качестве переадресатора.
В конце закомментируйте строку listen-on-v6 { any; };
, как показано ниже, чтобы отключить запуск службы named
на IPv6.

3. Наконец, выполните следующую команду, чтобы проверить конфигурацию BIND.
Если нет вывода, конфигурации BIND верны и не содержат ошибок.

Настройка DNS-зон
На данном этапе вы настроили базовую конфигурацию сервера DNS BIND. Теперь вы готовы создать DNS-сервер с вашим доменом и добавить другие поддомены для ваших приложений. Для этого вам потребуется определить и создать новую конфигурацию зон DNS.
В этом руководстве вы создадите новый сервер имен (ns1.atadomain.io) и поддомены (www.atadomain.io, mail.atadomain.io, vault.atadomain.io).
1. Отредактируйте файл /etc/bind/named.conf.local с использованием вашего предпочтительного редактора и добавьте следующую конфигурацию.
Эта конфигурация определяет прямую зону (/etc/bind/zones/forward.atadomain.io) и обратную зону (/etc/bind/zones/reverse.atadomain.io) для доменного имени atadomain.io.
Сохраните изменения и закройте файл.

2. Затем выполните следующую команду для создания нового каталога (/etc/bind/zones
) для конфигураций зон DNS строкой.
3. Выполните каждую из команд ниже, чтобы скопировать конфигурации прямых и обратных зон по умолчанию в каталог /etc/bind/zones
.

4. Теперь отредактируйте конфигурацию прямой зоны (/etc/bind/zones/forward.atadomain.io) с использованием вашего предпочтительного редактора и заполните следующую конфигурацию.
Перенаправление зоны – это место, где вы определяете свое доменное имя и IP-адрес сервера. Эта конфигурация преобразует доменное имя в правильный IP-адрес сервера.
Ниже приведена конфигурация, создающая следующий сервер и поддомены:
ns1.atadomain.io
– Основной сервер имен для вашего домена с IP-адресом172.16.1.10
.
- Запись MX для домена
atadomain.io
, обрабатываемаяmail.atadomain.io
. Запись MX используется для почтового сервера.
- Поддомены для приложений:
www.atadomain.io
,mail.atadomain.io
иvault.atadomain.io
.
Сохраните изменения и закройте файл.

5. Как и в прямой зоне, отредактируйте файл конфигурации обратной зоны (/etc/bind/zones/reverse.atadomain.io) и заполните следующую конфигурацию.
Обратная зона преобразует IP-адрес сервера в доменное имя. Обратная зона или запись PTR существенны для служб, таких как почтовый сервер, что влияет на репутацию почтового сервера.
Запись PTR использует последний блок IP-адреса, например запись PTR с номером 10 для IP-адреса сервера 172.16.1.10.
Эта конфигурация создает обратную зону или запись PTR для следующих доменов:
- Сервер имен
ns1.atadomain.io
с обратной зоной или записью PTR172.16.1.10
.
- Запись PTR для домена
mail.atadomain.io
на IP-адрес сервера172.16.1.20
.
Сохраните изменения и закройте файл.

6. Теперь выполните следующие команды, чтобы проверить и подтвердить конфигурации BIND.
Когда ваша конфигурация правильна, вы увидите вывод, аналогичный ниже.

7. Наконец, выполните следующую команду systemctl
ниже, чтобы перезагрузить и проверить службу named
. Это применяет новые изменения к службе named
.
Ниже вы можете видеть, что статус службы named активен (работает).

Открытие порта DNS с помощью брандмауэра UFW
На этом этапе вы завершили установку сервера DNS BIND. Но вам все еще нужно защитить ваш DNS-сервер. Вы настроите брандмауэр UFW и откроете порт DNS для любых запросов к серверу. Это позволяет клиентам делать запросы к серверу DNS BIND.
По соображениям безопасности рекомендуется запустить и включить брандмауэр UFW на вашем сервере Ubuntu.
1. Выполните команду ufw
ниже, чтобы проверить доступные приложения в брандмауэре UFW.
Вы должны увидеть Bind9 в списке приложений UFW ниже.

2. Теперь выполните следующую команду, чтобы разрешить Bind9 в брандмауэре UFW.

3. В конце выполните следующую команду для проверки включенных правил в брандмауэре UFW.
Вы должны увидеть приложение Bind9 в списке, как на скриншоте ниже.

Проверка установки сервера DNS BIND
Вы завершили установку DNS BIND и настроили брандмауэр UFW. Но как проверить установку вашего DNS-сервера? Команда dig
решит эту задачу.
Dig – это утилита командной строки для устранения неполадок установки DNS-сервера. dig
выполняет DNS-запрос для указанного доменного имени и отображает подробные ответы для целевого доменного имени. В системе Ubuntu dig
входит в пакет bind9-dnsutil
.
Чтобы проверить установку вашего DNS-сервера BIND:
1. Выполните каждую команду dig
ниже, чтобы проверить субдомены www.atadomain.io
, mail.atadomain.io
и vault.atadomain.io
.
Если установка вашего DNS-сервера прошла успешно, каждый поддомен будет разрешен в соответствующий IP-адрес на основе конфигурации forward.atadomain.io.
Ниже приведен результат разрешения поддомена www.atadomain.io на IP-адрес сервера 172.16.1.10.

Ниже приведен поддомен mail.atadomain.io, разрешенный на IP-адрес сервера 172.16.1.20.

И ниже приведен поддомен vault.atadomain.io, разрешенный на IP-адрес сервера 172.16.1.50.

2. Затем выполните команду dig
ниже, чтобы проверить запись MX для домена atadomain.io
.
Вы должны увидеть, что домен atadomain.io имеет запись MX mail.atadomain.io.

3. Наконец, выполните следующие команды, чтобы проверить запись PTR или обратную зону для IP-адресов сервера 172.16.1.10
и 172.16.1.20
.
Если установка BIND прошла успешно, каждый IP-адрес будет разрешен в имя домена, определенное в конфигурации reverse.atadomain.io.
Как видите ниже, IP-адрес сервера 172.16.1.10 разрешается в доменное имя ns1.atadomain.io.

Как видите ниже, IP-адрес сервера 172.16.1.20 разрешается в доменное имя mail.atadomain.io.

Conclusion
На протяжении этого руководства вы узнали, как создать и настроить безопасный сервер DNS BIND на своем сервере Ubuntu. Вы также создали прямую и обратную зону для добавления вашего домена и проверили DNS-серверы, запустив команды dig
.
Теперь, как вы можете реализовать сервер DNS BIND в своей среде? Возможно, реализовать BIND как авторитетный сервер? Или настроить высокую доступность с помощью мастер-слейв установки BIND?