Настройка DNS сервера bind — различия между версиями
PastorDi (обсуждение | вклад) (→Настройка Forward DNS сервера bind) |
PastorDi (обсуждение | вклад) |
||
Строка 124: | Строка 124: | ||
192.168.100.0/24; | 192.168.100.0/24; | ||
217.71.222.0/24; | 217.71.222.0/24; | ||
+ | localhost; | ||
}; | }; | ||
options { | options { | ||
Строка 130: | Строка 131: | ||
directory "/var/named"; | directory "/var/named"; | ||
. . . . . | . . . . . | ||
− | allow-recursion { | + | allow-recursion { my_allowed; }; |
− | allow-query { | + | allow-query { my_allowed; }; |
allow-transfer { none; }; | allow-transfer { none; }; | ||
recursion yes; | recursion yes; | ||
Строка 137: | Строка 138: | ||
</pre> | </pre> | ||
+ | |||
+ | где: | ||
+ | |||
+ | acl my_allowed - это ACL список доступа к нашему DNS серверу. Делается это для того, чтобы не разрешить злоумышленникам проводить расширенные DNS атаки на наш кеширующий сервер. Такие атаки очень распространенные. Для этого они пытаются найти общедоступные DNS-серверы, которые будут разрешать рекурсивные запросы. Они подделывают IP адрес жертвы и отправляют запрос, который вернет ответ с большой временной задержкой на DNS сервер. При этом DNS сервер отвечает на быстро на запрос, с большой полезной нагрузкой, направленной на сервер жертв, эффективно увеличивая доступную пропускную способность для злоумышленника. | ||
+ | |||
+ | * allow-recursion { my_allowed; }; - Определяет хосты, с которых разрешаются рекурсивные запросы | ||
+ | * allow-query { my_allowed; }; - Указывает, каким хостам разрешено делать запросы у сервера DNS | ||
+ | * allow-transfer { none; }; - Указывает, каким вторичным серверам разрешено делать запросы в нашей зоне. | ||
+ | |||
Здесь описана базовая настройка и конфигурация DNS сервера. Настройки безопасности, настройки прослушивания других IP, настройка зон и т.д. Это все индивидуально. | Здесь описана базовая настройка и конфигурация DNS сервера. Настройки безопасности, настройки прослушивания других IP, настройка зон и т.д. Это все индивидуально. | ||
[[Категория:ROSA Server|ROSA Server]] | [[Категория:ROSA Server|ROSA Server]] |
Версия 13:53, 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
Открываем файл /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, настройка зон и т.д. Это все индивидуально.