Интеграция FreeIPA DNS и BIND DNS

Оцените статью

Сегодня расссмотрим настройку интеграции FreeIPA DNS сервера в качестве мастер-контроллера DNS и двух внешних Bind-серверов для обслуживания собственных доменных зон в сети интернет.

Регистрация собственных NS-серверов

Прежде всего нам понадобится зарегистрировать собственные NS-сервера на одном из доменов, для чего необходимо обратиться к хостинг-провайдеру в моем случае в техническую поддержку, а у рег.ру это можно сделать из панели управления.

Добрый день.

Мы с вами такое уже настраивали, давно правда. У меня есть два сервера настроенные как NS сервера для домена shiskitech.ru (приобретен у вас). А настроил описание зоны и настроил трансфер между серерами.

Конфигурация зоны:

$TTL 86400
@ IN SOA ns1.shiskitech.ru. admin.shiskitech.ru. (
2026190203 ; Serial (дата + номер ревизии)
3600 ; Refresh (1 час)
1800 ; Retry (30 минут)
1209600 ; Expire (14 дней)
86400 ; Minimum TTL (1 день)
)

; NS-записи (серверы имён домена)
@ IN NS ns1.shiskitech.ru.
@ IN NS ns2.shiskitech.ru.

; A-записи для NS-серверов
ns1.shiskitech.ru. IN A 185.135.81.157
ns2.shiskitech.ru. IN A 45.155.204.127

; A-запись для самого домена (опционально)
shiskitech.ru. IN A 185.135.81.157

; Дополнительные записи (по необходимости)
www.shiskitech.ru. IN A 185.135.81.157
test.shiskitech.ru. IN A 185.135.81.157

Мне надо, чтобы вы настроили на своей стороне разрешение зоны на мои DNS-сервера. В консоли управления зоной у вас такого функционала нет и в прошлый раз вы мне сами настраивали.

Заранее спасибо.

Настройка основного домена на базе DNS-сервера Bind

Файл конфигурации /etc/bind/named.conf.options.

options {
        directory "/var/cache/bind";

        //========================================================================
        // If BIND logs error messages about the root key being expired,
        // you will need to update your keys.  See https://www.isc.org/bind-keys
        //========================================================================

        dnssec-validation no;
        allow-query { localhost; any; };
        listen-on-v6 { any; };
};

logging {
    // Канал для общих запросов
    channel query_log {
        file "/var/log/bind/queries.log" versions 3 size 5m;
        severity info;
        print-time yes;
        print-category yes;
        print-severity yes;
    };

    // Канал для передачи зон (AXFR/IXFR)
    channel transfer_log {
        file "/var/log/bind/transfers.log" versions 3 size 5m;
        severity info;
        print-time yes;
        print-category yes;
        print-severity yes;
    };

    // Канал для ошибок и предупреждений
    channel error_log {
        file "/var/log/bind/errors.log" versions 5 size 10m;
        severity error;
        print-time yes;
    };

    // Назначение категорий каналам
    category queries { query_log; };
    #category transfers { transfer_log; };
    category xfer-in { transfer_log; };
    category xfer-out { transfer_log; };
    category config { error_log; };
    category security { error_log; };
    category general { error_log; };
};

Файл конфигурации /etc/bind/named.conf.local.

zone "shiskitech.ru" {
    type master;
    file "/var/lib/bind/db.shiskitech.ru";
    allow-transfer { 45.155.204.127; 127.0.0.1; };
    also-notify { 45.155.204.127; };
};

zone "rain.shiskitech.ru" {
    type slave;
    file "/var/lib/bind/db.rain.shiskitech.ru.slave";
    masters { 213.171.29.99; 10.101.5.14; 127.0.0.1;};
};

zone "rpz" {
    type master;
    allow-transfer { 45.155.204.127; 127.0.0.1;};
    also-notify { 45.155.204.127; };
    file "/var/lib/bind/db.rpz.local";
};

zone "anton-c.ru" {
    type slave;
    file "/var/lib/bind/db.anton-c.ru.slave";
    masters { 213.171.29.99; 10.101.5.14; 127.0.0.1;};
};

zone "bds.su" {
    type slave;
    file "/var/lib/bind/db.bds.su.slave";
    masters { 213.171.29.99; 10.101.5.14; 127.0.0.1;};
};

zone "interlan.xyz" {
    type slave;
    file "/var/lib/bind/db.interlan.xyz.slave";
    masters { 213.171.29.99; 10.101.5.14; };
};

Описание конфигурации основного домена /var/lib/bind/db.shiskitech.ru.

$TTL 86400
@   IN  SOA ns1.shiskitech.ru. admin.shiskitech.ru. (
        2026190203  ; Serial (дата + номер ревизии)
        3600        ; Refresh (1 час)
        1800        ; Retry (30 минут)
        1209600     ; Expire (14 дней)
        86400       ; Minimum TTL (1 день)
    )

; NS-записи (серверы имён домена)
@       IN  NS  ns1.shiskitech.ru.
@       IN  NS  ns2.shiskitech.ru.

; A-записи для NS-серверов
ns1.shiskitech.ru.   IN  A   185.135.81.157
ns2.shiskitech.ru.   IN  A   45.155.204.127

; A-запись для самого домена (опционально)
shiskitech.ru.       IN  A   185.135.81.157

; Дополнительные записи (по необходимости)
www.shiskitech.ru.   IN  A   185.135.81.157
test.shiskitech.ru.   IN  A   185.135.81.157

Перезапускаем DNS-сервер Bind.

# systemctl restart bind9

Проверяем передачу зоны основного домена.

# dig @127.0.0.1 shiskitech.ru AXFR

; <<>> DiG 9.18.39-0ubuntu0.22.04.3-Ubuntu <<>> @127.0.0.1 shiskitech.ru AXFR
; (1 server found)
;; global options: +cmd
shiskitech.ru.          86400   IN      SOA     ns1.shiskitech.ru. admin.shiskitech.ru. 2026190203 3600 1800 1209600 86400
shiskitech.ru.          86400   IN      NS      ns1.shiskitech.ru.
shiskitech.ru.          86400   IN      NS      ns2.shiskitech.ru.
shiskitech.ru.          86400   IN      A       185.135.81.157
ns1.shiskitech.ru.      86400   IN      A       185.135.81.157
ns2.shiskitech.ru.      86400   IN      A       45.155.204.127
test.shiskitech.ru.     86400   IN      A       185.135.81.157
www.shiskitech.ru.      86400   IN      A       185.135.81.157
shiskitech.ru.          86400   IN      SOA     ns1.shiskitech.ru. admin.shiskitech.ru. 2026190203 3600 1800 1209600 86400
;; Query time: 4 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (TCP)
;; WHEN: Wed May 13 11:35:07 +07 2026
;; XFR size: 9 records (messages 1, bytes 273)

Настраиваем резервный контроллер домена

Резервный контроллер домена создам аналогичным образом на базе DNS-сервера Bind.

Файл конфигурации /etc/bind/named.conf.options.

options {
        directory "/var/cache/bind";
        //========================================================================
        // If BIND logs error messages about the root key being expired,
        // you will need to update your keys.  See https://www.isc.org/bind-keys
        //========================================================================
        dnssec-validation no;
        allow-query { localhost; any; };
        listen-on-v6 { any; };

};

logging {
    // Канал для общих запросов
    channel query_log {
        file "/var/log/bind/queries.log" versions 3 size 5m;
        severity info;
        print-time yes;
        print-category yes;
        print-severity yes;
    };

    // Канал для передачи зон (AXFR/IXFR)
    channel transfer_log {
        file "/var/log/bind/transfers.log" versions 3 size 5m;
        severity info;
        print-time yes;
        print-category yes;
        print-severity yes;
    };

    // Канал для ошибок и предупреждений
    channel error_log {
        file "/var/log/bind/errors.log" versions 5 size 10m;
        severity error;
        print-time yes;
    };

    // Назначение категорий каналам
    category queries { query_log; };
    #category transfers { transfer_log; };
    category xfer-in { transfer_log; };
    category xfer-out { transfer_log; };
    category config { error_log; };
    category security { error_log; };
    category general { error_log; };
};

Файл конфигурации /etc/bind/named.conf.local.

zone "shiskitech.ru" {
    type slave;
    file "/var/lib/bind/db.shiskitech.ru.slave";
    masters { 213.171.29.99; 10.101.5.14; };
};

zone "rain.shiskitech.ru" {
    type slave;
    file "/var/lib/bind/db.rain.shiskitech.ru.slave";
    masters { 213.171.29.99; 10.101.5.14; };
};

zone "anton-c.ru" {
    type slave;
    file "/var/lib/bind/db.anton-c.ru.slave";
    masters { 213.171.29.99; 10.101.5.14; };
};

zone "bds.su" {
    type slave;
    file "/var/lib/bind/db.bds.su.slave";
    masters { 213.171.29.99; 10.101.5.14; };
};

zone "interlan.xyz" {
    type slave;
    file "/var/lib/bind/db.interlan.xyz.slave";
    masters { 213.171.29.99; 10.101.5.14; };
};


zone "rpz" {
    type slave;
    file "/var/lib/bind/db.rpz.slave";
    masters { 185.135.81.157; };
};

Настройка DNS-сервера на базе FreeIPA

Переходим в web-интерфейсе управления в раздел Сетевые службы -> DNS -> зоны DNS и создаем дополнительный домен.

Настройка домена в WEB-интерфейсе Free IPA

Можно не использовать web-интерфейс а проделать эти операции из консоли сервера.

Создаем домен.

# kinit admin
# ipa dnszone-add anton-c.ru --force --skip-overlap-check --admin-email=chernousov@anton-c.ru
  Zone name: anton-c.ru.
  Active zone: True
  Authoritative nameserver: srv-prod-rain-05.rain.shiskitech.ru.
  Administrator e-mail address: chernousov.anton-c.ru
  SOA serial: 1778651044
  SOA refresh: 3600
  SOA retry: 900
  SOA expire: 1209600
  SOA minimum: 3600
  BIND update policy: grant RAIN.SHISKITECH.RU krb5-self * A; grant RAIN.SHISKITECH.RU krb5-self * AAAA; grant RAIN.SHISKITECH.RU krb5-self * SSHFP;
  Dynamic update: False
  Allow query: any;
  Allow transfer: none;

Инструментов импорта существующих данных увы не предусмотрено, поэтому придется создавать записи вручную или написать скрипт конвертации. В моем случае было проще забить данные руками.

Разрешаем трансфер зоны.

# ipa dnszone-mod interlan.xyz --allow-transfer="10.101.5.9;10.101.5.7;45.155.204.127;185.135.81.157;"
  Zone name: interlan.xyz.
  Active zone: True
  Authoritative nameserver: srv-prod-rain-05.rain.shiskitech.ru.
  Administrator e-mail address: hostmaster
  SOA serial: 1778652125
  SOA refresh: 3600
  SOA retry: 900
  SOA expire: 1209600
  SOA minimum: 3600
  BIND update policy: grant RAIN.SHISKITECH.RU krb5-self * A; grant RAIN.SHISKITECH.RU krb5-self * AAAA; grant RAIN.SHISKITECH.RU krb5-self * SSHFP;
  Dynamic update: False
  Allow query: any;
  Allow transfer: 10.101.5.9;10.101.5.7;45.155.204.127;185.135.81.157;

Инициализируем трансфер зоны на резервных DNS-серверах.

# rndc reload interlan.xyz

Проверяем логи передачи зоны.

# cat /var/log/bind/transfers.log | tail -n 100

Проверяем, что передача зоны прошла успешно.

13-May-2026 09:04:10.851 xfer-in: info: transfer of 'interlan.xyz/IN' from 213.171.29.99#53: connected using 213.171.29.99#53
13-May-2026 09:04:10.859 xfer-in: info: zone interlan.xyz/IN: transferred serial 1778652125
13-May-2026 09:04:10.859 xfer-in: info: transfer of 'interlan.xyz/IN' from 213.171.29.99#53: Transfer status: success
13-May-2026 09:04:10.859 xfer-in: info: transfer of 'interlan.xyz/IN' from 213.171.29.99#53: Transfer completed: 1 messages, 12 records, 693 bytes, 0.004 secs (173250 bytes/sec) (serial 1778652125)

Запрашиваем данные.

# dig @127.0.0.1 interlan.xyz AXFR

; <<>> DiG 9.18.39-0ubuntu0.22.04.3-Ubuntu <<>> @127.0.0.1 interlan.xyz AXFR
; (1 server found)
;; global options: +cmd
interlan.xyz.           86400   IN      SOA     srv-prod-rain-05.rain.shiskitech.ru. hostmaster.interlan.xyz. 1778652125 3600 900 1209600 3600
interlan.xyz.           86400   IN      NS      ns1.shiskitech.ru.
interlan.xyz.           86400   IN      NS      ns2.shiskitech.ru.
interlan.xyz.           86400   IN      NS      srv-prod-rain-05.rain.shiskitech.ru.
interlan.xyz.           86400   IN      MX      10 mx.yandex.net.
interlan.xyz.           86400   IN      A       45.155.204.127
094bdd5a762914a2b517921943f9e1fa.interlan.xyz. 86400 IN CNAME verify.bing.com.
mail._domainkey.interlan.xyz. 86400 IN  TXT     "v=DKIM1;" "k=rsa;" "t=s;" "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDgvZbsH4Aqi9hypaSakTw1S8fy3Wf2+RmUTHQnck0oQswbbopuG7yXHTZYzvN04w7/YOX5Su7w+HOBbdAvFUjWbNkoSuihngGNXDIp0A/HVSbBzxOMw/rBMykT+4IWQ6JNBl0/3pleSkmToa8uLNoZGQT0dOagu3bXlkOTSe09EQIDAQAB," "v=spf1" "redirect=_spf.yandex.net"
cloud.interlan.xyz.     86400   IN      A       213.171.29.99
git.interlan.xyz.       86400   IN      A       45.155.204.127
www.interlan.xyz.       86400   IN      A       45.155.204.127
interlan.xyz.           86400   IN      SOA     srv-prod-rain-05.rain.shiskitech.ru. hostmaster.interlan.xyz. 1778652125 3600 900 1209600 3600
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (TCP)
;; WHEN: Wed May 13 09:10:39 MSK 2026
;; XFR size: 12 records (messages 1, bytes 732)

Сверяемся с WEB-интерфейсом.

Все работает.

Все отработало и можем мигрировать оставшиеся домены.

Похожие записи

Настройка централизованной авторизации в домене IPA на RedOS 8

Продолжаем разбираться с работой RedOS 8 в корпоративной среде. Сегодня займемся настройкой централизованной авторизации рабочих станций и серверов в домене IPA (Identity Policy Audit). IPA (Identity Policy Audit) — это…

Резервное копирование и восстановление FreeIPA

Резервное копирование и восстановление домена Free IPA, это очень черт побери важно и если вы потеряете данные по домену крупной, да и не очень крупной компании вас никто за это…

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

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

Читать еще статьи

Интеграция FreeIPA DNS и BIND DNS

Интеграция FreeIPA DNS и BIND DNS

Настройка централизованной авторизации в домене IPA на RedOS 8

Настройка централизованной авторизации в домене IPA на RedOS 8

Резервное копирование и восстановление FreeIPA

Резервное копирование и восстановление FreeIPA

Работа с самоподписанными сертификатами в Linux

Работа с самоподписанными сертификатами в Linux

Очередной сертификат

Очередной сертификат

Дополнительные настройки Next Cloud

Дополнительные настройки Next Cloud