Настройка DNS сервера bind — различия между версиями

Материал из Rosalab Wiki
Перейти к: навигация, поиск
(Настройка кеширующего DNS сервера bind)
Строка 141: Строка 141:
 
где:
 
где:
  
acl my_allowed - это ACL список доступа к нашему DNS серверу. Делается это для того, чтобы не разрешить злоумышленникам проводить расширенные DNS атаки на наш кеширующий сервер. Такие атаки очень распространенные. Для этого они пытаются найти общедоступные DNS-серверы, которые будут разрешать рекурсивные запросы. Они подделывают IP адрес жертвы и отправляют запрос, который вернет ответ с большой временной задержкой на DNS сервер. При этом DNS сервер отвечает на быстро на запрос, с большой полезной нагрузкой, направленной на сервер жертв, эффективно увеличивая доступную пропускную способность для злоумышленника.
+
acl my_allowed - это [https://ru.wikipedia.org/wiki/ACL ACL] список доступа к нашему DNS серверу. Делается это для того, чтобы не разрешить злоумышленникам проводить расширенные DNS атаки на наш кеширующий сервер. Такие атаки очень распространенные. Для этого они пытаются найти общедоступные DNS-серверы, которые будут разрешать рекурсивные запросы. Они подделывают IP адрес жертвы и отправляют запрос, который вернет ответ с большой временной задержкой на DNS сервер. При этом DNS сервер отвечает на быстро на запрос, с большой полезной нагрузкой, направленной на сервер жертв, эффективно увеличивая доступную пропускную способность для злоумышленника.
  
 
*        allow-recursion { my_allowed; }; - Определяет хосты, с которых разрешаются рекурсивные запросы
 
*        allow-recursion { my_allowed; }; - Определяет хосты, с которых разрешаются рекурсивные запросы

Версия 14:03, 28 октября 2021

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

Установка bind

Сначала нам надо обновить систему:

dnf --refresh distro-sync

Далее устанавливаем сам Bind. Пакет называется bind, а вот сервис его будет называться named.

Настраиваем sytemd-resolved

В сервере ROSA 12 используется systemd-resolved в качестве резолвера dns. Если мы хотим, настроить свой DNS сервер, то для этого, надо настроить systemd-resolved:

Посмотрим, кто у нас прослушивает 53 порт:

lsof -i :53

Resolv1.png

Открываем файл /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

Resolv2.png

Если 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 - режим перенаправления
    1. forward only; - если ставим only указывая, тем самым, что все запросы на наш DNS сервер будут перенаправляться на другие DNS сервера, прописанные в следующей опции forwarders {}
    2. 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, настройка зон и т.д. Это все индивидуально.