ВАЖНО!
Контроллеры в пределах одного домена должны быть развернуты на одинаковых ОС.
ВАЖНО!
Установка серверной части Avanpost DS на ОС ASTRA с графической оболочкой FLY не поддерживается. При установке PowerDNS данная оболочка перестает работать и ломает ОС.
ВАЖНО!
У каждого контроллера должен быть статический ip адрес.
В качестве DNS сервера на каждом контроллере необходимо указать 127.0.0.1
На всех PDNS серверах, в начале файла /etc/hosts должен быть указан [FQDN] сервера.
127.0.0.1 [FQDN] 127.0.0.1 localhost ...
127.0.0.1 ds01.avanpost.local 127.0.0.1 localhost ...
Для установки Avanpost DS и PowerDNS на второй и последующие контроллеры домена под управлением ОС Astra 1.8 необходимо подключиться к нему по SSH и выполнить шаги:
Шаг 1. Обновить список пакетов.
Для этого необходимо выполнить команду:
sudo apt update
Шаг 2. Задать имя сервера.
Для этого необходимо выполнить команды по шаблону:
sudo hostnamectl set-hostname [FQDN] sudo echo "127.0.0.1 [FQDN]" | sudo tee -a /etc/hosts
Заменить [FQDN] на желаемое полное доменное имя сервера (FQDN), на котором производится установка.
В примере задается hostname "ds02.avanpost.local".
sudo hostnamectl set-hostname ds01.avanpost.local sudo echo "127.0.0.1 ds01.avanpost.local" | sudo tee -a /etc/hosts
В конфиге "/etc/hosts", первой старкой должно быть "127.0.0.1 [FQDN]".
127.0.0.1 ds02.avanpost.local #127.0.0.1 [FQDN] #127.0.0.1 localhost [::1] ds02.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
Шаг 5. Настроить использование конфигурации старых версий PowerDNS.
В PowerDNS начиная с версии 5.x используется конфигурационный файл в формате yaml. Что бы использовать конфигурационные файлы старых версий, необходимо в файл "/lib/systemd/system/pdns-recursor.service" добавить параметр запуска "--enable-old-settings" в блок "Service" → "ExecStart".
Для этого требуется:
5.1. Открыть для редактирования файл "/etc/apt/sources.list.d/pdns.list":
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-7):
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) сервера, на котором производится установка.
baseDN: dc=avanpost,dc=local #имя корня домена в формате DN host_ip_addr: 192.168.1.12 #адрес контроллера домена host_name_fqdn: ds01.avanpost.local #полное доменное имя (FQDN) контроллера домена # ldaps: # cert: #сертификат для использования сервером ldaps # key: #ключ сертификата для использования сервером ldaps repl: single_host: true #для первого контроллера в домене устанавливается "true", для всех последующих - "false"
Примечание:
Подробнее о настройке конфигурационного файла Avanpost DS см. статью "4.6.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) сервера, на котором производится установка. (В примере: "ds02.avanpost.local")
server {
listen 80;
server_name ds02.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://ds02.avanpost.local
Должна открыться страница авторизации в административную консоль.
Так же можно войти в веб-интерфейс по IP адресу контроллера домена, например:
192.168.1.12
Веб-интерфейс работает на порте 8080
После ввода реквизитов учётной записи должна открыться административная консоль системы.
Для первого входа необходимо использовать учетные данные:
Логин: Administrator
Пароль: Avanp0st
Шаг 13. Выключить сервисы "pdns" и "pdns-recursor".
Для этого необходимо выполнить команды:
sudo systemctl stop pdns sudo systemctl stop pdns-recursor
Шаг 14. Включить автоматическое управление конфигурационными файлами PowerDNS.
Внимание:
В случае, если автоматическое управление конфигурационными файлами PowerDNS недопустимо, необходимо настроить эти файлы вручную по инструкции: 4.4.1. Настройка конфигурационных файлов PowerDNS вручную, Шаг 2 и 3 текущей инструкции пропустить.
Для этого необходимо:
14.1. Открыть для редактирования файл конфигурации Avanpost DS "/opt/avanpost/ads/config/config.yaml".
sudo nano /opt/avanpost/ads/config/config.yaml
14.2. Добавить строки в файл:
service_control: dns_control: true
Шаг 15. Настроить автоматическое управление конфигурационными файлами PowerDNS.
Внимание:
В случае, если автоматическое управление конфигурационными файлами PowerDNS недопустимо, необходимо настроить эти файлы вручную по инструкции: 4.4.1. Настройка конфигурационных файлов PowerDNS вручную. Шаг 2 и 3 текущей инструкции пропустить.
Для этого необходимо:
15.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
15.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
15.3. Сделать резервную копию файла "/etc/krb5.conf", выполнив команду:
sudo mv /etc/krb5.conf /etc/krb5.conf.old
15.4. Создать новый файл "/etc/krb5.conf":
sudo nano /etc/krb5.conf
15.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.
Шаг 16. Выдать ACL разрешения на директории PowerDNS.
Для этого необходимо выполнить команды:
sudo setfacl -R -m u:ads:rwx /etc/powerdns sudo mkdir -p /var/lib/pdns sudo chown pdns:pdns /var/lib/pdns
Шаг 17. Включить и запустить сервисы "pdns", "pdns-recursor".
Для этого необходимо выполнить команды:
sudo systemctl enable --now pdns sudo systemctl enable --now pdns-recursor
Шаг 18. Перезапустить сервис "ads".
Примечание:
Перезапуск сервиса ads требуется для автоматического создания DNS записи.
Для этого необходимо выполнить команду:
sudo systemctl restart ads.service
Шаг 19. Добавить параметр сервера PowerDNS в конфигурацию.
(при условии, что включена автоматическая настройка конфигурации pdns)Для этого необходимо:
19.1. Нажать в разделе "DNS" веб-интерфейса Avanpost DS.
19.2. В открывшемся окне добавить в конец поля "Настройки авторитативного DNS сервера (pdns.conf)" строку:
zone-cache-refresh-interval=0
19.3. Нажать .
Шаг 20. Проверить, что DNS зона создана.
Для этого необходимо в разделе "DNS" веб-интерфейса администратора Avanpost DS проверить наличие зоны.
Шаг 21. Создать DNS зону обратного просмотра.
Для этого необходимо:
21.1. В разделе "DNS" веб-интерфейса администратора Avanpost DS нажать кнопку в верхней части экрана;
21.2. Заполнить поля в форме создания зоны:
| Поле | Значение |
|---|---|
| Идентификатор сети | Адрес сети для создаваемой обратной зоны в формате "AAA.BBB.CCC". Например, "192.168.1" |
| Основной сервер имен | IP или FQDN адрес основного DNS сервера. (Первого контроллера домена Avanpost DS) |
| Ответственное лицо | Логин администратора зоны |
| Refresh интервал (минуты) | Время, отведённое под запрос данных от вторичного DNS-сервера к первичному. Если получен ответ, что Serial number изменён, сведения на вторичном сервере в обязательном порядке обновляются. |
| Retry интервал (минуты) | Время, отведённое под обновление данных, если с первого раза этого не произошло. |
| Expires | Промежуток времени, когда сведения о зоне могут применяться на вторичном сервере. Когда время заканчивается, но данные при этом не успевают обновиться, запросы по данной зоне перестают обрабатываться. |
| TTL по умолчанию | Промежуток времени, в рамках которого кэшируется информация, предназначенная для передачи через DNS-серверы. |
21.3. Нажать.
Шаг 22. Добавить PTR записи для каждого контролера домена в DNS зону обратного просмотра.
Для этого необходимо:
22.1. В разделе "DNS" веб-интерфейса администратора Avanpost DS в строке созданной обратной зоны нажать → "Добавить запись PTR".
22.2. Заполнить поля в открывшейся форме:
| Поле | Значение |
|---|---|
| Имя хоста | FQDN адрес контроллера домена. Например, "ds02.avanpost.local" |
IP | IP адрес контроллера домена. Например, "192.168.1.12" |
22.3. Нажать .
Шаг 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.12
Можно проверить работу сервисов "pdns" и "pdns-recursor" с помощью команд:
dig -x 192.168.1.12 -p 5300 #[pdns] dig -x 192.168.1.12 -p 53 #[pdns-recursor]
Шаг 25. Добавить директории Avanpost DS в исключения антивируса.
Если на контроллере домена используется антивирус, то для обеспечения корректной работы и быстродействия Avanpost DS требуется добавить в исключения директории, содержащие БД и логи:
- /opt/avanpost/ads/data
- /opt/avanpost/ads/ds-logs







