2026-09-19

Установка и настройка BIND на Ubuntu: кэширующий DNS-сервер

BIND (named) — стандартный DNS-сервер для Linux. В этой инструкции — установка, базовая настройка кэширующего DNS и подготовка к созданию зон. Подходит для Ubuntu и других Debian-подобных систем.


Подготовка системы

apt update

Если настроен брандмауэр, открываем 53-й UDP-порт:

iptables -I INPUT 1 -p udp --dport 53 -j ACCEPT
apt install iptables-persistent
netfilter-persistent save

Команда вставляет правило разрешения 53/udp первым в цепочке.


Установка и запуск

apt install bind9 dnsutils

Проверяем работу:

nslookup imaxis.ru 127.0.0.1
Server:         127.0.0.1
Address:        127.0.0.1#53
Non-authoritative answer:
Name:   imaxis.ru
Address: 45.130.41.92

Базовая настройка

Основной конфиг — /etc/bind/named.conf. В современных версиях он лишь подключает другие файлы.

По умолчанию сервер отвечает только локальным клиентам. Разрешаем запросы:

vi /etc/bind/named.conf.options
allow-query     { any; };

any — запросы от всех. Вместо этого можно указать конкретные сети/адреса.

Только для локальной сети:

allow-query     { 192.168.0.0/24; };

где 192.168.0.0/24 — ваша локальная сеть.

Для перенаправления запросов на внешний DNS:

forwarders { 77.88.8.8; 8.8.8.8; };

Запросы пойдут на 77.88.8.8, а при неудаче — на 8.8.8.8.

systemctl restart bind9

Альтернатива — service bind9 restart.

На этом базовая настройка завершена: сервер работает как кэширующий DNS. Проверить с другого хоста:

nslookup ubuntu.com 192.168.0.15

где 192.168.0.15 — адрес DNS-сервера в локальной сети.


Создание зон

Чтобы BIND отвечал за собственный домен, создайте соответствующую зону:


Тонкости и подводные камни

  • allow-query по умолчанию только localhost — без этой опции внешние клиенты получат REFUSED.
  • Открытый резолвер — не оставляйте allow-query { any; } в интернете: это открытый DNS-резолвер, который используют для DNS-амплификации. Ограничьте сетью.
  • forwarders — нужны, если сервер сам не рекурсивно резолвит или вы хотите централизовать запросы.
  • Файлы зон — в /etc/bind/, подключаются через named.conf.local; проверяйте синтаксис named-checkconf и named-checkzone.
  • Логи — по умолчанию в syslog/journal; для отладки включайте querylog в named.conf.options.
  • Порты — для TCP-запросов (крупные ответы, DNSSEC) нужен и 53/tcp.

Шпаргалка

apt install bind9 dnsutils
vi /etc/bind/named.conf.options
#   allow-query { 192.168.0.0/24; };
#   forwarders { 77.88.8.8; 8.8.8.8; };
systemctl restart bind9
nslookup ubuntu.com 192.168.0.15
named-checkconf

Проверено на: Ubuntu 22.04/24.04/26.04 + BIND 9.18+.
Дата: Сентябрь 2026.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *