Настройка собственного сервера имён

Настроить собственный сервер имен можно из панели ISPmanager. Далее мы расскажем о том, как это сделать. Также из статьи вы узнаете, с какими проблемами можно столкнуться при настройке и как повысить безопасность собственного сервера имен. 

С чего начать

Прежде всего, для настройки собственных серверов имён необходимо иметь два IP-адреса (два IP-адреса для сервера имён — это требование RFC к отказоустойчивости системы доменных имён). Один IP-адрес выдается виртуальному серверу при покупке услуги, а второй можно заказать в личном кабинете, раздел Виртуальные серверы, кнопка IP-адреса.

Для примера настройки собственных NS использовалось доменное имя example.com и два IP-адреса 192.168.0.1 и 192.168.0.2. В действительности необходимо будет указать реальные IP-адреса и домен.

Настройка в панели управления ISPmanager 

Откройте ISPmanager и перейдите в меню ДоменыДоменные имена. Создайте домен. А затем пропишите для него две А-записи ns1.example.com и ns2.example.com, указав ваши IP-адреса в качестве значений. Для этого в верхнем меню нажмите кнопку Записи, а затем Создать.

Также необходимо изменить NS-записи для домена, указав ns1.example.com и ns2.example.com — раздел Доменные имена, кнопка Записи, а затем Изменить.

Помните, что Вашем случае вместо example.com следует указать ваш домен. В качестве примера можете опираться на картинку ниже.

Далее войдите в панели управления ISPmanager — ДоменыДоменные именаНастройки, в графе Серверы имен пропишите: ns1.example.com и ns2.example.com. Данные серверы имён будут использоваться в качестве серверов имён для всех новых доменов.

Для того чтобы проверить, может ли ваш сервер разрешать домены, используйте утилиту dig, как это показано ниже (помните, что вместо 192.168.0.1 и 192.168.0.2 должны быть реальные IP-адреса.):

dig +short example.com @192.168.0.1
dig +short example.com @192.168.0.2

Если всё в порядке и серверы имён отдают записи, то остается только обновить сведения у регистратора доменного имени. Для этого в панели управления регистратора доменного имени (там, где был приобретен домен), укажите ваши NS-серверы вместе с их IP-адресами. Обычно под IP-адреса для доменных имён у регистраторов есть отдельное поле. Или может существовать отдельный пункт, называемый, например, Child Name Servers или Дочерние Серверы имен. Для всех остальных доменов нужно будет прописать только ns1.example.com и ns2.example.com.

Типичные проблемы

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

Если от утилиты пришел такой ответ:

;; connection timed out; no servers could be reached

Возможно, что или закрыт порт UDP/53 или же на запущена служба bind (или named). Если у вас не получается решить проблему, то, пожалуйста, создайте запрос в службу технической поддержки.

Совет по безопасности

Одной из функций серверов имён является возможность полной репликации зоны доменного имени. Так с помощью утилиты dig вы можете сделать AXFR-запрос к серверу имён и получить полностью от него все записи вашего домена:

dig -t axfr +short example.com @192.168.0.1

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

allow-transfer { none; };

С помощью этого параметра вы сообщаете серверу имён, что никому нельзя передавать полностью всю зону (только частично). AXFR-запрос и полный трансфер зоны теперь никому недоступен. После правки необходимо перезагрузить службу:

systemctl restart named

Или:

systemctl restart bind9

Конфигурационный файл сервера имён в CentOS находится в файле /etc/named.conf, а для Debian/etc/bind/named.conf.options. Если затрудняетесь его найти, то можете выполнить grep и найти allow-transfer в /etc:

grep -ril allow-transfer /etc