ВАЖНО!
Контроллеры в пределах одного домена должны быть развернуты на одинаковых ОС.
ВАЖНО!
У каждого контроллера должен быть статический 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-heimdal acl ssh
Шаг 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. Ввести контроллер в домен.
Для этого необходимо выполнить команду по шаблону:
sudo /opt/avanpost/dscli/dscli joindc -domain [Домен2ур].[Домен1ур] -login [Логин]
Заменить [Домен1ур] на свой домен первого уровня, а [Домен2ур] — на свой домен второго уровня.
Заменить [Логин] на логин пользователя с правами администратора Avanpost DS.
Подробнее о создании пользователей в веб-интерфейсе администратора см. статью "6.2. Управление Пользователями".
sudo /opt/avanpost/dscli/dscli joindc -domain avanpost.local -login lipov
Шаг 12. Включить и добавить в автозагрузку службы "dscli.service", "dscli.timer" и "dscli-health.service".
Для этого необходимо выполнить команду:
sudo systemctl enable --now dscli.service && sudo systemctl enable --now dscli.timer && sudo systemctl enable --now dscli-health.service
Примечание
Служба "dscli" применяет групповые политики, а так же отслеживает изменения IP-адреса на хосте и отправляет их на контроллер Avanpost DS.
Шаг 13. Опубликовать интерфейс системы на веб-сервере Nginx.
Для этого необходимо:
13.1. Создать конфигурационный файл "ads.conf"
sudo nano /etc/nginx/conf.d/ads.conf
13.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;
}
}
13.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
13.4. Включить автоматический запуск и запустить сервис "nginx". Затем проверить, что он запущен.
sudo systemctl enable --now nginx sudo systemctl status nginx
Шаг 14. Для проверки зайти в веб-интерфейс администратора Avanpost DS.
Для доступа к веб-интерфейсу администратора Avanpost DS необходимо в строке браузера ввести адрес:
http://[имя_контроллера_домена]
Например, http://ds01.avanpost.local
Должна открыться страница авторизации в административную консоль.
Так же можно войти в веб-интерфейс по IP адресу контроллера домена, например:
192.168.1.11
Веб-интерфейс работает на порте 8080
После ввода реквизитов учётной записи должна открыться административная консоль системы.
Для первого входа необходимо использовать учетные данные:
Логин: Administrator
Пароль: Avanp0st
Шаг 15. Выключить сервисы "pdns" и "pdns-recursor".
Для этого необходимо выполнить команды:
sudo systemctl stop pdns sudo systemctl stop pdns-recursor
Шаг 16. Включить автоматическое управление конфигурационными файлами PowerDNS.
Для этого необходимо:
16.1. Открыть для редактирования файл конфигурации Avanpost DS "/opt/avanpost/ads/config/config.yaml".
sudo nano /opt/avanpost/ads/config/config.yaml
16.2. Добавить строки в файл:
service_control: dns_control: true
Шаг 17. Настроить автоматическое управление конфигурационными файлами PowerDNS.
Для этого необходимо:
17.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 *
17.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
17.3. Сделать резервную копию файла "/etc/krb5.conf", выполнив команду:
sudo mv /etc/krb5.conf /etc/krb5.conf.old
17.4. Создать новый файл "/etc/krb5.conf":
sudo nano /etc/krb5.conf
17.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
Внимание:
Конфигурационный файл "/etc/krb5.conf" и файл "/etc/krb5.keytab" должны иметь права 644. Для выставления прав требуется выполнить команды:
sudo chmod 644 /etc/krb5.conf sudo chmod 644 /etc/krb5.keytab
При загрузке Avanpost DS будет проверять конфигурационные файлы PowerDNS. Если были внесены какие-либо изменения вручную, то конфигурационные файлы будут восстановлены. Поэтому дальнейшие изменения конфигурационных файлов "pdns.conf" и "recursor.conf" следует выполнять из веб-интерфейса Avanpost DS.
Шаг 18. Выдать ACL разрешения на директории PowerDNS.
Для этого необходимо выполнить команды:
sudo setfacl -R -m u:ads:rw /etc/powerdns sudo mkdir -p /var/lib/pdns sudo chown pdns:pdns /var/lib/pdns
Шаг 19. Включить и запустить сервисы "pdns", "pdns-recursor".
Для этого необходимо выполнить команды:
sudo systemctl enable --now pdns sudo systemctl enable --now pdns-recursor
Шаг 20. Перезапустить сервис "ads".
Примечание:
Перезапуск сервиса ads требуется для автоматического создания DNS записи.
Для этого необходимо выполнить команду:
sudo systemctl restart ads.service
Шаг 21. Добавить параметр сервера PowerDNS в конфигурацию.
(при условии, что включена автоматическая настройка конфигурации pdns)Для этого необходимо:
21.1. Нажать в разделе "DNS" веб-интерфейса Avanpost DS.
21.2. В открывшемся окне добавить в конец поля "Настройки авторитативного DNS сервера (pdns.conf)" строку:
zone-cache-refresh-interval=0
21.3. Нажать .
Шаг 22. Проверить, что DNS зона создана.
Для этого необходимо в разделе "DNS" веб-интерфейса администратора Avanpost DS проверить наличие зоны.
Шаг 23. Проверить 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]
Шаг 24. Проверить 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]
Шаг 25. Добавить директории Avanpost DS в исключения антивируса.
Если на контроллере домена используется антивирус, то для обеспечения корректной работы и быстродействия Avanpost DS требуется добавить в исключения директории, содержащие БД и логи:
- /opt/avanpost/ads/data
- /opt/avanpost/ads/ds-logs
После выполнения всех шагов развертывание Avanpost DS на контроллере завершено.
Можно переходить к разворачиванию Avanpost DS на следующем контроллере или к Этапу 2 "Интеграция Avanpost DS с прикладными системами".



