Настройка DNS сервера bind
Содержание
Настраиваем DNS сервер bind
Установка bind
Сначала нам надо обновить систему:
dnf --refresh distro-sync
Далее устанавливаем сам Bind. Пакет называется bind, а вот сервис его будет называться named.
Настраиваем sytemd-resolved
В сервере ROSA 12 используется systemd-resolved в качестве резолвера dns. Если мы хотим, настроить свой DNS сервер, то для этого, надо настроить systemd-resolved:
Посмотрим, кто у нас прослушивает 53 порт:
lsof -i :53
Открываем файл /etc/systmd/resolved.conf
Правим следующие строки:
DNS=127.0.0.1 FallbackDNS= DNSSEC=no LLMNR=resolve DNSStubListener=no
где:
- DNS=127.0.0.1 - это локальный ip адрес, на котором будет работать наш DNS сервер будущий
- FallbackDNS= - оставляем пустым, чтобы systemd-resolved не переключался на fallback dns сервера
- DNSSEC=no - отключаем DNSSEC
- LLMNR=resolve - LLMNR переводим в режим resolve
- DNSStubListener=no - чтобы наш systemd-resolved не прослушивал порт 53
Остальные опции в этом файле, оставим как есть. Перезапускаем systemd-resolved:
systemctl restart systemd-resolved
Еще раз смотрим:
lsof -i :53
Если вывод пустой, значит всё нормально, можно приступать к настройке и запуску bind.
Базовая настройка bind
Пакет называется bind, но сервис называется named. И все конфигурационные файлы/сервисы будут называться на named
Основной конфигурационный файл: named.conf
Открываем этот конфигурационный файл named.conf и для минимальной работы DNS сервера, правим следующие строки:
options { listen-on port 53 { any; }; listen-on-v6 port 53 { any; }; . . . . . allow-query { any; };
где:
- listen-on port 53 { any; }; - ставим any для прослушивания на всех ip хоста
- listen-on-v6 port 53 { any; }; - ставим any для прослушивания на всех ip хоста
- allow-query { any; }; - разрешаем запросу отовсюду к нашему серверу
После правки конфигурационного файла, можем запустит наш bind:
systemctl start named.service
Смотрим кто у нас прослушивает 53 порт:
lsof -i :53
Если named, то все настроили правильно. Но мы проверили только то, что и кто слушает 53 порт.
Проверим как работает наш DNS сервер.
dig @127.0.0.1 yandex.ru
Или
nslookup yandex.ru
Должны быть выведены IP адреса yandex.ru.
Включаем наш DNS сервис в автозагрузку.
systemctl enable named.service
Настройка Forward DNS сервера bind
Чтобы настроить bind для перенапрваления (forward) запросов к другим DNS серверам, сделаем следующее:
Открываем этот конфигурационный файл named.conf и для минимальной работы DNS сервера, правим следующие строки:
options { . . . . . recursion yes; . . . . . forward only; forwarders { 77.88.8.8; 77.88.8.1; };
где:
- forward - режим перенаправления
- forward only; - если ставим only указывая, тем самым, что все запросы на наш DNS сервер будут перенаправляться на другие DNS сервера, прописанные в следующей опции forwarders {}
- forward first; - если ставим first указывая, тем самым, что все запросы на наш DNS сервер будут перенаправляться на другие DNS сервера, прописанные в следующей опции forwarders {}, и если с помошью них не удастся разрешить запрос, то запрос будет пытать разрешаться нашим DNS сервером локально
- forwarders { 77.88.8.8; 77.88.8.1; }; - список DNS серверов, для перенаправления запросов
Настройка кеширующего DNS сервера bind
Чтобы настроить bind как кеширующий сервер DNS, сделаем следующее:
Открываем этот конфигурационный файл named.conf и для минимальной работы DNS сервера, правим следующие строки:
acl my_allowed { 192.168.100.0/24; 217.71.222.0/24; localhost; }; options { listen-on port 53 { any; }; listen-on-v6 port 53 { any; }; directory "/var/named"; . . . . . allow-recursion { my_allowed; }; allow-query { my_allowed; }; allow-transfer { none; }; recursion yes; . . . . .
где:
acl my_allowed - это ACL список доступа к нашему DNS серверу. Делается это для того, чтобы не разрешить злоумышленникам проводить расширенные DNS атаки на наш кеширующий сервер. Такие атаки очень распространенные. Для этого они пытаются найти общедоступные DNS-серверы, которые будут разрешать рекурсивные запросы. Они подделывают IP адрес жертвы и отправляют запрос, который вернет ответ с большой временной задержкой на DNS сервер. При этом DNS сервер отвечает на быстро на запрос, с большой полезной нагрузкой, направленной на сервер жертв, эффективно увеличивая доступную пропускную способность для злоумышленника.
- allow-recursion { my_allowed; }; - Определяет хосты, с которых разрешаются рекурсивные запросы
- allow-query { my_allowed; }; - Указывает, каким хостам разрешено делать запросы у сервера DNS
- allow-transfer { none; }; - Указывает, каким вторичным серверам разрешено делать запросы в нашей зоне.
Здесь описана базовая настройка и конфигурация DNS сервера. Настройки безопасности, настройки прослушивания других IP, настройка зон и т.д. Это все индивидуально.