ВАЖНО!
Контроллеры в пределах одного домена должны быть развернуты на одинаковых ОС.
ВАЖНО!
У каждого контроллера должен быть статический ip адрес.
В качестве DNS сервера на каждом контроллере необходимо указать 127.0.0.1
Для установки Avanpost DS Server на контроллер домена под управлением ОС AlterOS 2025 и интеграции PowerDNS требуется выполнить шаги:
Для полноценной работы большинства функций в доменной сети требуется DNS сервер. Для этого необходимо выполнить команду: Для этого необходимо: 2.1. Выполнить команды по шаблону: Заменить [FQDN] на желаемое полное доменное имя сервера (FQDN), на котором производится установка. В примере задается hostname "ds01.avanpost.local". 2.2. В конфигурационном файле "/etc/hosts" указать в первой строке значение "127.0.0.1 [FQDN]". Для этого необходимо выполнить команду: Для этого необходимо выполнить команды: Если требуется оставить SELinux включенным, то необходимо разрешить на нем нужные порты для сервиса "PDNS": TCP: 53 UDP: 53 Подробнее о настройке SELinux см. статью "7.15. Настройка SELinux на контроллере домена Avanpost DS". Если "pdns" и "pdns-recursor" находятся на разных хостах, необходимо дополнительно открыть порт TCP: 5300 Для этого необходимо выполнить команду: Если требуется оставить firewall включенным, то необходимо разрешить на нем нужные порты. TCP: 80, 88, 389, 443, 464, 636, 4008, 7890, 8080, 25489, 41005, 48900, 48910 UDP: 88, 123, 464 TCP: 53 UDP: 53 Подробнее о настройке firewalld см. статью "7.14. Настройка firewalld на контроллере домена Avanpost DS". Для этого необходимо: 6.1. Создать конфигурационный файл "/etc/resolv.conf". 6.2. Добавить строку в конфигурационный файл "/etc/resolv.conf": Для этого необходимо выполнить команду: ВАЖНО! В случае установки из архива вместо пакета необходимо выполнить действия по инструкции: "4.2.6.1. Установка Avanpost DS на контроллер домена МСВСфера из архива .tar". Для этого необходимо: 8.1. Открыть для редактирования файл конфигурации Avanpost DS "/opt/avanpost/ads/config/config.yaml". 8.2. Заполнить открывшийся файл по шаблону: Заменить в строке 1 [Домен1ур] на свой домен первого уровня, а [Домен2ур] — на свой домен второго уровня. Заменить в строкe 2 [IP-АДРЕС] на IP адрес сервера, где производится установка. Заменить в строке 3 [FQDN] на полное доменное имя (FQDN) сервера, на котором производится установка. В строке 10 необходимо установить значение: Примечание: Подробнее о настройке конфигурационного файла Avanpost DS см. статью "4.3.1. Конфигурационный файл Avanpost DS "config.yaml"" руководства по развертыванию Avanpost DS. Для этого необходимо выполнить команду: Для этого необходимо выполнить команды: Внимание! Данный шаг необходимо выполнять только при настройке второго и последующих контроллеров в домене. Для этого необходимо выполнить команду, подставив свои значения в шаблон: Заменить [ADMIN_USER] и [ADMIN_PASSWORD] на реквизиты учетной записи пользователя с правами добавления контроллеров, по умолчанию это Administrator:Avanp0st Заменить [IP2] на IP-адрес нового контроллера. Заменить [IP1] на IP-адрес первичного(основного) контроллера. Заменить [FQDN2] на FQDN нового контроллера. Для этого необходимо выполнить команду по шаблону: Заменить [Домен1ур] на свой домен первого уровня, а [Домен2ур] — на свой домен второго уровня. Заменить [Логин] на логин пользователя с правами администратора Avanpost DS. Подробнее о создании пользователей в веб-интерфейсе администратора см. статью "6.2. Управление Пользователями". ВНИМАНИЕ: Команда ввода контроллера в домен (dscli joindc) доступна начиная с версии Avanpost DS 1.8.3.17. При вводе КД в домен как рабочую станцию запись КД помещается в подразделение "domaincontrollers". Если требуется переместить запись КД в другое подразделение, необходимо отредактировать политики HBAC в случае их использования. Подробнее о настройке политик HBAC см. статью: "6.9. Управление групповыми политиками". Для этого необходимо выполнить команду: Примечание Служба "dscli" применяет групповые политики, а так же отслеживает изменения IP-адреса на хосте и отправляет их на контроллер Avanpost DS. Для этого необходимо: 14.1. Создать конфигурационный файл "ads.conf" 14.2. Открывшийся файл необходимо заполнить по шаблону: Заменить в строке 3 [FQDN] на полное доменное имя (FQDN) сервера, на котором производится установка. (В примере: "ds01.avanpost.local") 14.3. Проверить целостность конфигурации. 14.4. Включить автоматический запуск и запустить сервис "nginx". Затем проверить, что он запущен. Для доступа к веб-интерфейсу администратора Avanpost DS необходимо в строке браузера ввести адрес: http://[имя_контроллера_домена] Например, http://ds01.avanpost.local Должна открыться страница авторизации в административную консоль. Так же можно войти в веб-интерфейс по IP адресу контроллера домена, например: 192.168.1.11 Веб-интерфейс работает на порте 8080 После ввода реквизитов учётной записи должна открыться административная консоль системы. Для первого входа необходимо использовать учетные данные: Логин: Administrator Пароль: Avanp0st Если на контроллере домена используется антивирус, то для обеспечения корректной работы и быстродействия Avanpost DS требуется добавить в исключения директории, содержащие БД и логи: Внимание: В случае, если автоматическое управление конфигурационными файлами PowerDNS недопустимо, необходимо настроить эти файлы вручную по инструкции: 4.2.6.2. Настройка конфигурационных файлов PowerDNS вручную МСВСфера, Шаг 16 и 17 текущей инструкции пропустить. Для этого необходимо: 18.1. Открыть для редактирования файл конфигурации Avanpost DS "/opt/avanpost/ads/config/config.yaml". 18.2. Добавить строки в файл: Внимание: В случае, если автоматическое управление конфигурационными файлами PowerDNS недопустимо, необходимо настроить эти файлы вручную по инструкции: 4.2.6.2. Настройка конфигурационных файлов PowerDNS вручную МСВСфера, Шаг 16 и 17 текущей инструкции пропустить. Для этого необходимо: 19.1. Установить пакеты: 19.2. Создать и заполнить файл "/etc/sudoers.d/ads" для предоставления прав на управление сервисами "pdns", "pdns-recursor": Добавить в файл строки: 19.3. Проверить, что файл /etc/sudoers.d/ads не имеет ошибок и имеет правильные права, с помощью команды: Примечание: Если в выводе команды ошибка вида "/etc/sudoers.d/ads: is mode xxxx, should be 0440", значит на /etc/sudoers.d/ads выданы неправильные права. В таком случае требуется установить верные права с помощью команды: 19.4. Сделать резервную копию файла "/etc/krb5.conf", выполнив команду: 19.5. Создать новый файл "/etc/krb5.conf": 19.6. Заполнить файл "/etc/krb5.conf" по шаблону: Заменить в строках 2, 14, 15 [ДОМЕН1УР] на свой домен первого уровня строго заглавными буквами, а [ДОМЕН2УР] — на свой домен второго уровня строго заглавными буквами. Заменить в строках 10, 14, 15 [Домен1ур] на свой домен первого уровня строго строчными буквами, а [Домен2ур] — на свой домен второго уровня строго строчными буквами. Внимание: Конфигурационный файл "/etc/krb5.conf" и файл "/etc/krb5.keytab" должны иметь права 644. Для выставления прав требуется выполнить команды: При загрузке Avanpost DS будет проверять конфигурационные файлы PowerDNS. Если были внесены какие-либо изменения вручную, то конфигурационные файлы будут восстановлены. Поэтому дальнейшие изменения конфигурационных файлов "pdns.conf" и "recursor.conf" следует выполнять из веб-интерфейса Avanpost DS. Для этого необходимо выполнить команды: Для этого необходимо выполнить команды: Перезапуск сервиса ads требуется для автоматического создания DNS записи. Для этого необходимо выполнить команду: Для этого необходимо в разделе "DNS" веб-интерфейса администратора Avanpost DS проверить наличие зоны. Для этого необходимо выполнить команду по шаблону, подставив свои значения: Заменить [Домен1ур] на свой домен первого уровня. Заменить [Домен2ур] на свой домен второго уровня. В выводе команд обязательно должны быть записи типа "SRV". Можно проверить работу сервисов "pdns" и "pdns-recursor" с помощью команд: Для этого необходимо выполнить команду по шаблону, подставив свои значения: Заменить [IP PDNS сервера] на IP адрес контроллера домена. Можно проверить работу сервисов "pdns" и "pdns-recursor" с помощью команд: После выполнения всех шагов развертывание Avanpost DS на контроллере завершено. Можно переходить к разворачиванию Avanpost DS на следующем контроллере или к Этапу 2 "Интеграция Avanpost DS с прикладными системами".
Avanpost DS выступает в качестве хранилища записей для DNS сервера PowerDNS и позволяет создавать записи в базе в том числе через веб-интерфейс администратора.Шаг 1. Обновить список пакетов.
sudo dnf makecache
Шаг 2. Задать имя сервера.
sudo hostnamectl set-hostname [FQDN]
sudo sed -i "1i 127.0.0.1 $(hostname -f)" /etc/hosts
sudo hostnamectl set-hostname ds01.avanpost.local
sudo sed -i "1i 127.0.0.1 $(hostname -f)" /etc/hosts
sudo nano /etc/hosts
127.0.0.1 ds01.avanpost.local #127.0.0.1 [FQDN]
#127.0.0.1 localhost
[::1] ds01.avanpost.local
Шаг 3. Установить необходимые пакеты.
sudo dnf install openssl tar nginx xmlsec1 xmlsec1-openssl wget curl pdns pdns-backend-ldap pdns-recursor bind-utils cyrus-sasl-gssapi sssd authselect-compat mesa-libGL pam_krb5
Шаг 4. Перевести SELinux в режим "permissive" и перезагрузить сервер.
sudo sed -i "s/SELINUX=enforcing/SELINUX=permissive/" /etc/selinux/config
reboot
Шаг 5. Отключить firewall.
sudo systemctl disable --now firewalld
Шаг 6. Добавить строку в конфигурационный файл "/etc/resolv.conf".
sudo touch /etc/resolv.conf && sudo nano /etc/resolv.conf
nameserver 127.0.0.1
Шаг 7. Установить пакет Avanpost DS.
sudo dnf install /tmp/Avanpost.DS.Server.Linux-*.REDOS-MSVS.x86_64.rpm
Шаг 8. Заполнить конфигурационный файл Avanpost DS.
sudo nano /opt/avanpost/ads/config/config.yaml
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"
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"
Шаг 9. Установить права для пользователя ads на директорию "/opt/avanpost".
sudo chown -R ads:ads /opt/avanpost
Шаг 10. Запустить сервис "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
Шаг 11. Запустить первичную репликацию и добавить новый контроллер домена в существующую топологию. (Только для вторичных контроллеров домена)
При настройке первого контроллера данный шаг требуется пропустить./opt/avanpost/tools/cli/cli add-instance --host [IP2] --name [FQDN2] --endpoint [IP1]:48910 --user [ADMIN_USER] --password [ADMIN_PASSWORD]
/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
Шаг 12. Ввести контроллер в домен.
sudo /opt/avanpost/dscli/dscli joindc -domain [Домен2ур].[Домен1ур] -login [Логин]
sudo /opt/avanpost/tools/dscli/dscli joindc -domain avanpost.local -login lipov
Шаг 13. Включить и добавить в автозагрузку службы "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
Шаг 14. Опубликовать интерфейс системы на веб-сервере Nginx.
sudo nano /etc/nginx/conf.d/ads.conf
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;
}
}
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;
}
}
sudo nginx -t
# nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
# nginx: configuration file /etc/nginx/nginx.conf test is successful
sudo systemctl enable --now nginx
sudo systemctl status nginx
Шаг 15. Для проверки зайти в веб-интерфейс администратора Avanpost DS.
Шаг 17. Добавить директории Avanpost DS в исключения антивируса.
Шаг 18. Включить автоматическое управление конфигурационными файлами PowerDNS.
sudo nano /opt/avanpost/ads/config/config.yaml
service_control:
dns_control: true
Шаг 19. Настроить автоматическое управление конфигурационными файлами PowerDNS.
sudo dnf install krb5-workstation acl cyrus-sasl-gssapi
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 *
sudo visudo -c
#/etc/sudoers: parsed OK
#/etc/sudoers.d/ads: parsed OK
/etc/sudoers: parsed OK #успешно обработан
/etc/sudoers.d/ads: is mode 0662, should be 0440 #некорректные права доступа, должны быть 0440
sudo chmod 440 /etc/sudoers.d/ads
sudo mv /etc/krb5.conf /etc/krb5.conf.old
sudo nano /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УР]
[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
sudo chmod 644 /etc/krb5.conf
sudo chmod 644 /etc/krb5.keytab
Шаг 20. Выдать ACL разрешения на директории PowerDNS.
sudo setfacl -R -m u:ads:rw /etc/pdns
sudo setfacl -R -m u:ads:rw /etc/pdns-recursor
Шаг 21. Включить и запустить сервисы "pdns", "pdns-recursor".
sudo systemctl enable --now pdns
sudo systemctl enable --now pdns-recursor
Шаг 22. Перезапустить сервис "ads".
sudo systemctl restart ads.service
Шаг 23. Проверить, что DNS зона создана.
Шаг 24. Проверить DNS записи зоны прямого просмотра.
dig srv _ldap._tcp.[Домен2ур].[Домен1ур]
dig srv _ldap._tcp.avanpost.local
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.
dig srv _ldap._tcp.avanpost.local -p 5300 #[pdns]
dig srv _ldap._tcp.avanpost.local -p 53 #[pdns-recursor]
Шаг 25. Проверить DNS записи зоны обратного просмотра.
dig -x [IP PDNS сервера]
dig -x 192.168.1.11
dig -x 192.168.1.11 -p 5300 #[pdns]
dig -x 192.168.1.11 -p 53 #[pdns-recursor]

