Bind9 — один из самых популярных DNS-серверов. Ниже приведено корректное и безопасное руководство по установке и настройке Bind9 в Debian/Ubuntu.
1. Установка Bind9
sudo apt update
sudo apt install bind9 bind9utils bind9-doc
2. Структура конфигурации Bind9
В Debian/Ubuntu конфигурация разделена на файлы:
- /etc/bind/named.conf — включает остальные файлы
- /etc/bind/named.conf.options — глобальные параметры
- /etc/bind/named.conf.local — ваши зоны
- /etc/bind/zones/ — рекомендуемое место для файлов зон
3. Настройка глобальных параметров
Файл: /etc/bind/named.conf.options
options {
directory "/var/cache/bind";
// Разрешаем рекурсию только локальной сети
recursion yes;
allow-recursion { 127.0.0.1; 192.168.1.0/24; };
// Разрешаем запросы всем (или ограничьте при необходимости)
allow-query { any; };
// Внешние DNS для пересылки
forwarders {
8.8.8.8;
8.8.4.4;
};
dnssec-validation auto;
auth-nxdomain no;
listen-on-v6 { any; };
};
4. Создание каталогов зон
sudo mkdir -p /etc/bind/zones/master
sudo mkdir -p /etc/bind/zones/reverse
5. Прямая зона (example.com)
Файл: /etc/bind/zones/master/db.example.com
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2024062101 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ; Minimum TTL
)
@ IN NS ns1.example.com.
ns1 IN A 192.168.1.10
@ IN A 192.168.1.20
www IN A 192.168.1.20
mail IN A 192.168.1.30
@ IN MX 10 mail.example.com.
6. Обратная зона (192.168.1.0/24)
Файл: /etc/bind/zones/reverse/db.192.168.1
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2024062101
3600
1800
604800
86400
)
@ IN NS ns1.example.com.
10 IN PTR ns1.example.com.
20 IN PTR www.example.com.
30 IN PTR mail.example.com.
7. Добавление зон в Bind9
Файл: /etc/bind/named.conf.local
zone "example.com" {
type master;
file "/etc/bind/zones/master/db.example.com";
allow-transfer { none; };
};
zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/zones/reverse/db.192.168.1";
allow-transfer { none; };
};
8. Проверка конфигурации
Проверка синтаксиса:
sudo named-checkconf
Проверка зоны:
sudo named-checkzone example.com /etc/bind/zones/master/db.example.com
sudo named-checkzone 1.168.192.in-addr.arpa /etc/bind/zones/reverse/db.192.168.1
9. Запуск и автозагрузка
sudo systemctl restart bind9
sudo systemctl enable bind9
sudo systemctl status bind9
10. Логирование Bind9
Файл: /etc/bind/named.conf.local
logging {
channel default_log {
file "/var/log/bind.log" versions 3 size 10m;
severity info;
print-time yes;
};
category default { default_log; };
category queries { default_log; };
};
Создать файл логов:
sudo touch /var/log/bind.log
sudo chown bind:bind /var/log/bind.log
11. Тестирование DNS
Проверка прямой зоны:
dig @127.0.0.1 example.com
dig @127.0.0.1 www.example.com
Проверка обратной зоны:
dig @127.0.0.1 -x 192.168.1.20
Просмотр логов:
tail -f /var/log/bind.log
12. Рекомендации по безопасности
- Ограничьте рекурсию:
allow-recursion { локальная_сеть; }; - Запретите AXFR:
allow-transfer { none; }; - Используйте DNSSEC:
dnssec-validation auto; - Разделяйте внутренние/внешние зоны через views
- Информация о материале
- Просмотров: 16