Установка и настройка Bind на Debian

Автор: | 09.08.2021

Установка и настройка Bind на Debian

Bind —  открытая и наиболее распространённая реализация DNS-сервера, обеспечивающая выполнение преобразования DNS-имени в IP-адрес и наоборот. Исполняемый файл-демон сервера BIND называется named. BIND поддерживается организацией Internet Systems Consortium. 10 из 13 корневых серверов DNS работают на BIND, оставшиеся 3 работают на NSD (Wikipedia). Для чего может понадобится свой DNS сервер, ну причин может быть множество, от банального (изучить принцип работы dns) или для делегирования приобретенных доменов. В данном примере мы будем настраивать два сервера для делегирования домена angald.ru.

1.) Установка и подготовка Bind

Устанавливаем наш сервер dns и набор утилит для самопроверки

Теперь создадим директории для нашей зоны и файлов ключей

Настраиваем bind

И  приводим файл к такому виду

  • allow-query { any; }; — отвечать всем на запросы dns
  • version «DNS angald.ru»; — название сервера
  • allow-recursion { none; }; — отключаем использование рекурсивных запросов
  • dnssec-enable yes; — включение dnssec на уровне сервера
  • dnssec-validation yes; — проверка корректность ответов
  • dnssec-lookaside auto; — разрешение использовать сторонние корни DNSSEC

2.) Настройка зоны и DNSSEC

Открываем файл для добавление зоны

  • zone «angald.ru» IN — название зоны которую будем обслуживать
  • type master — тип записи на сервере, в данном случае мастер
  • file «/var/lib/bind/zones/angald.ru» — путь до файла с настройками зоны
  • allow-transfer {212.220.110.32;} — разрешаем передачу зоны на ниши dns сервера
  • allow-update {212.220.110.32;} — разрешаем обновление
  • notify yes; — автоматическое обновление подчинённых dns серверов

Создаем файл для настройки зоны

Где:

  • $TTL 3600 — время жизни
  • angald.ru. IN SOA ns0.angald.ru. root.angald.ru. — зона, которая обслуживается данным сервером
  • 1 ;  — серийный номер DNS записи
  • 600 ;  — указывает подчиненным DNS серверам как часто им обращаться, для поиска изменений к master серверу
  • 3600 ; — говорит о том, сколько Slave сервер должен подождать, прежде чем повторить попытку
  • 1w ; — максимальный срок жизни записей, после которой они потеряют актуальность (1 неделя)
  • 300 ; — Минимальный срок жизни записи 5 мин
  • IN NS ns0.angald.ru. ; — NS сервера который обслуживает эту зону
  • IN A 178.47.37.117; — А запись angald.ru
  • IN A 178.47.37.117 ; — записи для поиска наших NS серверов

Меняем права на файл

Сохраняем файл и перезапускаем bind

Если что-то пошло не так и сервер не запускается, то можно проверить конфиги следующей командой

Переходим к настройке DNSSEC

Переходим в каталог где будут находится наши ключи

Генерируем мастер ключ

  • -f KSK — флаг, который говорит, что формируется мастер ключ.
  • -a RSASHA1 — используемый алгоритм шифрования.
  • -b 2048 — размер ключа в битах.
  • -n ZONE — для DNS-зоны.
  • -r /dev/urandom — путь к файлу со случайными данными. В различных версиях системы путь может отличаться. Если упустить этот ключ в CentOS, процесс генерации сертификата может зависнуть.
  • angald.ru — домен, для которого предназначен ключ.

Затем генерируем ключ зоны

Меняем владельца для файлов ключей

Теперь нужно внести правку для автоматического подписания нашего файла зоны

Что добавилось:

  • key-directory «/etc/bind/keys»; — директория с нашими ключами
  • auto-dnssec maintain; — активация и включение dnssec ключей
  • inline-signing yes; — включает режим прозрачного формирования подписей, не требуя внесения изменений непосредственно в файл зоны

Перезагружаем конфигурацию bind

После этого можно проверить нашу зону на цифровую подпись

Хэши конечно будут разные

Еще проверка

Записи RRSIG означают, что записи имеют цифровую подпись. Все работает. Осталось получить DS записи для реестра доменов и прописать их в панели регистратора. Сделать это тоже не сложно:

Из пояснений тут надо указать, что тэг — это число 50707. Дальше цифры: 8 — это алгоритм, 1 или 2 — это тип подписи (1 — SHA1, 2 — SHA-256).

После того, как мы добавили DS записи в реестр, спустя какое-то время можно проверять все ли в порядке. Это можно сделать на сайте https://dnssec-analyzer.verisignlabs.com.

Мастер сервер мы настроили но это пол беды т.к. регистратор требует минимум два dns сервера да какая никакая отказоустойчивость нужна. Ставим на второй сервер также bind и утилиты

Создаем директорию для фалов зон

Назначаем права

Настраиваем bind

И  приводим файл к такому виду

Далее добавляем нашу зону

Где:

  • zone «angald.ru» IN — название зоны которую будем обслуживать
  • type slave — тип записи на сервере, в данном случае подчинённая
  • file «/var/lib/bind/zones/angald.ru» — путь до файла с настройками зоны
  • master {212.220.110.32;} — IP адрес Мастер сервера

После этого перезапускаем сервер dns

Теперь проверим наш сервер что зона передалась корректно, проводим тесты что мы делали выше

В ответ вы должны получить тоже самое. На этом все, настройка dns закончена.

Использовались материалы:

https://lyalyuev.info

https://www.dmosk.ru

https://howitmake.ru