Signal Visionary Xperience
  1. Вы здесь:  
  2. Главная
  3. Доменные имена

Настройка DNS-сервера Bind9 (Debian/Ubuntu)

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

Главное меню

  • Главная страница
    • Сигнал
    • Интерфейс
    • Опыт
    • Определения
  • Командная оболочка Bash
    • Перечень команд Bash
    • Скрипты BASH
  • Docker
  • Доменные имена
  • Соглашение
  • О проекте

Форма входа

  • Забыли пароль?
  • Забыли логин?