Настройка PowerDNS на контроллере Avanpost DS

ВНИМАНИЕ:

В данной инструкции приведены команды для трех операционных систем: REDOSASTRA 1.7; 2.12.ALT
Для шагов с отличающимися в зависимости от ОС действиями указаны команды для всех трех ОС. Необходимо выполнять команды только для используемой вами ОС.

Для установки на ОС Astra 1.8 требуется выполнить действия по одной из инструкций:

ВАЖНО!

Установка серверной части Avanpost DS на ОС ASTRA с графической оболочкой FLY не поддерживается. При установке PowerDNS данная оболочка перестает работать и ломает ОС.

Для полноценной работы большинства функций в доменной сети требуется DNS сервер.

Avanpost DS выступает в качестве хранилища записей для DNS сервера PowerDNS и позволяет создавать записи в базе в том числе через веб-интерфейс администратора. Для интеграции PowerDNS необходимо на каждом контроллере Avanpost DS выполнить шаги:

После выполнения всех шагов развертывание Avanpost DS на контроллере завершено.

Можно переходить к разворачиванию Avanpost DS на следующем контроллере или к Этапу 2 "Интеграция Avanpost DS с прикладными системами".

На всех PDNS серверах, в начале файла /etc/hosts должен быть указан [FQDN] сервера.

Шаблон /etc/hosts
127.0.0.1 [FQDN]
127.0.0.1 localhost
...
Пример заполненного /etc/hosts
127.0.0.1 ds01.avanpost.local
127.0.0.1 localhost
...

Шаг 1. Выключить сервисы "pdns" и "pdns-recursor" (Только для ОС Astra).

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

RedOS
НЕ выполнять данный шаг на RedOS
Astra
sudo systemctl stop pdns
sudo systemctl stop pdns-recursor
Alt
НЕ выполнять данный шаг на Alt

Шаг 2. Включить автоматическое управление конфигурационными файлами PowerDNS.

Внимание:

В случае, если автоматическое управление конфигурационными файлами PowerDNS недопустимо, необходимо настроить эти файлы вручную по инструкции: 4.4.1. Настройка конфигурационных файлов PowerDNS вручную, Шаг 2 и 3 текущей инструкции пропустить.

Для этого необходимо:

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

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

2.2. Добавить строки в файл:

Строки для добавления
service_control:
  dns_control: true

Шаг 3. Настроить автоматическое управление конфигурационными файлами PowerDNS.

Внимание:

В случае, если автоматическое управление конфигурационными файлами PowerDNS недопустимо, необходимо настроить эти файлы вручную по инструкции: 4.4.1. Настройка конфигурационных файлов PowerDNS вручную. Шаг 2 и 3 текущей инструкции пропустить.

Для этого необходимо:

3.1. Установить пакеты:

RedOS
sudo dnf install krb5-workstation acl cyrus-sasl-gssapi
Astra

1. Открыть файл "/etc/apt/sources.list.d/debian.list" для редактирования:

sudo nano /etc/apt/sources.list.d/debian.list

2. Закомментировать в файле "/etc/apt/sources.list.d/debian.list" записи репозиториев debian:

/etc/apt/sources.list.d/debian.list
#deb  https://mirror.yandex.ru/debian/ bullseye main contrib non-free
#deb-src  https://mirror.yandex.ru/debian/ bullseye main contrib non-free

3. Открыть для редактирования файл "/etc/apt/sources.list":

sudo nano /etc/apt/sources.list

4. Раскомментировать все записи репозиториев в файле "/etc/apt/sources.list":

Пример файла /etc/apt/sources.list
Astra Linux repository description https://wiki.astralinux.ru/x/0oLiC

deb cdrom:[OS Astra Linux 1.7.5 1.7_x86-64 DVD ]/ 1.7_x86-64 contrib main non-free
deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-main/ 1.7_x86-64 main contrib non-free
deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-update/ 1.7_x86-64 main contrib non-free

deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-base/ 1.7_x86-64 main contrib non-free
deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/ 1.7_x86-64 main contrib non-free
deb https://download.astralinux.ru/astra/stable/1.7_x86-64/uu/last/repository-update/ 1.7_x86-64 main contrib non-free

5. Обновить список пакетов:

sudo apt update

6. Установить пакеты:

sudo apt install krb5-user libsasl2-modules-gssapi-mit
Alt
sudo apt-get install libsasl2-plugin-gssapi

3.2. Создать и заполнить файл "/etc/sudoers.d/ads" для предоставления прав на управление сервисами "pdns", "pdns-recursor":

Создать файл /etc/sudoers.d/ads
sudo visudo /etc/sudoers.d/ads

Добавить в файл строки:

RedOS
/etc/sudoers.d/ads
ads ALL=(ALL) NOPASSWD: /usr/bin/systemctl start ads.service
ads ALL=(ALL) NOPASSWD: /usr/bin/systemctl start pdns.service
ads ALL=(ALL) NOPASSWD: /usr/bin/systemctl start pdns-recursor.service
ads ALL=(ALL) NOPASSWD: /usr/bin/systemctl stop ads.service
ads ALL=(ALL) NOPASSWD: /usr/bin/systemctl stop pdns.service
ads ALL=(ALL) NOPASSWD: /usr/bin/systemctl stop pdns-recursor.service
ads ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart ads.service
ads ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart pdns.service
ads ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart pdns-recursor.service
Astra
/etc/sudoers.d/ads
ads ALL=(ALL) NOPASSWD: /usr/bin/systemctl start ads.service
ads ALL=(ALL) NOPASSWD: /usr/bin/systemctl start pdns.service
ads ALL=(ALL) NOPASSWD: /usr/bin/systemctl start pdns-recursor.service
ads ALL=(ALL) NOPASSWD: /usr/bin/systemctl stop ads.service
ads ALL=(ALL) NOPASSWD: /usr/bin/systemctl stop pdns.service
ads ALL=(ALL) NOPASSWD: /usr/bin/systemctl stop pdns-recursor.service
ads ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart ads.service
ads ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart pdns.service
ads ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart pdns-recursor.service
Alt
/etc/sudoers.d/ads
ads ALL=(ALL) NOPASSWD: /sbin/systemctl start ads.service
ads ALL=(ALL) NOPASSWD: /sbin/systemctl start pdns.service
ads ALL=(ALL) NOPASSWD: /sbin/systemctl start pdns-recursor.service
ads ALL=(ALL) NOPASSWD: /sbin/systemctl stop ads.service
ads ALL=(ALL) NOPASSWD: /sbin/systemctl stop pdns.service
ads ALL=(ALL) NOPASSWD: /sbin/systemctl stop pdns-recursor.service
ads ALL=(ALL) NOPASSWD: /sbin/systemctl restart ads.service
ads ALL=(ALL) NOPASSWD: /sbin/systemctl restart pdns.service
ads ALL=(ALL) NOPASSWD: /sbin/systemctl restart pdns-recursor.service

3.3. Проверить, что файл /etc/sudoers.d/ads не имеет ошибок и имеет правильные права, с помощью команды:

sudo visudo -c
Вывод команды без ошибок
#/etc/sudoers: parsed OK
#/etc/sudoers.d/ads: parsed OK

Примечание:

Если в выводе команды ошибка вида "/etc/sudoers.d/ads: is mode xxxx, should be 0440", значит на /etc/sudoers.d/ads выданы неправильные права.

Вывод visudo -c с ошибкой
/etc/sudoers: parsed OK                            #успешно обработан
/etc/sudoers.d/ads: is mode 0662, should be 0440   #некорректные права доступа, должны быть 0440

В таком случае требуется установить верные права с помощью команды:

sudo chmod 440 /etc/sudoers.d/ads

3.4. Сделать резервную копию файла "/etc/krb5.conf", выполнив команду:

sudo mv /etc/krb5.conf /etc/krb5.conf.old

3.5. Создать новый файл "/etc/krb5.conf":

sudo nano /etc/krb5.conf

3.6. Заполнить файл "/etc/krb5.conf" по шаблону:

Шаблон /etc/krb5.conf
[libdefaults]
  default_realm = [ДОМЕН2УР].[ДОМЕН1УР]
  dns_lookup_realm = false
  dns_lookup_kdc = false
  dns_canonicalize_hostname = true

[realms]
  [ДОМЕН2УР].[ДОМЕН1УР] = {
    kdc = 127.0.0.1
    default_domain = [Домен2ур].[Домен1ур]
  }

[domain_realm]
  .[Домен2ур].[Домен1ур] = [ДОМЕН2УР].[ДОМЕН1УР]
  [Домен2ур].[Домен1ур] = [ДОМЕН2УР].[ДОМЕН1УР]

Заменить в строках 2, 14, 15 [ДОМЕН1УР] на свой домен первого уровня строго заглавными буквами, а [ДОМЕН2УР] — на свой домен второго уровня строго заглавными буквами.

Заменить в строках 10, 14, 15 [Домен1ур] на свой домен первого уровня строго строчными буквами, а [Домен2ур] — на свой домен второго уровня строго строчными буквами.

Пример /etc/krb5.conf
[libdefaults]
  default_realm = AVANPOST.LOCAL
  dns_lookup_realm = false
  dns_lookup_kdc = false
  dns_canonicalize_hostname = true

[realms]
  AVANPOST.LOCAL = {
    kdc = 127.0.0.1
    default_domain = avanpost.local
  }

[domain_realm]
  .avanpost.local = AVANPOST.LOCAL
  avanpost.local = AVANPOST.LOCAL

Внимание:

Конфигурационный файл "/etc/krb5.conf" должен быть с правами 644. Для выставления прав требуется выполнить команду:

sudo chmod 644 /etc/krb5.conf

При загрузке Avanpost DS будет проверять конфигурационные файлы PowerDNS. Если были внесены какие-либо изменения вручную, то конфигурационные файлы будут восстановлены. Поэтому дальнейшее редактирование конфигурационных файлов pdns.conf recursor.conf следует выполнять из веб-интерфейса Avanpost DS. 

Шаг 4. Выдать ACL разрешения на директории PowerDNS.

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

RedOS
sudo setfacl -R -m u:ads:rwx /etc/pdns
sudo setfacl -R -m u:ads:rwx /etc/pdns-recursor
Astra 
sudo setfacl -R -m u:ads:rwx /etc/powerdns
sudo mkdir -p /var/lib/pdns
sudo chown pdns:pdns /var/lib/pdns
Alt
sudo setfacl -R -m u:ads:rwx /etc/pdns
sudo setfacl -R -m u:ads:rwx /etc/pdns-recursor
sudo chown pdns:pdns /var/lib/pdns

Шаг 5. Включить и запустить сервисы "pdns", "pdns-recursor".

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

sudo systemctl enable --now pdns
sudo systemctl enable --now pdns-recursor

Шаг 6. Перезапустить сервис "ads".

Примечание:

Перезапуск сервиса ads требуется для автоматического создания DNS записи. 

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

sudo systemctl restart ads.service

Шаг 7. Проверить, что DNS зона создана.

Для этого необходимо в разделе "DNS" веб-интерфейса администратора Avanpost DS проверить наличие зоны.

Шаг 8. Создать DNS зону обратного просмотра.

Для этого необходимо: 

8.1. В разделе "DNS" веб-интерфейса администратора Avanpost DS нажать кнопку  в верхней части экрана;

8.2. Заполнить поля в форме создания зоны:

ПолеЗначение
Идентификатор сетиАдрес сети для создаваемой обратной зоны в формате "AAA.BBB.CCC". Например, "192.168.1"
Основной сервер именIP или FQDN адрес основного DNS сервера. (Первого контроллера домена Avanpost DS)
Ответственное лицоЛогин администратора зоны
Refresh интервал (минуты)Время, отведённое под запрос данных от вторичного DNS-сервера к первичному. Если получен ответ, что Serial number изменён, сведения на вторичном сервере в обязательном порядке обновляются.
Retry интервал (минуты)Время, отведённое под обновление данных, если с первого раза этого не произошло.
ExpiresПромежуток времени, когда сведения о зоне могут применяться на вторичном сервере. Когда время заканчивается, но данные при этом не успевают обновиться, запросы по данной зоне перестают обрабатываться.
TTL по умолчаниюПромежуток времени, в рамках которого кэшируется информация, предназначенная для передачи через DNS-серверы.

8.3. Нажать.

Шаг 9. Добавить PTR записи для каждого контролера домена в DNS зону обратного просмотра.

Для этого необходимо:

9.1. В разделе "DNS" веб-интерфейса администратора Avanpost DS в строке созданной обратной зоны нажать → "Добавить запись PTR".

9.2. Заполнить поля в открывшейся форме:

ПолеЗначение
Имя хостаFQDN адрес контроллера домена. Например, "ds01.avanpost.local"

IP

IP адрес контроллера домена. Например, "192.168.1.11"

9.3. Нажать .

Шаг 10. Проверить DNS записи зоны прямого просмотра.

Для этого необходимо выполнить команду по шаблону, подставив свои значения:

Шаблон команды
dig srv _ldap._tcp.[Домен2ур].[Домен1ур]

Заменить [Домен1ур] на свой домен первого уровня.

Заменить [Домен2ур] на свой домен второго уровня.

Пример команды
dig srv _ldap._tcp.avanpost.local

В выводе команд обязательно должны быть записи типа "SRV".

Пример вывода команды
dig srv _ldap._tcp.avanpost.local
;; ANSWER SECTION:
_ldap._tcp.avanpost.local. 1500    IN      SRV     0 0 389 ds01.avanpost.local.
_ldap._tcp.avanpost.local. 1500    IN      SRV     0 0 389 ds02.avanpost.local.

Можно проверить работу сервисов "pdns" и "pdns-recursor" с помощью команд:

dig srv _ldap._tcp.avanpost.local -p 5300   #[pdns]
dig srv _ldap._tcp.avanpost.local -p 53     #[pdns-recursor]

Шаг 11. Проверить DNS записи зоны обратного просмотра.

 Для этого необходимо выполнить команду по шаблону, подставив свои значения:

Шаблон команды
dig -x [IP PDNS сервера]

Заменить [IP PDNS сервера] на IP адрес контроллера домена.

Пример команды
dig -x 192.168.1.11

Можно проверить работу сервисов "pdns" и "pdns-recursor" с помощью команд:

dig -x 192.168.1.11 -p 5300    #[pdns]
dig -x 192.168.1.11 -p 53      #[pdns-recursor]

После выполнения всех шагов развертывание Avanpost DS на контроллере завершено.

Можно переходить к разворачиванию Avanpost DS на следующем контроллере или к Этапу 2 "Интеграция Avanpost DS с прикладными системами".

Обсуждение