Настроить собственный сервер имен можно из панели 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