Руководство по настройке доверенных DNS-серверов через Webmin

В предыдущих уроках мы рассматривали настройку авторитетных DNS-серверов и управление DNS-записями через командную строку. Однако многие пользователи отдают предпочтение редактированию записей через веб-интерфейс. В этом руководстве мы расскажем, как с помощью Webmin, бесплатной и открытой панели управления, настроить авторитетные DNS-серверы и управлять DNS-записями через удобный веб-интерфейс.

Настройка авторитетных DNS-серверов с помощью Webmin

Авторитетный DNS-сервер — это узел, который предоставляет окончательные ответы на запросы о доменных именах. Он хранит точные данные о зоне домена и выдает их в ответ на обращения других серверов, не запрашивая информацию у внешних источников.

Если у вас есть доменное имя, и вы желаете, чтобы обработкой его разрешения занимался ваш собственный DNS-сервер вместо DNS-сервера регистратора, потребуется настроить авторитетный DNS-сервер, также называемый сервером имен.

Владельцы доменных имен используют авторитетный DNS-сервер для хранения DNS-записей. Он отвечает на запросы DNS-резолверов (например, 8.8.8.8 или 1.1.1.1), которые запрашивают эти данные от имени пользователей, обращающихся с различных устройств, таких как компьютеры, смартфоны или планшеты.

Webmin применяет BIND в роли DNS-сервера. BIND (Berkeley Internet Name Domain) — это ПО с открытым исходным кодом для работы с DNS. Оно отличается высокой функциональностью и гибкостью, благодаря чему получило широкое распространение на платформах Unix/Linux, где ценится за стабильность и надежность.

Условия, которые необходимо выполнить заранее

Данный учебник ориентирован на владельцев доменных имен, желающих настроить собственный авторитетный DNS-сервер для управления DNS-записями своего домена. Я выбрал регистрацию доменного имени на NameCheap из-за их низких цен и предоставляемой на всю жизнь бесплатной защиты конфиденциальности whois.

Для функционирования системы вам потребуется два сервера. Один из них будет основным DNS-сервером, а второй — резервным. Наилучшим вариантом будет разместить оба сервера в различных географических локациях. Это обеспечит возможность обработки DNS-запросов для вашего домена, даже если один из серверов выйдет из строя.

Каждому серверу необходимо не менее 1 ГБ оперативной памяти. Вот некоторые хостинг-провайдеры, которые я могу порекомендовать. Я пользовался услугами всех из них.

  • Vultr: Цены начинаются от $2.5 в месяц. Необходима кредитная карта. Вы можете зарегистрироваться на Vultr, воспользовавшись моей реферальной ссылкой, чтобы получить $50 в виде бесплатного кредита.
  • DigitalOcean: цены начинаются от $5 в месяц. Кредитная карта не нужна. Доступен PayPal. Вы можете зарегистрироваться на DigitalOcean по моей реферальной ссылке и получить $100 в виде бесплатного кредита.

После приобретения двух серверов вам потребуется установить Webmin на каждый из них.

  • Установка Webmin на сервер с Ubuntu 20.04.
  • Как выполнить установку Webmin на сервере CentOS 8/RHEL 8.

Далее выполните указания, приведенные ниже.

Настройка основного DNS-сервера

Выберите один из двух серверов в качестве основного DNS-сервера. Назовем его ns1.example.com.

Основной DNS-сервер хранит основную версию файла зоны. Все изменения в DNS-записях выполняются на этом сервере. Домен может включать одну или несколько DNS-зон. Каждая зона имеет свой файл зоны, содержащий все DNS-записи в ней. Для удобства, в этой статье рассматривается использование одной DNS-зоны для управления всеми записями.
Создание основной зоны в DNS-сервере BIND с помощью Webmin.

Если в меню «Серверы» не отображается BIND DNS Server, это означает, что он еще не установлен. Откройте раздел «Неиспользуемые модули» и установите BIND оттуда.

Установка сервера DNS BIND с помощью Webmin.

После того, как вы нажмете кнопку «Создать главную зону», потребуется ввести информацию для этой зоны.

  • Оставьте тип зоны установленным как Переадресация. Переадресационная зона преобразует имена хостов в IP-адреса. Обратная зона, наоборот, преобразует IP-адреса в имена хостов.
  • В поле «Имя домена/Сеть» укажите название зоны, например, ваш домен (без конечной точки).
  • Оставьте параметр Файл записей в положении Автоматически.
  • В поле «Основной сервер» укажите полное доменное имя главного DNS-сервера для данной зоны, например, ns1.example.com.
  • В поле для ввода электронной почты укажите адрес ответственного за эту область лица.
  • Оставьте остальные настройки в их стандартных значениях.
Читайте также:  Символические и жесткие ссылки в Linux что это такое и как их использовать

Создание мастер-зоны DNS в Webmin с помощью BIND.

Нажмите на кнопку «Создать» в нижней части страницы. Вы будете перенаправлены на страницу редактирования основной зоны, где у вас будет возможность добавить DNS-записи в эту зону.

Редактирование главной зоны BIND в Webmin.

Вот несколько DNS-записей, которые можно внести в вашу зону.

  • NS (записи имен серверов) обозначают серверы, которые отвечают за хранение записей DNS и обработку запросов DNS для конкретного доменного имени. В зоне необходимо иметь минимум две записи NS.
  • A (запись адреса) : преобразует имена DNS в адреса IPv4.
  • Запись AAAA (Quad A) выполняет преобразование DNS-имен в адреса IPv6.
  • MX-запись (запись почтового обменника) определяет, какие хосты отвечают за отправку электронной почты для определённого домена, то есть указывает на имена ваших почтовых серверов.
  • CNAME запись (каноническое имя) предназначена для формирования псевдонима для DNS-имени.
  • TXT запись: SPF, DKIM, DMARC и другие.

Я продемонстрирую, как внести указанные записи DNS.

Запись NS

Кликните на поле с именами серверов для изменения записи NS. При создании новой зоны по умолчанию присутствует только одна запись NS. Необходимо добавить еще одну запись NS.

  • В строке «Имя зоны» укажите ваше доменное имя.
  • В строке для указания имени сервера введите ns2.example.com. Учтите, что необходимо добавить завершающий слэш для имен сервера.

записи серверов имен webmin

Нажмите на кнопку «Создать», чтобы сформировать эту запись. После этого нажмите «Вернуться к типам записей», чтобы добавить другие записи DNS.

Запись A

Щелкните по полю «Адрес», чтобы добавить A запись.

Необходимо внести в вашу зону как минимум две A-записи для ns1.example.com и ns2.example.com.

  • Введите название хоста вашего основного DNS-сервера в поле «Имя».
  • В строку «Адрес» впишите публичный IPv4 адрес вашего основного DNS-сервера.
  • Выберите «Нет» для обновления обратного адреса, так как переводить IP-адрес в имя хоста не требуется.

Добавьте A-запись для серверов имен в Webmin.

Нажмите на кнопку «Создать», чтобы создать запись, и выполните аналогичное действие для вашего DNS-сервера. После того как вы создадите A-записи для своих DNS-серверов, вы сможете добавить A-запись для других доменных имен, например www.example.com и example.com.

Запись AAAA

При наличии публичного IPv6-адреса у вашего сервера вы можете кликнуть на поле с IPv6-адресом для создания AAAA-записи.

  • Введите имя хоста в соответствующее поле «Имя».
  • В поле для адреса укажите общедоступный IPv6-адрес.
  • Выберите «Нет» для обновления обратного адреса, так как переводить IP-адрес в имя хоста не требуется.

MX-запись

Кликните на область Почтовый сервер для создания MX-записи.

  • В строке Имя укажите основное доменное имя, например, linuxbabe. org. Основное доменное имя представляет собой имя без каких-либо поддоменов.
  • В поле для почтового сервера укажите имя хоста вашего почтового сервиса, например, mail.linuxbabe. org.
  • В поле «Приоритет» укажите 0. Это может быть любое значение в диапазоне от 0 до 65 536. Чем меньше число, тем выше приоритет. Рекомендуется установить 0, чтобы данный почтовый сервер получал электронные письма с наивысшим приоритетом.

В Webmin добавление MX-записи

После установки MX-записи нужно также создать A-запись для mail.your-domain.com, чтобы она могла преобразовываться в IP-адрес. Если ваш сервер имеет публичный IPv6-адрес, обязательно добавьте AAAA-запись.

CNAME-запись

CNAME служит для создания алиаса для DNS-имени. Если у вас имеется несколько хостов, направляющих на один и тот же IP-адрес, вы можете установить CNAME-запись, что позволит изменить только одну A-запись при обновлении IP-адреса сервера.

Кликните на поле «Имя псевдонима», чтобы добавить CNAME-запись.

  • Введите в поле Name имя хоста, для которого необходимо создать псевдоним.
  • В поле «Настоящее имя» укажите никнейм хоста.

Создание CNAME-записи в Webmin

Запись SPF

Запись SPF (Sender Policy Framework) представляет собой разновидность TXT записи. Она определяет, какие хосты или IP-адреса могут отправлять электронные сообщения от имени вашего домена. Важно разрешить отправку писем только вашему почтовому серверу или серверу вашего интернет-провайдера.

Щелкните на область «Разрешенные отправители», чтобы сформировать запись SPF.

  • Введите название вашего основного домена в поле «Имя».
  • Выберите «Да», чтобы разрешить отправку с MX-хостов данного домена.
  • Вы можете указать IP-адрес вашего почтового сервера в разделе Дополнительные разрешенные IP-адреса или сети отправителей.
  • Выберите вариант «Ограничить».~все) для действий других отправителей.

Для создания записи SPF в BIND через Webmin, необходимо выполнить следующие шаги:

Запись DKIM (DomainKeys Identified Mail)

Запись DKIM (DomainKeys Identified Mail) является разновидностью TXT-записи. Она позволяет вашему почтовому серверу применять закрытый ключ для создания подписи к электронным письмам, отправляемым с вашего домена. SMTP-серверы получателей проверяют подпись с помощью открытого ключа, который размещен в вашей записи DKIM.

Читайте также:  Как переместить панель Unity в нижнюю часть экрана на Ubuntu 16.04

Кликните по тексту для генерации записи DKIM.

  • Введите подсеть вашего DKIM-ключа в поле «Имя», например, dkim._domainkey. example.com.
  • В разделе Сообщение введите ваш открытый ключ DKIM, предварительно удалив все двойные кавычки и переносы строк.

Чтобы создать запись DKIM в Webmin, выполните следующие действия.

Запись DMARC

DMARC расшифровывается как аутентификация сообщений с учетом домена, отчетность и соблюдение стандартов. Эта технология помогает почтовым серверам, которые принимают сообщения, различать настоящие электронные письма и защищает ваше доменное имя от его использования в фишинговых атаках.

Для того чтобы добавить запись DMARC, кликните на область DMARC. Вам необходимо изменить лишь два параметра в этой записи.

  • Установите уровень на 100%.
  • Пожалуйста, укажите действующий адрес электронной почты для получения сводных отзывов.

Создание DMARC-записи с помощью Webmin

Указанная выше запись DMARC является надежной базой для начала. Для получения подробной информации о DMARC, пожалуйста, прочитайте следующую статью.

  • Настройка записи DMARC для обеспечения безопасности вашего домена от фальсификации электронной почты.

После добавления нужных записей DNS нажмите на кнопку «Проверить записи», чтобы удостовериться в корректности синтаксиса вашей DNS-зоны. В случае наличия ошибок в файле зоны их следует устранить, иначе загрузка зоны не произойдет. Кроме того, для сохранения изменений нажмите на кнопку «Применить зону» или «Применить конфигурацию» в верхнем правом углу.

Разрешить передачу зоны с дочернего DNS-сервера.

Перейдите в раздел Изменение главной зоны и активируйте опцию Уведомить слейвов об изменениях. Введите IP-адрес слейв-сервера DNS в поле для передачи, а также укажите 0.0.0.0/0 в поле для разрешения запросов, чтобы разрешить интернету отправлять DNS-запросы.

webmin-zone-transfer-bind

Сохраните внесенные изменения и перезапустите BIND9 на основном DNS-сервере.

sudo systemctl restart bind9

sudo systemctl restart named

Необходимо разрешить TCP и UDP порт 53 в файрволе. Если у вас установлен упрощённый файрвол (UFW), введите следующие две команды.

sudo ufw allow 53/tcp sudo ufw allow 53/udp

Если у вас установлен Firewalld, выполните следующие две команды.

sudo firewall-cmd --permanent --add-port= sudo systemctl reload firewalld

Настройка вторичного DNS-сервера

Теперь в качестве ведомого DNS-сервера мы будем использовать другой сервер, который будет именоваться ns2.example.com.

Войдите в панель управления Webmin ведомого DNS-сервера. Перейдите в Servers ->Настройте сервер BIND DNS и выберите опцию для создания подчиненной зоны.

Чтобы создать вторичную зону в Webmin

Если вы не видите BIND DNS Server в разделе Сервера, это означает, что BIND еще не установлен. Зайдите в меню Ненужные Модули и выполните установку BIND.

Установка сервера DNS BIND с помощью Webmin.

После нажатия кнопки для создания подчиненной зоны нужно указать ее параметры.

  • Оставьте тип зоны установленным как Переадресация. Переадресационная зона преобразует имена хостов в IP-адреса. Обратная зона, наоборот, преобразует IP-адреса в имена хостов.
  • В поле для имени домена или сети укажите название данной зоны, например, ваше доменное имя (без конечной точки).
  • Убедитесь, что параметр «Файл записей» установлен на «Автоматически».
  • В разделе «Основной сервер» укажите IP-адрес главного DNS-сервера для данной зоны.
  • Оставьте остальные настройки в их стандартных значениях.

Создание вторичной зоны на авторитетном DNS сервере в Webmin.

Нажмите на кнопку «Создать», чтобы инициировать создание зоны-раба. Затем перейдите на страницу «Редактировать зону-раба» и выберите опцию «Изменить параметры зоны». Активируйте уведомления о изменениях для рабов и укажите IP-адрес DNS-сервера раба в поле «Разрешить передачу с». Также введите 0.0.0.0/0 в поле «Разрешить запросы с», чтобы обеспечить возможность отправки DNS-запросов из Интернета.

Настройка параметров зоны на DNS сервере BIND в режиме slave

Сохраните изменения и перезапустите BIND9 на запасном DNS-сервере.

sudo systemctl restart named

sudo systemctl restart bind9

Также необходимо открыть порты 53 для протоколов TCP и UDP в брандмауэре. Если вы используете UFW, выполните следующие команды.

sudo ufw allow 53/tcp sudo ufw allow 53/udp

Если вы работаете с Firewalld, выполните следующие два шага.

sudo firewall-cmd --permanent --add-port= sudo systemctl reload firewalld

Зонный файл на резервном DNS-сервере загружается через зоновую передачу, которая синхронизирует изменения DNS-записей с основного сервера на резервный. После перезапуска BIND9 передача зоны начнется автоматически. Также можно инициировать передачу вручную, нажав на кнопку «Применить зону» или «Применить конфигурацию» в правом верхнем углу на основном DNS-сервере.

Проверка зоны передач

Используйте следующую команду для проверки журнала BIND9.

sudo journalctl - eu named

sudo journalctl - eu bind9

Сообщения, подобные представленному ниже, могут свидетельствовать об успешной передаче зоны.

named[31518]: transfer of 'example.com/IN' from 12.34.56.78#53: Transfer completed: 1 messages, 16 records, 886 bytes, 0.004 secs (221500 bytes/sec)

Если в журнале появляется следующая ошибка, вероятнее всего, это связано с тем, что вы не перезапустили BIND9.

Читайте также:  Вход по ключам в SSH

bad zone transfer request: 'example.com/IN': non-authoritative zone (NOTAUTH)

Дополнительные сведения о передаче области.

Запасной DNS-сервер вновь установит связь с основным сервером, когда наступит время обновления, указанное в записи SOA. Если серийный номер на основном сервере окажется выше, чем на резервном, начнётся процесс передачи зоны. Различают два вида передачи зоны:

  • Полная передача зоны (AXFR): осуществляется полная репликация файла зоны.
  • Инкрементальная передача зоны (IXFR) заключается в передаче лишь тех DNS-записей, которые были изменены.

Оба способа передачи зон функционируют через TCP порт 53. По умолчанию резервный DNS-сервер BIND инициирует инкрементальную передачу зоны, в то время как основной DNS-сервер BIND допускает инкрементальную передачу зоны только для динамических зон.

Интервал передачи зоны играет ключевую роль в скорости обновления записей DNS. Вместо того чтобы дожидаться, пока резервный DNS-сервер установит связь, основной сервер BIND информирует резервный о внесенных изменениях в зону. Это позволяет значительно ускорить распространение обновлений зоны в сети Интернет.

Зона обратной связи

Обратная зона включает запись PTR, которая связывает IP-адрес с DNS-именем, аналогично записи A в DNS. Часто запись PTR требуется почтовым серверам для успешного прохождения антиспам-фильтров. Эта запись не является частью домена. Для создания записи PTR необходимо воспользоваться панелью управления вашего хостинг-провайдера или обратиться к вашему интернет-провайдеру, поэтому я не буду описывать процесс создания обратных зон в BIND.

Изменение записи NS и создание записи Glue.

Теперь вам следует зайти на сайт вашего регистратора домена, чтобы обновить NS-запись для вашего домена. Это необходимо для того, чтобы интернет знал, что вы используете свой собственный DNS-сервер. Обычно в NS-записи используются имена хостов, такие как ns1.example.com и ns2.example.com.

name server 1: ns1.example.com name server 2: ns2.example.com

Если у вас имеется доменное имя example.com и вы применяете поддомен для надежных DNS-серверов (ns1.example.com и ns2.example.com), вам необходимо создать запись Glue у вашего регистратора домена. Это нужно для того, чтобы Интернет мог определить IP-адрес вашего DNS-сервера. Запись Glue представляет собой A-запись для ns1.example.com и ns2.example.com.

ns1.example.com IP-адрес-основного-сервера ns2.example.com IP-адрес-резервного-сервера

Указанная информация будет передана оператору реестра, который управляет DNS-серверами TLD через Расширяемый Протокол Предоставления (EPP). Это необходимо для того, чтобы DNS-серверы TLD получили информацию о хостах и IP-адресах авторитетных DNS-серверов, связанных с вашим доменным именем. В зависимости от вашего регистратора доменов, обновление записи NS может произойти мгновенно или занять до 24 часов. Вы можете посетить сайт https://dnsmap.io, чтобы проверить, активна ли ваша новая запись NS.

Я продемонстрирую вам, как выполнить это на платформе NameCheap.

Чтобы управлять доменным именем, купленным на NameCheap, войдите в свой аккаунт на платформе. Затем откройте меню со списком доменов в левой боковой части экрана и кликните на кнопку «Управлять» справа.

Namecheap персональные серверы имен

Выберите опцию «Расширенный DNS».

Расширенные настройки DNS на Namecheap

Прокрутите страницу вниз, и вы увидите раздел, посвященный персональному DNS-серверу. Чтобы добавить свои собственные серверы имен, нажмите кнопку «Добавить NameServer», введя при этом ns1.example.com и ns2.example.com. Не забудьте указать IP-адреса для ваших серверов имен.

записи glue для namecheap

После внесения имен ваших двух серверов нажмите кнопку поиска, чтобы убедиться, что они были успешно добавлены. Если всё прошло хорошо, записи глухих появятся в нижней части этой страницы.

Теперь перейдите на вкладку «Домен» и настройте использование собственного DNS-сервера.

Пользовательская DNS-запись Namecheap

В зависимости от выбранного вами регистратора доменов, время распространения вашей записи NS может варьироваться от мгновенного до 24 часов. Чтобы удостовериться, что ваша новая запись NS активна, вы можете посетить сайт https://dnsmap.io.

После распространения записи NS и glue-записей в сети, ваши DNS-серверы начнут обрабатывать DNS-запросы для вашего доменного имени. Проверить журнал запросов можно с помощью:

sudo journalctl - eu bind9

Вы можете воспользоваться утилитой dig для проверки записи NS вашего домена.

dig NS example.com

Если записи NS и glue стали доступными в сети, вы должны обнаружить свои серверы имен в разделе ответов. В случае появления ошибки SERVFAIL, скорее всего, это вызвано тем, что UDP-порт 53 на ваших серверах имен не открыт.

Ошибка сервиса BIND: запись NS не удалось обработать.

Основные моменты для учета

  • Термин «мастер DNS-сервер» обозначает сервер, который хранит основную версию файла зоны. При этом он не играет приоритетной роли в процессе разрешения DNS.
  • Регулярно обновляйте серийный номер SOA при внесении изменений в файл зоны.

Применение символа подстановки в файле зоны BIND

Если вы хотите, чтобы все поддомены указывали на один и тот же IP-адрес, можно использовать символ подстановки. К примеру, следующая запись позволит всем вашим поддоменам направляться на IP-адрес 1.2.3.4.

*.your-domain.com IN A 1.2.3.4

Заключение

На этом всё! Надеюсь, данный руководствующий материал оказался полезным для настройки авторитетного DNS-сервера через Webmin. Если вы считаете этот пост ценным, не забудьте подписаться на нашу бесплатную рассылку, чтобы получать дополнительные советы и рекомендации.