Найти в Дзене

Alt linux bind

Bind (Berkeley Internet Name Domain) — сервер DNS, обеспечивающий преобразование доменных имён в IP‑адреса и обратно. sudo apt-get install bind bind-utils После установки включите и запустите службу: sudo systemctl enable --now bind В ALT Linux Bind работает в изолированном окружении (chroot) в каталоге /var/lib/bind. Ключевые файлы: Используйте утилиты из пакета bind-utils:
Оглавление

Установка и настройка Bind (DNS‑сервера) в ALT Linux

Bind (Berkeley Internet Name Domain) — сервер DNS, обеспечивающий преобразование доменных имён в IP‑адреса и обратно.

1. Установка пакета

sudo apt-get install bind bind-utils

После установки включите и запустите службу:

sudo systemctl enable --now bind

2. Основные файлы конфигурации

В ALT Linux Bind работает в изолированном окружении (chroot) в каталоге /var/lib/bind. Ключевые файлы:

  • /var/lib/bind/etc/named.conf — главный конфигурационный файл;
  • /var/lib/bind/etc/options.conf — настройки пересылки запросов (forwarders);
  • /var/lib/bind/etc/local.conf — место для пользовательских зон;
  • /var/lib/bind/zone/ — каталог для файлов зон.

3. Базовая настройка (кеширующий сервер)

  1. Откройте /var/lib/bind/etc/options.conf.
  2. Раскомментируйте и заполните секцию forwarders (укажите IP вышестоящих DNS‑серверов, например, Google DNS):forwarders {
    8.8.8.8;
    8.8.4.4;
    };
  3. Убедитесь, что разрешены запросы от локальных сетей:allow-query { localnets; };
    allow-recursion { localnets; };
  4. Сохраните файл и перезапустите Bind:sudo systemctl restart bind

4. Создание DNS‑зоны (пример для домена internal.domain.net)

  1. В файле /var/lib/bind/etc/local.conf добавьте описание зоны:zone "internal.domain.net" {
    type master;
    file "zone/internal.domain.net";
    };
  2. Создайте файл зоны /var/lib/bind/zone/internal.domain.net:$TTL 86400
    @ IN SOA ns1.internal.domain.net. admin.internal.domain.net. (
    2024010901 ; Serial
    3600 ; Refresh
    1800 ; Retry
    1209600 ; Expire
    86400 ) ; Minimum TTL

    IN NS ns1.internal.domain.net.

    ns1 IN A 192.168.1.10
    host1 IN A 192.168.1.20
  3. Проверьте синтаксис конфигурации:sudo named-checkconf
    sudo named-checkzone internal.domain.net /var/lib/bind/zone/internal.domain.net
  4. Перезапустите Bind:sudo systemctl restart bind

5. Управление службой

  • Старт/стоп/статус:sudo systemctl start bind
    sudo systemctl stop bind
    sudo systemctl status bind
  • Перезагрузка конфигурации:sudo systemctl reload bind

6. Проверка работы DNS

Используйте утилиты из пакета bind-utils:

  • dig (подробный вывод):dig internal.domain.net
    dig @127.0.0.1 internal.domain.net
  • host (краткий вывод):host internal.domain.net
  • nslookup (устаревшая, но иногда полезная):nslookup internal.domain.net

7. Известные проблемы и решения

  1. Bind не запускается при использовании NetworkManager
    Отключите сброс привилегий:sudo control bind-caps disabled

    Перезапустите службу:sudo systemctl restart bind
  2. Ошибка «listening on interface… failed»
    Убедитесь, что Bind имеет доступ к сетевым интерфейсам (отключите chroot, если нужно):sudo control bind-chroot disabled
  3. Нет доступа к зонам
    Проверьте права на каталог /var/lib/bind/zone/:sudo chown -R named:named /var/lib/bind/zone/
    sudo chmod -R 755 /var/lib/bind/zone/

8. Дополнительные настройки

  • Режим SLAVE‑сервера:sudo control bind-slave enabled
    Это позволит Bind сохранять зоны, полученные от мастер‑сервера.
  • Включение отладки:sudo control bind-debug enabled
    Логи отладки появятся в /var/log/messages.
  • Отключение chroot (если требуется доступ к основной ФС):sudo control bind-chroot disabled

9. Полезные команды

  • Посмотреть список зон:sudo rndc lszones
  • Перезагрузить конкретную зону:sudo rndc reload internal.domain.net
  • Проверить статус сервера:sudo rndc status

10. Безопасность

  • По умолчанию Bind запускается в chroot (/var/lib/bind) — это снижает риски при уязвимостях.
  • Ограничьте доступ к серверу через allow-query и allow-recursion.
  • Регулярно обновляйте пакет:sudo apt-get update && sudo apt-get upgrade bind