Настройка 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 довольно много проблем. Не буду останавливаться на них подробно, но обычно первое, что приходится делать на свежеустановленной системе - убрать его из автозагрузки:

gost-bind9-source-build

Софт

Данная статья написана по большей части, как заметка по сборке 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 и запускаем его

gost-bind-endstatus

Итоговый статус работы 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, PTR запись в DNS 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 добавляет остальные октеты, если пренебречь этим правилом обратное преобразование происходить не будет.

Читайте также: