Установка КриптоАРМ через групповые политики ALD Pro
Введение
В современных условиях эффективное управление рабочими местами и безопасностью пользователей невозможно без централизованного контроля. ALD Pro (Astra Linux Directory Professional) выполняет роль контроллера домена и обеспечивает создание и применение групповых политик, автоматизацию настройки рабочих станций, управление правами пользователей и программным обеспечением, поддерживая единообразие конфигураций и соблюдение корпоративных требований безопасности.
ALD Pro представляет собой набор сетевых служб сервера Astra Linux для построения службы каталога и централизованного управления ИТ-инфраструктурой. Являясь штатной службой каталога для Astra Linux, продукт позволяет снизить дрейф настроек, упростить администрирование и сократить затраты на сопровождение при внедрении отечественных операционных систем.
В рамках изучения решения будут даны практические рекомендации по его внедрению и настройке, а также подробный разбор групповых политик ALD Pro, позволяющий организациям оптимизировать ИТ-процессы, включая централизованное распространение программного обеспечения для всех доменных пользователей.
Конфигурация домена
Для реализации домена будем использовать виртуальную среду Virtual Box. Для этого нам понадобится организовать и настроить виртуальную машину, представляющую собой контроллер домена. А также развернуть на отдельных виртуальных машинах дополнительные службы. Основная цель моделирования работы в виртуальной среде – создание минимального стенда для демонстрации сценария полноценной установки программного обеспечения (ПО) на клиентские машины.
При формировании конфигурации домена будем использовать настройки, которые предложены в материалах разработчиков ALD Pro. В частности, виртуальные машины будут подключены к сети NAT 10.0.1.1/24 и имя домена сформировано в виде ald.company.lan.
Для развертывания контроллера домена ALD Pro 3.0.0 будет использована ОС версии 1.7.7UU2 (конфигурации «Смоленск»). На это надо обратить особое внимание, т.к. на ОС более свежих версий при попытке установки контроллера домена возникают ошибки.
В целях упрощения работ по развертыванию стенда конфигурация этой виртуальной машины будет использоваться в качестве сервера репозиториев и клиентских рабочих мест, методом клонирования на определенном этапе установки и настройки.
На рисунке 2 представлена архитектура стенда, на котором выполняется проверка сценария:
Развертывание контроллера домена ALD Pro 3.0.0
Для развертывания контроллера домена была создана виртуальная машина в конфигурации:
- Имя: dc-1.ald.company.lan
- Папка машины: по умолчанию
- Тип: Linux
- Версия: Other Linux (64-bit)
- Объем памяти: 4096 МБ
- Жесткий диск: создать новый виртуальный жесткий диск
- Тип файла: VDI (VirtualBox Disk Image)
- Формат хранения: Динамический виртуальный жесткий диск
- Путь: по умолчанию
- Размер: 25 ГБ
- Процессор: 2 ядра
- Сеть: Сеть NAT (имя ALD Pro, IPv4 префикс: 10.0.1.0/24)
- Версия ОС: Astra Linux 1.7.7UU2
Настройка сетевого интерфейса для обновления системы
Для редактирования параметров сетевого интерфейса, входим в настройки Параметры соединений (Проводное соединение 1) и выставляем значения:
- IP-адрес:10.0.1.10
- Маска: 24 или 255.255.255.0
- Шлюз: 10.0.1.1
- Сервер DNS: 77.88.8.8
Чтобы изменения вступили в силу, производим выключение и включение обратно поддержки сети. Проверяем работоспособность соединения с сервером репозиториев dl.astralinux.ru:
Подключение репозиториев
Перед установкой пакетов ALD Pro необходимо обновить установленную систему из репозиториев main и extended. Для операционной системы ALSE 1.7.7 UU2 (1.7.7.9) добавляем в файл /etc/apt/sources.list необходимые репозитории:
deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.7/uu/2/repository-base/ 1.7_x86-64 main contrib non-free deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.7/uu/2/repository-extended/ 1.7_x86-64 main contrib non-free
После изменения состава репозиториев, обновляем индекс доступных пакетов с помощью команды sudo apt update.
Выполняем обновление пакетов с помощью команды:
sudo apt dist-upgrade -y -o Dpkg::Options::=--force-confold
На этом этапе можно выполнить клонирование виртуальной машины для последующего развертывания сервера репозиториев и клиентского рабочего места. После клонирования, естественно нужно будет изменить имя хоста и сетевые адреса.
Установка параметров сетевого интерфейса контроллера домена
Настало время изменить настройки сетевого интерфейса, которые будут использоваться для постоянной работы контроллера домена. Для этого требуется отключить службу NetworkManager командами:
sudo systemctl stop NetworkManager sudo systemctl disable NetworkManager sudo systemctl mask NetworkManager systemctl status NetworkManager
Изменяем настройки сетевого интерфейса в файле /etc/network/interfaces:
Чтобы применить эти новые настройки, достаточно перезапустить службу networking командой systemctl restart networking. Может потребоваться также очистить старое соединение командой ip addr flush dev <имя устройства>:
sudo ip addr flush dev eth0 sudo systemctl restart networking

Для возможности обращения компьютера к публичным репозиториям по DNS-именам настраиваем файл /etc/resolv.conf

Добавление репозитория продукта ALD Pro 3.0.0
Чтобы подключить репозиторий ALD Pro создаем файл /etc/apt/sources.list.d/aldpro.list и вносим в него ссылку на репозиторий: deb https://dl.astralinux.ru/aldpro/frozen/01/3.0.0/ 1.7_x86-64 main base
После изменения настроек репозиториев, обновляем индекс пакетов: sudo apt update

Настройка имени контроллера домена
Имя хоста должно быть задано в формате полного имени FQDN (от англ. Fully Qualified Domain Name), например, dc-1.ald.company.lan. Для изменения имени хоста в Astra Linux рекомендуется использовать утилиту hostnamectl, так как после прямого редактирования файла /etc/hostname изменения вступают в силу не сразу, а только после перезагрузки системы.
sudo hostnamectl set-hostname dc-1.ald.company.lan
Содержимое файла /etc/hosts должно быть следующим:
127.0.0.1 localhost.localdomain localhost 10.0.1.11 dc-1.ald.company.lan dc-1
Установка пакетов контроллера домена
Теперь система готова к установке серверной части ALD Pro. Выполним команду для установки необходимых пакетов:
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -q aldpro-mp aldpro-gc aldpro-syncer
Сразу после установки пакетов контроллера домена рекомендуется удалить локатор библиотеки libkrb5 от службы winbind, который может приводить к значительным задержкам в работе Kerberos-аутентификации на контроллере домена. Сделать это можно следующей командой:
sudo rm /usr/lib/x86_64-linux-gnu/krb5/plugins/libkrb5/winbind_krb5_locator.so
Прежде чем продолжить, можно проверить журнал пакетного менеджера /var/log/apt/term.log на предмет ошибок. Если установка прошла корректно, то следующая команда не должна показать никаких строк:
sudo grep 'error:' /var/log/apt/term.log
Повышение роли сервера до контроллера домена
В домене повышение роли сервера выполняется с помощью мастера настройки доменных служб, в домене ALD Pro для этого предназначена утилита aldpro-server-install:
sudo aldpro-server-install --host dc-1 --domain ald.company.lan --ip 10.0.1.11 --setup_gc --setup_syncer --no-reboot
После повышения роли сервера перезагружаем машину и входим под доменной учетной записью.
Для настройки домена будем использовать веб-интерфейс управления, который доступен по адресу https://dc-1.ald.company.lan/ad/ui/#/:
Ввод в домен клиентской машины
Используем клонированную виртуальную машину, чтобы добавить клиента в домен ald.company.lan. В данном случае это будет сервер репозиториев repo-1.ald.company.lan. Сгенерируем новый идентификатор машины, чтобы при необходимости использования динамической настройки от DHCP она получала собственный IP-адрес:
sudo rm -fv /etc/machine-id sudo rm -fv /var/lib/dbus/machine-id sudo dbus-uuidgen --ensure sudo systemd-machine-id-setup
Сгенерируем новые ssh-ключи, чтобы у всех компьютеров они были разными:
sudo rm -fv /etc/ssh/ssh_host_* sudo ssh-keygen -A -v
Изменим параметры сети NetworkManager, установив на вкладке «Параметры IPv4» значения:
- Метод: Вручную
- Рабочие станции обычно получают сетевые настройки от DHCP-сервера, но в целях упрощения мы будем назначать адрес вручную
- Адрес: 10.0.1.51 (в соответствии с описанием тестового стенда)
- Маска: 24 или 255.255.255.0
- Шлюз: 10.0.1.1 (адресом шлюза VirtualBox является первый IP-адрес сети)
- Серверы DNS: 10.0.1.11 (адрес dc-1.ald.company.lan)
- Поисковый домен: ald.company.lan (это значение будет добавляться к коротким именам)
Для установки клиентской части ALD Pro используются те же репозитории, что и для установки серверной части, поэтому содержимое файлов /etc/apt/sources.list и /etc/apt/sources.list.d/aldpro.list должно быть аналогичным.
Установим для файла /etc/apt/sources.list следующее содержимое:
deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.7/uu/2/repository-base/ 1.7_x86-64 main contrib non-free deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.7/uu/2/repository-extended/ 1.7_x86-64 main contrib non-free
Добавим файл /etc/apt/sources.list.d/aldpro.list с добавленным репозиторием: deb https://dl.astralinux.ru/aldpro/frozen/01/3.0.0/ 1.7_x86-64 main base
После изменения настроек репозиториев не забываем обновить индекс пакетов: sudo apt update
Далее нужно обновить пакеты с помощью команды: sudo apt dist-upgrade -y -o Dpkg::Options::=--force-confold
Теперь система готова к установке клиентской части ALD Pro. Выполним команду: sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -q aldpro-client
Проверить значение на уникальность можно с помощью утилиты host. По приведенному далее примеру можно заметить, что имя dc-1 уже используется хостом с IP-адресом 10.0.1.11, а имя repo-1 еще свободно:
host dc-1.ald.company.lan
host repo-1.ald.company.lan
Перед вызовом утилиты рекомендуется отключать запись истории команд, так как в одном из параметров передается пароль администратора в открытом виде. Отключим ведение истории:
set +o history
Выполним присоединение компьютера к домену из консоли:
sudo /opt/rbta/aldpro/client/bin/aldpro-client-installer --host repo-1 --domain ald.company.lan --account admin --gui
Делаем перезагрузку.
Организация сервера репозиториев в доменной структуре ALD Pro
Описание создания сервера репозиториев ПО у разработчиков ALD Pro описано здесь. Адаптируем эти инструкции под наш случай и создадим репозитория для распространения продукта КриптоАРМ версии 6.
Пакеты продукта КриптоАРМ необходимой версии можно найти по адресу https://ftp.digt.ru.
Запускаем одновременно две виртуальные машины dc-1.ald.company.lan и repo-1.ald.company.lan. Проверяем доступность клиентской машины из контроллера домена и наоборот по сети. Через веб-интерфейс контроллера домена выбираем раздел «Установка и обновление ПО» и заходим в пункт меню «Репозитории ПО». Изначально, страница с серверами репозиториев ПО будет пустой.
Здесь нужно нажать на кнопку «Развернуть сервер репозиториев ПО», чтобы открыть мастер добавления нового сервера. В мастере указываем (а точнее выбираем из предлагаемого списка) клиентскую машину, уже введенную в домен, которая будет служить сервером репозиториев и выбираем имя сайта (тоже предлагается по умолчанию).
Обязательно нажимаем на кнопку «Сохранить». Запись об указанном сервере репозиториев появляется на странице «Репозитории ПО», но создание сервера займет определенное время. Для контроля установки сервера нужно перейти по гиперссылке repo-1.ald.company.lan и мы окажемся на вкладке с описанием сервера репозиториев.
На вкладке имеется журнал событий, с которого можно периодически снимать статус операции. Как видно из журнала с момента отправки запроса на установку подсистемы, до успешного завершения процесса проходит довольно много времени.
Сервер репозиториев успешно развернут, теперь приступим к созданию непосредственно самого репозитория ПО. Оставаясь в разделе «Установка и обновление ПО», откроем первую вкладку «Репозитории ПО». Изначально эта страница также является пустой.
По кнопке «Новый репозиторий» открывается мастер создания репозитория, где вводим название репозитория – «cryptoarm», вводим небольшое описание и относительный путь «/cryptoarm». Обязательно нужно нажать «Сохранить».
После сохранения получим новую запись на странице.
Затем входим в созданный репозиторий по гиперссылке и на вкладке «Версия», создаем новую версию по одноименной кнопке. При этом будет открыт мастер, где нам нужно заполнить обязательные поля.
Выбираем тип источника – пакеты, так как будем использовать готовый deb-пакет распространяемого ПО. Добавляем источник, метку, версию и сохраняем изменения. Теперь нам доступна загрузка пакетов на вкладке «Текущее содержимое». Скачиваем свежую версию КриптоАРМ с помощью команд:
wget https://ftp.digt.ru/web/PublicReleases/CryptoARM_6/v6.2.24/cryptoarm-6.2.24-linux64-x86.deb mv cryptoarm-6.2.24-linux64-x86.deb "cryptoarm-$(dpkg -f cryptoarm-6.2.24-linux64-x86.deb Version).deb"
И с помощью кнопки «Загрузить пакет» выбираем его в диалоге.
После загрузки дистрибутив ПО отобразится на странице.
Для того чтобы репозиторий стал доступен пользователям, его нужно опубликовать, нажав кнопку «Опубликовать». После публикации дистрибутива на вкладке «Основное» появится абсолютный путь к данному репозиторию ПО.
Если мы перейдем по ссылке абсолютного пути, то нам отобразится структура репозитория, следующего вида:

Можно считать, что задача создания сервера репозиториев и публикация нашего первого репозитория ПО завершена. Далее необходимо прописать этот репозиторий на те клиентские машины, где планируется установка данного ПО. Сделаем это через групповые политики.
Групповая политика распространения опубликованного репозитория КриптоАРМ
Создадим дополнительный параметр групповых политик для добавления на клиентских машинах нового репозитория. Перейдем в раздел «Управление доменом» и войдем в пункт меню «Доп. параметры групповых политик». Откроется вкладка с каталогом дополнительных параметров.
Нужно нажать на кнопку «Новый параметр» и в открывшемся мастере заполнить дополнительные поля. Название параметра может быть любым, и оно необходимо только для выбора параметра в интерфейсе управления политиками, поэтому введем название: Репозиторий установки КриптоАРМ. Уникальный идентификатор будет использоваться для формирования полного идентификатора, поэтому зададим значение: cryptoarm_repo_list. На его основе формируется полный идентификатор вида rbta_ldap_custom_gp_host_cryptoarm_repo_list, который мы позднее используем в скриптах. Тип каталога присваивается по умолчанию – Параметр компьютерной групповой политики. Тип параметры выберем из предлагаемого списка в виде составного параметра, для дополнительной гибкости настройки безопасности. Папку параметра оставим по умолчанию – Дополнительные параметры. В поле Назначение параметра можно внести краткое описание. Вот что должно получиться:
Обязательно сохраняем изменения и параметр успешно создается. Теперь нам доступны для заполнения вкладки «Атрибуты параметра» и «Конфигурация скрипта». Добавим новый атрибут параметра с именем «Источник» и идентификатором cryptoarm_repo_item.
На вкладке «Конфигурация скрипта» в окно редактора добавим скрипт Salt следующего вида:
{% set id = 'rbta_ldap_custom_gp_host_cryptoarm_repo_list' %}
{% set node = salt['grains.get']('nodename') %}
{% set gpo = salt['pillar.get']('aldpro-hosts:' + node + ':' + id) %}
{% set filename = '/etc/apt/sources.list.d/cryptoarm_repo.list' %}
{% set lines = [] %}
{% if gpo %}
{%- for item in gpo %}
{%- if item.cryptoarm_repo_item.lower() != 'none' %}
{%- do lines.append(item.cryptoarm_repo_item) %}
{%- endif %}
{%- endfor %}
{% endif %}
{{ id }}:
{%- if lines|length == 0 %}
file.absent:
- name: {{ filename }}
{%- else %}
file.managed:
- name: {{ filename }}
- user: root
- group: root
- mode: 644
- contents:
{%- for line in lines %}
- {{ line }}
{%- endfor %}
{%- endif %}
Данный скрипт будет создавать файл /etc/apt/sources.list.d/cryptoarm_repo.list, настраивать права и добавлять в файл указанные в виде параметра источники (опубликованные репозитории) для загрузки пакетов устанавливаемого ПО.
Теперь нам нужно настроить групповую политику. Для этого открываем раздел «Групповые политики» и открываем одноименный пункт меню. Создаем новую групповую политику Добавление репозитория.
После сохранения становятся доступны следующие вкладки. Нас интересует вкладка «Параметры компьютеров». Выберем ранее созданный дополнительный параметр и установим для атрибута Источник строку в формате репозитория, которая будет добавлена в файл cryptoarm_repo.list:
deb [trusted=yes] http://repo-1.ald.company.lan/repos/cryptoarm/ cryptoarm main
Также необходимо переключить состояние на Включено (это можно сделать вручную, если в выпадающем списке не будет такого значения) и обязательно применить внесенные изменения.
Затем нужно перейти на вкладку «Подразделения» и добавить новое подразделение, в которое можно включить доступные клиентские машины, введенные в домен.
К выбранным машинам будет применяться созданная групповая политика. Чтобы не дожидается ее применения, можно использовать команду для формированного применения политик на клиенте:
sudo aldpro-gpupdate --gp
После успешного применения политик просматриваем на клиенте каталог /etc/apt/sources.list.d и убеждаемся в наличии файла с записью о репозитории, который мы создали и опубликовали на repo-1.ald.company.lan.
Переходим к созданию групповой политики установки КриптоАРМ из репозитория на рабочее место.
Настройка распространения ПО КриптоАРМ на клиентские рабочие места
Откроем вкладку «Каталог ПО» и добавим программное обеспечение.
Сохраняем изменения и открываем созданное ПО «КриптоАРМ 6» на редактирование. На вкладке «Пакеты» добавляем новый пакет (выбираем из списка, так как deb пакет уже загружен и размещен в репозитории), так же не забываем выбрать версию пакета.
Переходим в раздел «Политики ПО». Создаем новую политику «Установка КриптоАРМ 6». Не забываем сохранить изменения.
Добавляем подразделение для применения политики.
sudo apt-cache policy cryptoarm6 sudo aldpro-gpupdate --swp
При помощи групповых политик удалось установить приложение КриптоАРМ на клиентскую машину client-1.ald.company.lan. Приложение работает с использованием временной лицензии, чтобы установить постоянную лицензию у производителей были запрошены лицензионные ключи, которые через групповые политики нужно распространить на клиентские машины.
Проблема заключается в том, что скрипт групповой политики исполняется непосредственно на клиентской машине, поэтому самая простая реализация распространения лицензий заключается в их включении в виде словаря {"client-1": "CC6VP-APVTA-DJAKF-PCXFW-TQWFW-XRFVX-JATFM", "client-2": "CC6XH-KHCWK-XCWKA-PCXFQ-RCKMV-XTKJT-HJXTA"} в Salt скрипт групповой политики. Это удобно, если количество продуктов и клиентских машин небольшое, в противном случае сценарий значительно усложняется. Например, можно размещать файлы с лицензиями на файловом сервере и предоставлять к ним доступ клиентских машин после их авторизации для получения необходимых лицензий, или, более предпочтительный вариант – организация сервера выдачи лицензий в доменной структуре, к которому клиентские машины могут обращаться по предоставленному API. Но все эти сценарии потребуют дополнительных компонент, поэтому в этой статье мы рассмотрим самый простой способ установки лицензий.
Групповая политика распространения лицензий КриптоАРМ
Ранее мы уже создавали дополнительные параметры групповых политик, пройдем по тому же пути. Открываем раздел «Управление доменов» и входим в меню «Доп. параметры групповых политик». Создаем новый параметр под названием «Лицензии КриптоАРМ 6», также с размещением в каталоге «Дополнительные параметры».
Обязательно сохраняем изменения и нам становятся доступны для редактирования следующие вкладки. Вкладку «Атрибуты параметра» пропускаем – никаких дополнительных параметров, которые будут использоваться в скрипте нам не потребуется. На вкладке «Конфигурация скрипта» вводится сам Salt скрипт.
Вид Salt скрипта по созданию файла license.lic и добавления в него лицензии на КриптоАРМ:
{% set node = salt['grains.get']('nodename') %}
{% set hostname = node.split('.')[0] %}
{% set licenses = {"client-1": "CC6VP-APVTA-DJAKF-PCXFW-TQWFW-XRFVX-JATFM", "client-2": "CC6XH-KHCWK-XCWKA-PCXFQ-RCKMV-XTKJT-HJXTA"} %}
{% set directory_path = '/etc/opt/Trusted/CryptoARM 6/' %}
{% set license_file_path = '/etc/opt/Trusted/CryptoARM 6/license.lic' %}
{% set license_entry = licenses.get(hostname) %}
{{ directory_path }}:
file.directory:
- user: root
- group: root
- mode: 755
{{ license_file_path }}:
file.managed:
- user: root
- group: root
- mode: 644
- contents: >
{% if license_entry %}
{{ license_entry | trim }}
{% else %}
# Лицензия для хоста {{ hostname }} не найдена.
{% endif %}
Кратко разберем структуру скрипта. В переменную node мы получаем доменное имя хоста, к которому применяется групповая политика, например, client-1.ald.company.lan. В переменную hostname мы выделяем имя client-1 и в соответствии с этим именем из словаря licenses получаем лицензионный ключ в переменную license_entry. Далее проверяется наличие директории размещения ключа '/etc/opt/Trusted/CryptoARM 6/', если ее нет, то она создается. В директории формируется файл license.lic, куда помещается лицензионный ключ. Приложение КриптоАРМ автоматически считывает лицензионный ключ при запуске из данной директории.
Чтобы применить этот скрипт, переходим в раздел «Групповые политик» и заходим в одноименное меню. Назовем групповую политику «Распространение лицензий».
Сохраняем изменения и переходим на вкладку «Параметры компьютеров», где уже отображается созданный ранее дополнительный параметр, остается изменить его состояние – на «Включено».
Для проверки работы групповой политики на клиентской машине инициируем ее форсированное применение с помощью команды:
sudo aldpro-gpupdate --gp
После успешного выполнения смотрим наличие и содержимое файла license.lic.
Убеждаемся, что ключ лежит по определенному пути. Запуск КриптоАРМ на клиентской машине приводит к загрузке данного лицензионного ключа.
Заключение
В процессе решения задачи по управлению программным обеспечением с использованием групповых политик ALD Pro, были достигнуты результаты, которые демонстрируют реализуемость представленного решения. Центральное управление через групповые политики домена ALD Pro не только упрощает процессы установки и обновления программного обеспечения, но и значительно повышает уровень безопасности в корпоративной среде.
Создание виртуальной среды для демонстрации работы ALD Pro позволило наглядно продемонстрировать возможности системы. Настройка домена с использованием предложенных разработчиками рекомендаций обеспечивает надежное функционирование всех компонентов. В результате внедрения ALD Pro организации могут оптимизировать свои ИТ-процессы, минимизировав временные затраты и усилия, связанные с ручными операциями. Данные рекомендации могут служить основой для дальнейшего изучения и внедрения системы в других организациях, стремящихся к повышению продуктивности и безопасности своих рабочих мест.
Таким образом, ALD Pro представляет собой мощный инструмент, способствующий эффективному управлению программным обеспечением в современных условиях.
Обсудим в чате, запишем на демонстрацию или отправим нужные
материалы — выбирайте удобный способ связи!