Настройка BIND 9 на контроллере домена Astra 1.8

Для настройки DNS-сервера BIND 9 на контроллере домена Avanpost DS необходимо выполнить шаги:

Шаг 1. Установить пакеты.

Для этого требуется выполнить команды:

sudo apt update
sudo apt install bind9 bind9-dyndb-ldap dnsutils krb5-user libsasl2-modules-gssapi-mit ldap-utils acl

Примечание:

Для установки пакетов требуется подключить необходимые репозитории Astra Linux в файле "/etc/apt/sources.list".

Шаг 2. Перевести Avanpost DS в режим управления сервисом "bind-dyndb".

Для этого требуется:

2.1. Открыть для редактирования конфигурационный файл "/opt/avanpost/ads/config/config.yaml":

sudo nano /opt/avanpost/ads/config/config.yaml

2.2. Изменить значение параметров управления DNS:

/opt/avanpost/ads/config/config.yaml
service_control:
  dns_service: bind-dyndb
  dns_control: true

Внимание!

При редактировании файлов в формате YAML требуется выставлять корректные отступы. Для вложенных параметров используется два пробела. Табуляцию использовать не рекомендуется.

2.3. Выдать ACL-разрешения:

sudo setfacl -m g:bind:r /etc/krb5.keytab
sudo setfacl -m u:ads:rwx /etc/bind/
sudo setfacl -m u:ads:rwx /etc/bind/named.conf

Шаг 3. Перезапустить сервис Avanpost DS.

Для этого требуется выполнить команду:

sudo systemctl restart ads && sudo systemctl status ads --no-pager -l

Шаг 4. Настроить рабочую директорию BIND.

Для этого требуется создать директорию и настроить права:

sudo mkdir -p /etc/bind/dyndb-avanpost.local/
sudo chown -R bind:bind /etc/bind/
sudo chmod 750 /etc/bind/dyndb-avanpost.local/

Шаг 5. Заполнить конфигурационный файл "/etc/bind/named.conf".

Для этого требуется:

5.1. Создать резервную копию текущей конфигурации BIND:

sudo cp /etc/bind/named.conf /etc/bind/named.conf.bak.$(date +%F_%H-%M-%S)

5.2. Открыть для редактирования конфигурационный файл "/etc/bind/named.conf":

sudo nano /etc/bind/named.conf

5.3. Заполнить файл по шаблону:

Шаблон "/etc/bind/named.conf"
options {
    directory "/etc/bind/";
    listen-on port 53 { 127.0.0.1; [IP]; };
    listen-on-v6 { none; };
    allow-query { any; };
    recursion yes;
    allow-recursion { any; };
    forward only;
    forwarders { 77.88.8.8; };
    dnssec-validation no;
    pid-file "/run/named/named.pid";
    session-keyfile "/run/named/session.key";
};

controls { };

dyndb "avanpost_local_ldap" "/usr/lib/x86_64-linux-gnu/bind/ldap.so" {
    uri "ldap://[FQDN]:389";
    base "ou=dyndb,ou=dns,dc=system";
    server_id "[FQDN]";
    directory "dyndb-avanpost_local_ldap";
    auth_method "sasl";
    sasl_mech "GSSAPI";
    krb5_keytab "FILE:/etc/krb5.keytab";
    krb5_principal "host/[FQDN]@[REALM]";
    dyn_update no;
    sync_ptr no;
    connections 2;
    timeout 20;
    reconnect_interval 5;
};

Заменить [IP] на IP-адрес LDAP сервера. Если BIND и Avanpost DS развернуты на одном и том же сервере, то рекомендуется указать адрес "127.0.0.1".

Заменить [FQDN] на полное доменное имя сервера, на котором развернут BIND.

Заменить [REALM] на имя домена Avanpost DS в верхнем регистре.

Пример "/etc/bind/named.conf"
options {
    directory "/etc/bind/";
    listen-on port 53 { 127.0.0.1; 192.168.2.11; };
    listen-on-v6 { none; };
    allow-query { any; };
    recursion yes;
    allow-recursion { any; };
    forward only;
    forwarders { 77.88.8.8; };
    dnssec-validation no;
    pid-file "/run/named/named.pid";
    session-keyfile "/run/named/session.key";
};

controls { };

dyndb "avanpost_local_ldap" "/usr/lib/x86_64-linux-gnu/bind/ldap.so" {
    uri "ldap://ds01.avanpost.local:389";
    base "ou=dyndb,ou=dns,dc=system";
    server_id "ds01.avanpost.local";
    directory "dyndb-avanpost_local_ldap";
    auth_method "sasl";
    sasl_mech "GSSAPI";
    krb5_keytab "FILE:/etc/krb5.keytab";
    krb5_principal "host/ds01.avanpost.local@AVANPOST.LOCAL";
    dyn_update no;
    sync_ptr no;
    connections 2;
    timeout 20;
    reconnect_interval 5;
};

Шаг 6. Проверить конфигурацию BIND.

Для этого требуется выполнить команду:

sudo named-checkconf -z /etc/bind/named.conf

Шаг 7. Запустить сервис "bind9" и добавить его в автозапуск.

Для этого требуется выполнить команды:

sudo systemctl enable bind9
sudo systemctl restart bind9
sudo systemctl status bind9 --no-pager -l

Обсуждение