Настройка bind9 debian 10
Обновлено: 03.07.2024
Как обычно, если не указано иное, команды выполняются от имени пользователя root .
Исходные данные
Сервер установлен, но установка сделана не безопасным способом. Нужно выполнить несколько дополнительных действий, описанных подробнее в Debian Wiki - Bind.
Будем запускать сервер в изолированном окружении:
Теперь нужно изменить расположение PIDFILE. Для этого в файле /etc/init.d/bind9 нужно переопределить переменную PIDFILE .
Чтобы сервер понимал, что его запускают в изолированном окружении, нужно изменить параметры его запуска, внеся небольшие коррективы в файл /etc/default/bind9
Перенастроим логирование rsyslog
Безопасность
Основные настройки сервера хранятся в файле /etc/bind/named.conf.options (на самом деле сейчас это всего лишь символическая ссылка, но на суть дела это не влияет). Добавим пару параметров для пущей безопасности в разделе options :
Включение в конфигурацию новой доменной зоны
В файле /etc/bind/named.conf.default-zones добавим указание на файлы прямой и обратной зоны, чтобы сервер мог обслуживать локальную сеть:
Прямая доменная зона
Обратная зона
Создадим файл, на который ссылается обратная зона, и заполним его по образцу:
Если всё сделано правильно, точки расставлены и IP-адреса указаны верно, можно попробовать запустить наш сервер:
Если вместо кучи ошибок сервер просто написал, что всё хорошо, можно проверить разрешение имен:
Данные утилиты из состава пакета bind9utils укажут на ошибки в конфигурационных файлах.
Существует несколько способов настроить обращение к DNS-серверу на клиентских машинах. По скольку речь идет об операционной системе для социальной группы 'siloviki', выбор инструментальных средств невелик - wicd , /etc/network/interfaces и /etc/resolv.conf .
Первый способ отметаем сразу же, поскольку с wicd довольно много проблем. Не буду останавливаться на них подробно, но обычно первое, что приходится делать на свежеустановленной системе - убрать его из автозагрузки:
Данная статья написана по большей части, как заметка по сборке DNS сервиса BIND9.16.0
Появилась она в связи с моими исследованиями работоспособности такой фишки, как RPZ (Response Policy Zone).
Он позволяет переопределять ответы DNS для доменных имен т.е. блокировать тот или иной ресурс на уровне DNS. Я планировал использовать его для блокировки различной рекламы и баннеров.
В версиях BIND9.10 и BIND9.11 он почему-то не работал корректно. А вот в BIND9.16 работает!
Но в этой статье речь пойдет не о блокировке, а о сборке последней стабильной версии BIND9.
Мне также не нравилось, что в репозитории для Debian 9 доступен только BIND9.10, а для Debian 10 доступен только BIND9.11
Я решил изучить вопрос сборки и запуска из исходных кодов. Если кому-то это будет полезно, то прошу к изучению.
Сборка и установка
Скачивание
Будем работать от корня
Устанавливаем необходимые зависимости
Переходим в распакованную папку
Конфигурирование
В рабочей системе на Debian 10 у установленного BIND выводятся вот такие параметры сборки. Частью из них я и воспользуюсь!
После завершения конфигурирования получим итоговый вывод:
Сборка
Проверяем все ли установилось.
named
Обновляем разрешения библиотек
Настройка
Предварительная настройка
Добавляем группу bind
Добавляем пользователя bind
Создаем папки для сервиса
Папка /etc/bind/ уже должна быть создана.
Добавляем файл bind9 в папку базовых настроек /etc/default/
Создаем systemd сервис для управления BIND9
Создание конфигурации
Создаем ключ rndc.key
Переместим его в папку keys
Создаем файл rndc.conf для управления
Создадим минимальный файл конфигурации для запуска BIND9
Добавляем базовые файлы зон
Обновляем права для папок и устанавливаем возможность записи для группы bind
Обновляем права для файла /etc/bind/keys/rndc.key
Запуск сервиса
Активируем сервис BIND9 и запускаем его
Итоговый статус работы BIND9.16.0
Дополнительно процесс запуска можно просмотреть в лог файле /var/log/syslog и /var/log/bind/bind.log
Далее настройки конфигурации и файлы зон можно реализовать по примеру статьи Домашний Сервер: Часть 3 – Внутренний DNS сервис на BIND9 или свои доменные имена в локальной сетиОбновление версии Bind из исходников
Заключение
По большей части процесс сборки никакой сложности не представляет, главное это корректно установленные права пользователя на папки и файлы.
Если что-то не запускается, то тут уже помогут стандартные логи в которых достаточно информации, чтобы понять, что не так.
Благодарю за ваше время!
Всего хорошего на просторах Интернета 😉
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Мир интересен, если вы достаточно любопытны.
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Интересная статья, надеюсь будет продолжение по настройки нескольких dns серверов и более углубленная настройка bind
Ну, для домашнего использования несколько DNS серверов не всегда нужно, но я подумаю над этим
Так значит стоит ожидать новой статьи по дополнительной настройке вырезания рекламы в BIND? Или будет дополнена новым функционалом старая статья?
Думаю что отдельная т.к. есть ряд тонкостей. И нагружать ту статью не хочется дополнительной информацией
Уважаемый автор, т.е. сейчас последняя версия BIND получила функциональность pi-hole и стало возможно организовать вырезание рекламы её использованием и правильной настройкой?
Но функционал работает. Всякие окна и баннеры перестают появляться. Также в rpz можно настроить ответы, которые получает браузер: NODATA, NXDOMAIN и т.д.
Давно работаю в сфере IT технологий.
Не претендую на звания, медали и что-то подобное.
Все, что тут описывается, является личным опытом и мнением автора, и ничем более.
Рад приветствовать дорогих читателей, надеюсь Вы найдете для себя что-то полезное.
Сервер DNS (Domain Name System) нужен для преобразования имен компьютера в IP адреса. Когда компьютеров было мало, обращения к компьютерам было по IP адресам. Но затем стало ясно, что намного удобнее обращаться по имени к компьютеру или сайту, чем запоминать IP адрес. Несложно запомнить несколько IP адресов, но когда их становится все больше и больше, то возникает необходимость переводить IP адреса в удобные имена. Именно для этих целей и служит DNS сервер, который занимается переводом имен компьютера в IP адреса и наоборот, переводом IP адресов компьютера в имена. Установка и настройка серевера DNS не занимает много времени, но требует внимательности и понимания конфигурационных файлов и указанных в них параметров. Одной из реализацией в Linux DNS серверов является BIND. Текущая реализация это BIND9. Все настроечные файлы находятся в каталоге /etc/bind/. Основной файл конфигурации - named.conf. Установим и настроим сервер DNS BIND9 на основе операционной системы Debian.
Для начала откроем терминал. Все действия по установке и настройке DNS сервера производятся с правами root или с помощью sudo.
Прописываем необходимые репозитории для обновления системы, а также установки нужных пакетов:
Для Debian 9 вместо jessie указываем stretch.
Сохраняем файл, далее выполняем следующие команды:
Первая команда обновит информацию о пакетах, вторая команда приведет к обновлению нашей системы до актуального состояния.
Устанавливаем пакет bind9 (dns сервер):
Директория, в которой находятся настроечные файлы dns сервера - /etc/bind/. Основным настроечным файлом является named.conf.options. Настраиваем файл named.conf.options (находится в каталоге /etc/bind):
Прописываем в файле named.conf.options:
allow-query < mynetwork; >; - список тех, кто имеет право запрашивать информацию, если хотите, чтобы принимать запросы ото всех, вместо mynetwork ставим any.
acl - ограничивает адреса, которые могут запрашивать зоны с сервера DNS.
forwarders < 8.8.8.8; >; - прописываем DNS сервера, у которого можно получить информацию, если информация о доменах неизвестна нашему серверу.
listen on < 192.168.91.10; 192.168.91.20; >; - прописываем DNS сервера, которые будут использованы для отображения IP адресов в имена и наоборот.
listen-on-v6 < none; >; - если IP 6 версии не используем.
auth-nxdomain no; - параметр для совместимости с RFC1035.
Далее редактируем файл named.conf.local:
В файле прописываем зону прямого и обратного просмотра для домена. Зона прямого просмотра - тип зоны, в котором в ответ на имя получают IP адрес. Соответственно ответственность зоны обратного просмотра состоит в том, чтобы получить по IP адресу имя компьютера:
91.168.192.in-addr.arpa - обратная зона просмотра, берётся из IP адреса DNS сервера (в данном случае 192.168.91.10);
После каждого изменения конфигурационного файла желательно провести проверку синтаксиса файла, затем переходить к настройке других файлов. Делается это командой:
Далее начинаем прописывать зону прямого просмотра. Чтобы произвести настройку быстрее и по шаблону, копируем фал db.local и изменяем уже вновь созданный файл настройки зоны прямого просмотра (имена для файлов зоны прямого и обратного просмотра можно придумать любые, но принято, чтобы они были читабельны):
; - после данного знака возможно делать комментарий
$TTL 604800 - time to live (время кэширования из вашей зоны)
@ IN SOA nic1 admin - запись SOA (начало ответственности)
nic1 - имя первичного dns сервера
admin - почтовый адрес пользователя, отвечающего за эту зону
2017060100 - серийный номер зоны (десятизначное число)
604800 - период обновления
86400 - повтор каждые 86400 с
2419200 - время хранения информации
Прописываем зону обратного просмотра. Для этого создаём файл зоны обратного просмотра и производим изменения в вновь созданном файле:
Делаем так, чтобы сервер DNS работал с новой конфигурацией:
named-checkconf - проверка правильности синтаксиса конфигурационных файлов, рекомендуется делать после каждого изменения в конфигурационном файле.
named-checkconf -z - пытается произвести действия, такие же как bind при загрузке зон.
Настройка BIND Ubuntu
Следует иметь в виду, что при конфигурации DNS для работы с реально существующим доменным именем все запросы из сети к данному домену, доступному глобально будут блокироваться.
Прежде всего, устанавливаем для сервера статический IP-адрес
Проверяем актуальное значение IP-адреса
Нужный адрес относится к интерфейсу eth0
Отправляемся в файл, отвечающий за сетевые настройки и меняем способ выдачи адреса с DHCP на static
iface eth0 inet static
address 192.168.11.76
network 255.255.255.0
gateway 192.168.11.21
Данный адрес установлен с учетом того, что он заведомо находится за пределами диапазона адресов, назначаемых DHCP
Чтобы изменения вступили в силу опускаем интерфейс и вновь поднимаем его
Удаление resolvconf в Ubuntu старше 12.04
Сейчас предупреждения, которое выводилось раньше, нет.
Установка и настройка bind9
Конфигурационные файлы располагаются в каталоге /etc/bind. Основные файлы: named.conf и named.conf.local
Общая форма конфига bind9 представлена в файле db.local
Конфигурации также представлены в named.conf.default-zones
Здесь можно увидеть записи двух типов:
Дальнейшие изменения вносим в файл named.conf.local
$TTL 3600
@ IN SOA localhost localhost (
20170211001 ;серийный номер
3600 ;время обновления
3600 ;повторная попытка запроса обновления от мастера
3600 ;время истечения срока действия
3600 ;кэширование TTL
)
Чтобы проверить корректность работы bind9 заставим сервер обращаться к себе
В выводе присутсвует адрес 192.168.11.76, что означает, что успешно разрешаются как CNAME, так и A записи).
Пинг есть, значит bind работает корректно
Теперь настроим обратное преобразование
Как и ранее идем в named.conf.local; добавляем следующие строки
$TTL 3600
@ IN SOA localhost localhost (
20170211001 ;серийный номер
3600 ;время обновления
3600 ;повторная попытка запроса обновления от мастера
3600 ;время истечения срока действия
3600 ;кэширование TTL
)
В PTR записи прописывается только последний октет адреса 192.168.11.76, bind добавляет остальные октеты, если пренебречь этим правилом обратное преобразование происходить не будет.
Читайте также: