Используемые термины: DNS , BIND , Linux , CentOS , Rocky Linux .
Мы рассмотрим небольшой обзор по установке DNS-сервера bind на системы типа RPM (Rocky Linux, CentOS, Oracle Linux и так далее).
Подготовка сервера
Установка и запуск
Базовая настройка
Описание глобальных опций
Зоны bind
Решение проблем с помощью log-файлов
Устанавливаем все обновления:
yum update
Устанавливаем утилиту для синхронизации времени:
yum install chrony
Настраиваем временную зону:
timedatectl set-timezone Europe/Moscow
* в данном примере выбрано московское время.
Разрешаем и запускаем сервис для синхронизации времени:
systemctl enable chronyd —now
Открываем порт в firewall:
firewall-cmd —permanent —add-port=53/udp
И перечитываем настройки сетевого экрана:
firewall-cmd —reload
Устанавливаем DNS-сервер следующей командой:
yum install bind
Разрешаем автозапуск:
systemctl enable named
Запускаем сервис имен:
systemctl start named
И проверяем, что он работает корректно:
systemctl status named
Открываем на редактирование конфигурационный файл bind:
vi /etc/named.conf
и редактируем следующее:
listen-on port 53 { 127.0.0.1; localhost; 192.168.166.155; };
…
allow-query { any; };
* где 192.168.166.155 — IP-адрес нашего NS-сервера, на котором он будет принимать запросы; allow-query разрешает выполнять запросы всем, но из соображений безопасности можно ограничить доступ для конкретной сети, например, вместо any написать 192.168.166.0/24 .
Для применения настроек выполните команду:
systemctl restart named
Для начала проверим работу сервиса с локального компьютера. Для этого установим nslookup и выполним команду:
yum install bind-utils
nslookup remontka.com 127.0.0.1
Если вы предпочитаете использовать dig, то:
dig remontka.com @127.0.0.1
Для проверки работоспособности сервера с другого компьютера сети (например, на Windows) выполняем команду:
nslookup remontka.com 192.168.166.155
* данной командой мы пытаемся узнать IP-адреса сайта remontka.com через сервер 192.168.166.155 .
Должно получиться, примерно, следующее:
Перечисленные ниже параметры являются глобальными по отношению к DNS и всем настроенным зонам. Они задаются в конфигурационном файле named.conf, директиве options {}.
Опции | Описания |
---|---|
directory | Указывает рабочий каталог сервера bind. Если не указан, /var/named |
forwarders | Перечисляет серверы, на которые будет переведен запрос, в случае, если наш сервер не сможет его обработать (нет соответствующей зоны.) |
forward | Переопределяет способ обработки запроса. Принимает два значения — ONLY или FIRST. Первое указывает на то, что сервер не будет пытаться искать совпадения среди локальных зон. Второе — сервер сначала будет перенаправлять запрос и если он не будет успешно обработан, искать соответствия во внутренней базе. |
listen-on | На каких интерфейсах будет слушать bind |
allow-transfer | Указание на список серверов на которые будут разрешены зонные передачи (репликация на вторичные NS) |
allow-query | Список узлов, с которых разрешено обращаться к серверу. Если не задана, разрешено всем. |
allow-notify | Перечисленным серверам разрешает отправку уведомлений об изменениях в настройках зоны. |
allow-recursion | Задает список хостов, для которых разрешены рекурсивные запросы, остальным — будут разрешены итеративные. Если не задана, для всех рекурсивно. |
options {
directory «/var/named»;
forwarders { 192.168.0.10; 77.88.8.8; 8.8.8.8; };
listen-on { 127.0.0.1; localhost; 192.168.166.155; };
allow-transfer { 192.168.1.15; 192.168.0.0/24; };
allow-query { 192.168.1.0/24; 192.168.0.2; 192.168.0.3; };
allow-notify { 192.168.0.15; };
allow-recursion { any; };
}
Для возможности искать соответствия в собственной базе доменов, необходимо создать и настроить зоны. Существуют следующие типы зон:
По умолчанию, сервер Bind под CentOS хранит логи в файле /var/named/data/named.run .
Для его непрерывного просмотра вводим следующую команду:
tail -f /var/named/data/named.run
Степень детализации логов можно настроить в конфигурационном файле:
vi /etc/named.conf
logging {
channel default_debug {
file «data/named.run»;
severity dynamic;
};
};
* где file — путь к log-файлу; severity — уровень чувствительности к возникающим событиям. Возможны следующие варианты для severity:
Напротив, чтобы отключить ведение лога, в конфигурационном файле должна быть настройка:
logging {
category default { null; };
};
После изменения конфигурационного файла перезапускаем сервис:
systemctl restart named
Если мы хотим также видеть в логе все запросы, которые приходят на bind, в командной строке вводим:
rndc querylog
Для отключения еще раз повторяем команду:
rndc querylog
Дополнительная информация по bind:
1. Создание и настройка первичной зоны в BIND .
2. Как создать и настроить вторичную (slave) зону в BIND сервере .
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…