ВАЖНО!
Контроллеры в пределах одного домена должны быть развернуты на одинаковых ОС.
ВАЖНО!
У каждого контроллера должен быть статический ip адрес.
В качестве DNS сервера на каждом контроллере необходимо указать 127.0.0.1
ВАЖНО!
Установка серверной части Avanpost DS на ОС ASTRA с графической оболочкой FLY не поддерживается. При установке PowerDNS данная оболочка перестает работать и ломает ОС.
Для установки Avanpost DS Server на контроллер домена под управлением ОС Astra 1.8 и интеграции PowerDNS требуется выполнить шаги:
Для полноценной работы большинства функций в доменной сети требуется DNS сервер.
Avanpost DS выступает в качестве хранилища записей для DNS сервера PowerDNS и позволяет создавать записи в базе в том числе через веб-интерфейс администратора.
Шаг 1. Обновить список пакетов.
Для этого необходимо выполнить команду:
sudo apt update
Шаг 2. Задать имя сервера.
Для этого необходимо:
2.1. Выполнить команды по шаблону:
sudo hostnamectl set-hostname [FQDN] sudo echo "127.0.0.1 [FQDN]" | sudo tee -a /etc/hosts
Заменить [FQDN] на желаемое полное доменное имя сервера (FQDN), на котором производится установка.
В примере задается hostname "ds01.avanpost.local".
sudo hostnamectl set-hostname ds01.avanpost.local sudo echo "127.0.0.1 ds01.avanpost.local" | sudo tee -a /etc/hosts
2.2. В конфигурационном файле "/etc/hosts" указать в первой строке значение "127.0.0.1 [FQDN]".
127.0.0.1 ds01.avanpost.local #127.0.0.1 [FQDN] #127.0.0.1 localhost [::1] ds01.avanpost.local
Шаг 3. Добавить репозитории PowerDNS - version 5.2.X (stable).
Для этого необходимо:
3.1. Создать файл "/etc/apt/sources.list.d/pdns.list" и открыть его для редактирования.
sudo nano /etc/apt/sources.list.d/pdns.list
3.2. Добавить в файл "/etc/apt/sources.list.d/pdns.list" две записи о новых репозиториях.:
deb [signed-by=/etc/apt/keyrings/auth-49-pub.asc] http://repo.powerdns.com/debian bookworm-auth-49 main deb [signed-by=/etc/apt/keyrings/rec-52-pub.asc] http://repo.powerdns.com/debian bookworm-rec-52 main
3.3. Создать файл "/etc/apt/preferences.d/auth-49" и открыть его для редактирования.
sudo nano /etc/apt/preferences.d/auth-49
3.4. Добавить в файл "/etc/apt/preferences.d/auth-49" строки:
Package: auth* Pin: origin repo.powerdns.com Pin-Priority: 600
3.5. Создать файл "/etc/apt/preferences.d/rec-52" и открыть его для редактирования.
sudo nano /etc/apt/preferences.d/rec-52
3.6. Добавить в файл "/etc/apt/preferences.d/rec-52" строки:
Package: rec* Pin: origin repo.powerdns.com Pin-Priority: 600
3.7. Выполнить команды для обновления списка пакетов:
sudo install -d /etc/apt/keyrings; curl https://repo.powerdns.com/FD380FBB-pub.asc | sudo tee /etc/apt/keyrings/rec-52-pub.asc && \ sudo install -d /etc/apt/keyrings; curl https://repo.powerdns.com/FD380FBB-pub.asc | sudo tee /etc/apt/keyrings/auth-49-pub.asc && \ sudo apt-get update
Шаг 4. Установить необходимые пакеты.
Для этого необходимо выполнить команды:
sudo apt update sudo apt install nginx xmlsec1 libxmlsec1-openssl wget pdns-server pdns-backend-ldap pdns-recursor dnsutils krb5-user libsasl2-modules-gssapi-mit acl
Шаг 5. Настроить использование конфигурации старых версий PowerDNS.
В powerDNS начиная с версии 5.x используется конфигурационный файл в формате yaml. Что бы использовать конфигурационные файлы старых версий, необходимо в файл "/lib/systemd/system/pdns-recursor.service" добавить параметр запуска "--enable-old-settings" в блок "Service" → "ExecStart".
Для этого требуется:
5.1. Открыть для редактирования файл "/lib/systemd/system/pdns-recursor.service":
sudo nano /lib/systemd/system/pdns-recursor.service
5.2. Добавить параметр запуска "--enable-old-settings" в блок "Service" → "ExecStart":
# ... [Service] ExecStart=/usr/sbin/pdns_recursor --daemon=no --write-pid=no --disable-syslog --log-timestamp=no --enable-old-settings # ...
5.3. Выполнить перезапуск systemd и перезапуск службы "pdns-recursor" с помощью команд:
sudo systemctl daemon-reload && \ sudo systemctl restart pdns-recursor
Шаг 6. Скачать и установить пакет Avanpost DS актуальной версии.
Для этого необходимо выполнить команды (в примере устанавливается версия 1.6.4-8):
wget https://packages.avanpost.ru/repository/ds-dists/master/packages/Avanpost.DS.Server.Linux-1.6.4-8.amd64.deb && \ sudo dpkg -i Avanpost.DS.Server.Linux-1.6.4-8.amd64.deb
Скачать пакет можно по ссылке: https://packages.avanpost.ru/#browse/browse:ds-dists:master
Шаг 7. Заполнить конфигурационный файл Avanpost DS.
Для этого необходимо:
7.1. Открыть для редактирования файл конфигурации Avanpost DS "/opt/avanpost/ads/config/config.yaml".
sudo nano /opt/avanpost/ads/config/config.yaml
7.2. Заполнить открывшийся файл по шаблону:
baseDN: dc=[Домен2ур],dc=[Домен1ур]#имя корня домена в формате DN host_ip_addr: [IP-АДРЕС] #адрес контроллера домена host_name_fqdn: [FQDN] #полное доменное имя (FQDN) контроллера домена # ldaps: # cert: #сертификат для использования сервером ldaps # key: #ключ сертификата для использования сервером ldaps repl: single_host: true #для первого контроллера в домене устанавливается "true", для всех последующих - "false"
Заменить в строке 1 [Домен1ур] на свой домен первого уровня, а [Домен2ур] — на свой домен второго уровня.
Заменить в строкe 2 [IP-АДРЕС] на IP адрес сервера, где производится установка.
Заменить в строке 3 [FQDN] на полное доменное имя (FQDN) сервера, на котором производится установка.
В строке 10 необходимо установить значение:
- true – в случае настройки первого контроллера домена;
- false – в случае настройки второго и последующих контроллеров домена.
baseDN: dc=avanpost,dc=local #имя корня домена в формате DN host_ip_addr: 192.168.1.11 #адрес контроллера домена host_name_fqdn: ds01.avanpost.local #полное доменное имя (FQDN) контроллера домена # ldaps: # cert: #сертификат для использования сервером ldaps # key: #ключ сертификата для использования сервером ldaps repl: single_host: true #для первого контроллера в домене устанавливается "true", для всех последующих - "false"
Примечание:
Подробнее о настройке конфигурационного файла Avanpost DS см. статью "4.3.1. Конфигурационный файл Avanpost DS "config.yaml"" руководства по развертыванию Avanpost DS.
Шаг 8. Установить права для пользователя ads на директорию "/opt/avanpost".
Для этого необходимо выполнить команду:
sudo chown -R ads:ads /opt/avanpost
Шаг 9. Запустить сервис "ads" и проверить его работу.
Для этого необходимо выполнить команды:
sudo systemctl enable --now ads sudo systemctl status ads
[root@ds02 ~]# sudo systemctl status ads ● ads.service - Avanpost Directory Service Loaded: loaded (/etc/systemd/system/ads.service; enabled; preset: disabled) Active: active (running) since Wed 2025-01-29 11:03:58 MSK; 3s ago Main PID: 10627 (ads) Tasks: 6 (limit: 10673) Memory: 47.8M CPU: 252ms CGroup: /system.slice/ads.service └─10627 /opt/avanpost/ads/cmd/ads/ads Jan 29 11:03:58 ds02.avanpost.local ads[10627]: 2025/01/29 11:03:58 License manager: Found 1 users, 19 objects Jan 29 11:03:58 ds02.avanpost.local ads[10627]: 2025/01/29 11:03:58 start KDC UDP listening: [::]:88 Jan 29 11:03:58 ds02.avanpost.local ads[10627]: 2025/01/29 11:03:58 start KDC TCP listening: [::]:88 Jan 29 11:03:58 ds02.avanpost.local ads[10627]: 2025/01/29 11:03:58 start chpw UDP listening: [::]:464 Jan 29 11:03:58 ds02.avanpost.local ads[10627]: 2025/01/29 11:03:58 start chpw TCP listening: [::]:464 Jan 29 11:03:58 ds02.avanpost.local ads[10627]: 2025/01/29 11:03:58 Listening LDAP on 0.0.0.0:389 Jan 29 11:03:58 ds02.avanpost.local ads[10627]: 2025/01/29 11:03:58 Http listening on 0.0.0.0:4008 Jan 29 11:03:58 ds02.avanpost.local ads[10627]: 2025/01/29 11:03:58 Listening LDAP on 0.0.0.0:636 Jan 29 11:03:58 ds02.avanpost.local ads[10627]: 2025/01/29 11:03:58 Listening DSCliServer on 0.0.0.0:7890 Jan 29 11:03:58 ds02.avanpost.local ads[10627]: 2025/01/29 11:03:58 Client listening on 0.0.0.0:8080
Шаг 10. Запустить первичную репликацию и добавить новый контроллер домена в существующую топологию. (Только для вторичных контроллеров домена)
Внимание!
Данный шаг необходимо выполнять только при настройке второго и последующих контроллеров в домене.
При настройке первого контроллера данный шаг требуется пропустить.
Для этого необходимо выполнить команду, подставив свои значения в шаблон:
/opt/avanpost/tools/cli/cli add-instance --host [IP2] --name [FQDN2] --endpoint [IP1]:48910 --user [ADMIN_USER] --password [ADMIN_PASSWORD]
Заменить [ADMIN_USER] и [ADMIN_PASSWORD] на реквизиты учетной записи пользователя с правами добавления контроллеров, по умолчанию это Administrator:Avanp0st
Заменить [IP2] на IP-адрес нового контроллера.
Заменить [IP1] на IP-адрес первичного(основного) контроллера.
Заменить [FQDN2] на FQDN нового контроллера.
/opt/avanpost/tools/cli/cli add-instance --host 192.168.1.12 --name ds02.avanpost.local --endpoint 192.168.1.11:48910 --user Administrator --password Avanp0st
Шаг 11. Опубликовать интерфейс системы на веб-сервере Nginx.
Для этого необходимо:
11.1. Создать конфигурационный файл "ads.conf"
sudo nano /etc/nginx/conf.d/ads.conf
11.2. Открывшийся файл необходимо заполнить по шаблону:
server {
listen 80;
server_name [FQDN];
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Заменить в строке 3 [FQDN] на полное доменное имя (FQDN) сервера, на котором производится установка. (В примере: "ds01.avanpost.local")
server {
listen 80;
server_name ds01.avanpost.local;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
11.3. Проверить целостность конфигурации.
sudo nginx -t # nginx: the configuration file /etc/nginx/nginx.conf syntax is ok # nginx: configuration file /etc/nginx/nginx.conf test is successful
11.4. Включить автоматический запуск и запустить сервис "nginx". Затем проверить, что он запущен.
sudo systemctl enable --now nginx sudo systemctl status nginx
Шаг 12. Для проверки зайти в веб-интерфейс администратора Avanpost DS.
Для доступа к веб-интерфейсу администратора Avanpost DS необходимо в строке браузера ввести адрес:
http://[имя_контроллера_домена]
Например, http://ds01.avanpost.local
Должна открыться страница авторизации в административную консоль.
Так же можно войти в веб-интерфейс по IP адресу контроллера домена, например:
192.168.1.11
Веб-интерфейс работает на порте 8080
После ввода реквизитов учётной записи должна открыться административная консоль системы.
Для первого входа необходимо использовать учетные данные:
Логин: Administrator
Пароль: Avanp0st
Шаг 13. Создать дополнительного доменного пользователя с правами администратора. (Только для первичного контроллера домена)
Внимание!
Данный шаг необходимо выполнять только при настройке первого контроллера в домене.
При настройке второго и последующих контроллеров данный шаг требуется пропустить.
Для этого необходимо:
13.1. В разделе "Пользователи" веб-интерфейса администратора Avanpost DS нажать на кнопку добавления пользователя .
13.2. Заполнить все поля, нажать "Сохранить".
13.3. Открыть карточку созданного пользователя, нажав на него в списке. Перейти на вкладку "Группы" и нажать кнопку "Добавить".
13.4. В открывшемся окне выбрать группу "Administrators" и нажать "Добавить".
Шаг 14. Выключить сервисы "pdns" и "pdns-recursor".
Для этого необходимо выполнить команды:
sudo systemctl stop pdns sudo systemctl stop pdns-recursor
Шаг 15. Включить автоматическое управление конфигурационными файлами PowerDNS.
Для этого необходимо:
15.1. Открыть для редактирования файл конфигурации Avanpost DS "/opt/avanpost/ads/config/config.yaml".
sudo nano /opt/avanpost/ads/config/config.yaml
15.2. Добавить строки в файл:
service_control: dns_control: true
Шаг 16. Настроить автоматическое управление конфигурационными файлами PowerDNS.
Для этого необходимо:
16.1. Создать и заполнить файл "/etc/sudoers.d/ads" для предоставления прав на управление сервисами "pdns", "pdns-recursor":
sudo visudo /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 ads ALL=(ALL) NOPASSWD: /opt/avanpost/tools/dscli/dscli joindc *
16.2. Проверить, что файл /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 выданы неправильные права.
/etc/sudoers: parsed OK #успешно обработан /etc/sudoers.d/ads: is mode 0662, should be 0440 #некорректные права доступа, должны быть 0440
В таком случае требуется установить верные права с помощью команды:
sudo chmod 440 /etc/sudoers.d/ads
16.3. Сделать резервную копию файла "/etc/krb5.conf", выполнив команду:
sudo mv /etc/krb5.conf /etc/krb5.conf.old
16.4. Создать новый файл "/etc/krb5.conf":
sudo nano /etc/krb5.conf
16.5. Заполнить файл "/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ур] — на свой домен второго уровня строго строчными буквами.
[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
Внимание:
При загрузке Avanpost DS будет проверять конфигурационные файлы PowerDNS. Если были внесены какие-либо изменения вручную, то конфигурационные файлы будут восстановлены. По этому дальнейшее редактирование конфигов pdns.conf recursor.conf следует выполнять из web интерфейса Avanpost DS.
Шаг 17. Выдать ACL разрешения на директории PowerDNS.
Для этого необходимо выполнить команды:
sudo setfacl -R -m u:ads:rwx /etc/powerdns sudo mkdir -p /var/lib/pdns sudo chown pdns:pdns /var/lib/pdns
Шаг 18. Включить и запустить сервисы "pdns", "pdns-recursor".
Для этого необходимо выполнить команды:
sudo systemctl enable --now pdns sudo systemctl enable --now pdns-recursor
Шаг 19. Перезапустить сервис "ads".
Примечание:
Перезапуск сервиса ads требуется для автоматического создания DNS записи.
Для этого необходимо выполнить команду:
sudo systemctl restart ads.service
Шаг 20. Добавить параметр сервера PowerDNS в конфигурацию.
(при условии, что включена автоматическая настройка конфигурации pdns)Для этого необходимо:
20.1. Нажать в разделе "DNS" веб-интерфейса Avanpost DS.
20.2. В открывшемся окне добавить в конец поля "Настройки авторитативного DNS сервера (pdns.conf)" строку:
zone-cache-refresh-interval=0
20.3. Нажать .
Шаг 21. Проверить, что DNS зона создана.
Для этого необходимо в разделе "DNS" веб-интерфейса администратора Avanpost DS проверить наличие зоны.
Шаг 22. Проверить 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]
Шаг 23. Проверить 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]
Шаг 24. Добавить директории Avanpost DS в исключения антивируса.
Если на контроллере домена используется антивирус, то для обеспечения корректной работы и быстродействия Avanpost DS требуется добавить в исключения директории, содержащие БД и логи:
- /opt/avanpost/ads/data
- /opt/avanpost/ads/ds-logs
После выполнения всех шагов развертывание Avanpost DS на контроллере завершено.
Можно переходить к разворачиванию Avanpost DS на следующем контроллере или к Этапу 2 "Интеграция Avanpost DS с прикладными системами".








