Настройка DNS сервера bind — различия между версиями
PastorDi (обсуждение | вклад) |
PastorDi (обсуждение | вклад) |
||
(не показано 10 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
== Настраиваем DNS сервер bind == | == Настраиваем DNS сервер bind == | ||
+ | |||
+ | Переходим в консоль root: | ||
+ | sudo -i | ||
=== Установка bind === | === Установка bind === | ||
Строка 5: | Строка 8: | ||
Сначала нам надо обновить систему: | Сначала нам надо обновить систему: | ||
− | dnf --refresh | + | dnf --refresh upgrade |
+ | |||
+ | Далее устанавливаем сам Bind: | ||
+ | dnf install bind | ||
− | + | Пакет называется '''bind''', а вот служба systemd называется '''named'''. | |
=== Настраиваем sytemd-resolved === | === Настраиваем sytemd-resolved === | ||
− | В сервере ROSA 12 используется '''systemd-resolved''' в качестве резолвера dns. Если мы хотим | + | В сервере ROSA 12 используется '''systemd-resolved''' в качестве резолвера dns. Если мы хотим настроить свой DNS сервер, то для этого, надо настроить '''systemd-resolved''': |
Посмотрим, кто у нас прослушивает 53 порт: | Посмотрим, кто у нас прослушивает 53 порт: | ||
Строка 18: | Строка 24: | ||
[[Файл:Resolv1.png]] | [[Файл:Resolv1.png]] | ||
− | Открываем файл '''/etc/ | + | Открываем файл '''/etc/systemd/resolved.conf''' |
Правим следующие строки: | Правим следующие строки: | ||
Строка 45: | Строка 51: | ||
Если вывод пустой, значит всё нормально, можно приступать к настройке и запуску bind. | Если вывод пустой, значит всё нормально, можно приступать к настройке и запуску bind. | ||
− | === | + | === Базовая настройка bind === |
Пакет называется bind, но сервис называется named. И все конфигурационные файлы/сервисы будут называться на named | Пакет называется bind, но сервис называется named. И все конфигурационные файлы/сервисы будут называться на named | ||
Строка 57: | Строка 63: | ||
listen-on port 53 { any; }; | listen-on port 53 { any; }; | ||
listen-on-v6 port 53 { any; }; | listen-on-v6 port 53 { any; }; | ||
− | + | . . . . . | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
allow-query { any; }; | allow-query { any; }; | ||
Строка 94: | Строка 95: | ||
systemctl enable named.service | systemctl enable named.service | ||
− | Здесь описана | + | === Настройка Forward DNS сервера bind === |
+ | |||
+ | Чтобы настроить bind для перенаправления (forward) запросов к другим DNS серверам, сделаем следующее: | ||
+ | |||
+ | Открываем этот конфигурационный файл named.conf и для минимальной работы DNS сервера, правим/добавляем следующие строки: | ||
+ | |||
+ | <pre> | ||
+ | options { | ||
+ | . . . . . | ||
+ | recursion yes; | ||
+ | . . . . . | ||
+ | forward only; | ||
+ | forwarders { | ||
+ | 77.88.8.8; | ||
+ | 77.88.8.1; | ||
+ | }; | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | где: | ||
+ | * 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 сервера, правим следующие строки: | ||
+ | |||
+ | <pre> | ||
+ | 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; | ||
+ | . . . . . | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | где: | ||
+ | |||
+ | acl my_allowed - это [https://ru.wikipedia.org/wiki/ACL ACL] список доступа к нашему DNS серверу. '''my_allowed''' - название списка доступа. Делается это для того, чтобы не разрешить злоумышленникам проводить расширенные DNS атаки на наш кеширующий сервер. Такие атаки очень распространенные. Для этого они пытаются найти общедоступные DNS серверы, которые будут разрешать рекурсивные запросы. Они подделывают IP адрес жертвы и отправляют запрос, который вернет ответ с большой временной задержкой на DNS сервер. При этом DNS сервер отвечает на быстро на запрос, с большой полезной нагрузкой, направленной на сервер жертв, эффективно увеличивая доступную пропускную способность для злоумышленника. | ||
+ | |||
+ | * allow-recursion { my_allowed; }; - Определяет хосты, с которых разрешаются рекурсивные запросы | ||
+ | * allow-query { my_allowed; }; - Указывает, каким хостам разрешено делать запросы у сервера DNS | ||
+ | * allow-transfer { none; }; - Указывает, каким вторичным серверам разрешено делать запросы в нашей зоне. | ||
+ | |||
+ | После правки конфигурационного файла, запускаем наш DNS сервер: | ||
+ | systemctl start named.service | ||
+ | |||
+ | |||
+ | |||
+ | Здесь описана базовая настройка и конфигурация DNS сервера. Настройки безопасности, настройки прослушивания других IP, настройка зон и т.д. индивидуальны. | ||
+ | |||
+ | [[Категория:ROSA Server]] |
Текущая версия на 14:05, 10 марта 2023
Содержание
Настраиваем DNS сервер bind
Переходим в консоль root:
sudo -i
Установка bind
Сначала нам надо обновить систему:
dnf --refresh upgrade
Далее устанавливаем сам Bind:
dnf install bind
Пакет называется bind, а вот служба systemd называется named.
Настраиваем sytemd-resolved
В сервере ROSA 12 используется systemd-resolved в качестве резолвера dns. Если мы хотим настроить свой DNS сервер, то для этого, надо настроить systemd-resolved:
Посмотрим, кто у нас прослушивает 53 порт:
lsof -i :53
Открываем файл /etc/systemd/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 серверу. my_allowed - название списка доступа. Делается это для того, чтобы не разрешить злоумышленникам проводить расширенные DNS атаки на наш кеширующий сервер. Такие атаки очень распространенные. Для этого они пытаются найти общедоступные DNS серверы, которые будут разрешать рекурсивные запросы. Они подделывают IP адрес жертвы и отправляют запрос, который вернет ответ с большой временной задержкой на DNS сервер. При этом DNS сервер отвечает на быстро на запрос, с большой полезной нагрузкой, направленной на сервер жертв, эффективно увеличивая доступную пропускную способность для злоумышленника.
- allow-recursion { my_allowed; }; - Определяет хосты, с которых разрешаются рекурсивные запросы
- allow-query { my_allowed; }; - Указывает, каким хостам разрешено делать запросы у сервера DNS
- allow-transfer { none; }; - Указывает, каким вторичным серверам разрешено делать запросы в нашей зоне.
После правки конфигурационного файла, запускаем наш DNS сервер:
systemctl start named.service
Здесь описана базовая настройка и конфигурация DNS сервера. Настройки безопасности, настройки прослушивания других IP, настройка зон и т.д. индивидуальны.