Установка Avanpost DS на контроллер домена Astra 1.7 и 2.12 из архива .tar

ВАЖНО!

Контроллеры в пределах одного домена должны быть развернуты на одинаковых ОС.

ВАЖНО!

У каждого контроллера должен быть статический ip адрес.
В качестве DNS сервера на каждом контроллере необходимо указать 127.0.0.1

ВАЖНО!

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

Для установки Avanpost DS Server из архива .tar на контроллер домена под управлением ОС Astra 1.7 и 2.12. и интеграции PowerDNS требуется выполнить шаги:

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

Шаг 1. Обновить список пакетов.

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

sudo apt update

Шаг 2. Задать имя сервера.

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

2.1. Выполнить команды по шаблону:

sudo hostnamectl set-hostname [FQDN]
sudo sed -i "1i 127.0.0.1 [FQDN]" /etc/hosts

Заменить [FQDN] на желаемое полное доменное имя сервера (FQDN), на котором производится установка.

В примере задается hostname "ds01.avanpost.local".

sudo hostnamectl set-hostname ds01.avanpost.local
sudo sed -i "1i 127.0.0.1 ds01.avanpost.local" /etc/hosts

2.2. В конфигурационном файле "/etc/hosts" указать в первой строке значение "127.0.0.1 [FQDN]".

Открыть /etc/hosts
sudo nano /etc/hosts
Пример /etc/hosts
127.0.0.1 ds01.avanpost.local #127.0.0.1 [FQDN] 
127.0.0.1 localhost 
[::1] ds01.avanpost.local

Шаг 3. Установить необходимые пакеты.

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

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

sudo apt install openssl nginx xmlsec1 libxmlsec1-openssl dnsutils ssh sssd libsss-sudo krb5-user libsasl2-modules-gssapi-heimdal acl

3.2. Создать файл "/etc/apt/sources.list.d/debian.list" и открыть его для редактирования.

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

3.3. Добавить в файл "/etc/apt/sources.list.d/debian.list" две записи о новых репозиториях.

/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.4. Добавить ключи репозиториев.

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 605C66F00D6C9793
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6ED0E7B82643E131
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0E98404D386FA1D9

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

sudo nano /etc/apt/sources.list

3.6. Закомментировать все репозитории в файле "/etc/apt/sources.list" (как минимум на время установки Avanpost DS).

/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

3.7. Очистить сохраненные списки пакетов, содержащие информацию из ранее использовавшихся репозиториев.

sudo rm -rf /var/lib/apt/lists/*

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

sudo apt update

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

sudo apt install pdns-server pdns-backend-ldap pdns-recursor

Во время установки пакетов в консоли будет запрошена информация. Необходимо отвечать согласно таблице:

ВопросОтвет
Restart services during package upgrades without asking? [yes/no]yes
Файл настройки "/etc/locale/alias" изменен с момента установки. Автор пакета предоставил обновленную версию. Что нужно сделать?
По умолчанию сохраняется текущая версия файла настройки.
*** locale.alias (Y/I/N/O/D/Z) [по умолчанию N] ?
N

Шаг 4. Создать техническую учетную запись "ads" .

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

useradd -d /opt/avanpost -s /sbin/nologin ads

Шаг 5. Создать каталоги "/opt/avanpost/ads" и "/opt/avanpost/tools".

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

sudo mkdir -p /opt/avanpost/ads
sudo mkdir -p /opt/avanpost/tools

Шаг 6. Загрузить дистрибутивы Avanpost DS на сервер по SFTP.

Например, можно загрузить дистрибутивы в директорию "/tmp".

Примечание

Вместо SFTP можно воспользоваться SCP:

Шаблон команды
scp [Путь до архива] [реквизиты для подключения по SSH]:[Полный путь папки назначения]
Пример команды
scp /home/admin/Avanpost.DS.Server.Linux.v*.tar.gz root@192.168.1.11:/tmp/

Шаг 7. Распаковать файлы дистрибутива из архива в директории "/opt/avanpost/ads" и "/opt/avanpost/tools".

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

sudo tar -xvzf /tmp/Avanpost.DS.Server.Linux.v*.tar.gz -C /opt/avanpost/ads
sudo tar -xvzf /tmp/Avanpost.DS.Server.Linux.Tools.v*.tar.gz -C /opt/avanpost/tools

Шаг 8. Заполнить конфигурационный файл Avanpost DS.

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

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

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

8.2. Заполнить открывшийся файл по шаблону:

Шаблон /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"

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

Заменить в строкe 2 [IP-АДРЕС] на IP адрес сервера, где производится установка.

Заменить в строке 3 [FQDN] на полное доменное имя (FQDN) сервера, на котором производится установка.

В строке 10 необходимо установить значение:

  • true – в случае настройки первого контроллера домена;
  • false – в случае настройки второго и последующих контроллеров домена.
Пример заполненного файла /opt/avanpost/ads/config/config.yaml
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.

Шаг 9. Зарегистрировать систему в systemd.

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

9.1. Открыть для редактирования файл "/etc/systemd/system/ads.service".

sudo nano /etc/systemd/system/ads.service

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

/etc/systemd/system/ads.service
[Unit]
Description=Avanpost Directory Service
  
[Service]
WorkingDirectory=/opt/avanpost/ads
ExecStartPre=+/usr/sbin/setcap CAP_NET_BIND_SERVICE=+eip /opt/avanpost/ads/cmd/ads/ads
ExecStart=/opt/avanpost/ads/cmd/ads/ads
Restart=always
RestartSec=10
SyslogIdentifier=ads
User=ads
Environment="CONFIG=/opt/avanpost/ads/config/config.yaml"
  
[Install]
WantedBy=multi-user.target

Шаг 10. Установить пользователя "ads" владельцем каталога "/opt/avanpost".

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

sudo chown -R ads:ads /opt/avanpost

Шаг 11. Разрешить сервису "ads" открывать привилегированные порты.

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

sudo setcap CAP_NET_BIND_SERVICE=+eip /opt/avanpost/ads/cmd/ads/ads

Примечание

Сервис "ads" использует привилегированные порты (порты, номера которых < 1024) для служб LDAP и Kerberos.

Шаг 12. Добавить сервис "ads" в автозапуск и запустить его.

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

sudo systemctl daemon-reload
sudo systemctl enable --now ads

Шаг 13. Проверить работу сервиса "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

Шаг 14. Запустить первичную репликацию и добавить новый контроллер домена в существующую топологию. (Только для вторичных контроллеров домена)

Внимание!

Данный шаг необходимо выполнять только при настройке второго и последующих контроллеров в домене.
При настройке первого контроллера данный шаг требуется пропустить.

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

Шаблон команды
/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

Шаг 15. Опубликовать интерфейс системы на веб-сервере Nginx.

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

15.1. Создать конфигурационный файл "ads.conf"

sudo nano /etc/nginx/conf.d/ads.conf

15.2. Открывшийся файл необходимо заполнить по шаблону:

Шаблон 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;
    }
}

Заменить в строке 3 [FQDN] на полное доменное имя (FQDN) сервера, на котором производится установка. (В примере: "ds01.avanpost.local")

Пример заполненного ads.conf
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;
    }
}

15.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

15.4. Включить автоматический запуск и запустить сервис "nginx". Затем проверить, что он запущен.

sudo systemctl --now enable nginx
sudo systemctl status nginx

Шаг 16. Для проверки зайти в веб-интерфейс администратора Avanpost DS.

Для доступа к веб-интерфейсу администратора Avanpost DS необходимо в строке браузера ввести адрес:

http://[имя_контроллера_домена]

Например, http://ds01.avanpost.local

Должна открыться страница авторизации в административную консоль.

Так же можно войти в веб-интерфейс по IP адресу контроллера домена, например:

192.168.1.11

Веб-интерфейс работает на порте 8080

После ввода реквизитов учётной записи должна открыться административная консоль системы.

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

Логин: Administrator

Пароль: Avanp0st

Шаг 17. Создать дополнительного доменного пользователя с правами администратора. (Только для первичного контроллера домена)

Внимание!

Данный шаг необходимо выполнять только при настройке первого контроллера в домене.
При настройке второго и последующих контроллеров данный шаг требуется пропустить.

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

17.1. В разделе "Пользователи" веб-интерфейса администратора Avanpost DS нажать на кнопку добавления пользователя .

17.2. Заполнить все поля, нажать "Сохранить". 

17.3. Открыть карточку созданного пользователя, нажав на него в списке. Перейти на вкладку "Группы" и нажать кнопку "Добавить". 

17.4. В открывшемся окне выбрать группу "Administrators" и нажать "Добавить".

Шаг 18. Добавить директории Avanpost DS в исключения антивируса.

Если на контроллере домена используется антивирус, то для обеспечения корректной работы и быстродействия Avanpost DS требуется добавить в исключения директории, содержащие БД и логи:

  • /opt/avanpost/ads/data
  • /opt/avanpost/ads/ds-logs

Шаг 19. Выключить сервисы "pdns" и "pdns-recursor".

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

sudo systemctl stop pdns
sudo systemctl stop pdns-recursor

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

Внимание:

В случае, если автоматическое управление конфигурационными файлами PowerDNS недопустимо, необходимо настроить эти файлы вручную по инструкции: 4.2.3.2. Настройка конфигурационных файлов PowerDNS вручную Astra 1.7 и 2.12, Шаг 20 и 21 текущей инструкции пропустить.

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

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

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

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

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

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

Внимание:

В случае, если автоматическое управление конфигурационными файлами PowerDNS недопустимо, необходимо настроить эти файлы вручную по инструкции: 4.2.3.2. Настройка конфигурационных файлов PowerDNS вручную Astra 1.7 и 2.12. Шаг 20 и 21 текущей инструкции пропустить.

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

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

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

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

/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 *

21.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 выданы неправильные права.

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

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

sudo chmod 440 /etc/sudoers.d/ads

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

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

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

sudo nano /etc/krb5.conf

21.5. Заполнить файл "/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. 

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

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

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

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

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

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

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

Примечание:

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

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

sudo systemctl restart ads.service

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

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

Шаг 26. Проверить 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]

Шаг 27. Проверить 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 с прикладными системами".

Обсуждение