Настройка и запуск Prohibitor
prohibitor - Сервис проверки полномочий предназначен для контроля и блокировки Поставщиком обращений к данным своей Витрины с использованием Регламентированных SQL-запросов (РЗ).
Установка Prohibitor опциональна, если Агент СМЭВ4 используется исключительно в качестве ПО, обеспечивающего доступ к данным посредством СМЭВ.
Действия (успешные и неуспешные), совершенные пользователями Сервиса проверки полномочий, логируются для передачи в систему сбора событий Аудита (SIEM) на стороне Поставщика данных. Перечень логируемых действий:
создание пользователя;
удаление пользователя;
блокировка и разблокировка пользователя;
блокировка и подтверждение полномочия на выполнение РЗ.
Внимание
Для соблюдения требований безопасности к сертифицированному Агенту ПОДД в контуре Поставщика рекомендуется:
развернуть систему сбора событий Аудита (SIEM);
хранить во внешней системе сбора событий Аудита (SIEM) данные аудита Сервиса проверки полномочий минимум один год.
Порядок загрузки данных и программ
Администратор УВ осуществляет развёртывание, запуск и настройку prohibitor с помощью данного руководства.
Предварительные операции (установка «пре-реквизитов»)
Перед запуском prohibitor выполнить от имени пользователя root следующие действия:
Создать пользователя {{user}} и группу {{user_group}}, под которым будет работать prohibitor. Создать каталог /distr/prohibitor, владельцем данного каталога назначить пользователя {{user}}
Установить java (дистрибутив приобретается пользователем. Версия в примере может отличаться от версии, купленной пользователем):
Для Astra Linux
dpkg -i axiomjdk-jdk-pro17.0.4.1+1-linux-amd64-astra.deb
Для РЕД ОС
yum localinstall axiomjdk-jdk-pro17.0.4.1+1-linux-amd64.rpm
Установить системные переменные:
export JAVA_HOME=/usr/java
export PATH=$PATH:$JAVA_HOME/bin
Рекомендуется внести данную настройку в profile пользователя либо в системный profile (/etc/profile.d/)
Выложить в каталог
/distr/prohibitorконфигурационный файлapplication.yml, подготовленный согласноprohibitor_config, в/distr/prohibitor/configвыложить подготовленный файлlogback.xml. В/distr/prohibitor/appвыложить исполняемый файл из пакета поставки (располагается в дистрибутивном пакете по пути /prohibitor/app.jar)Доступ к админ-консоли prohibitor необходимо проксировать с помощью внешних инфраструктурных решений. Указанный прокси должен поддерживать работу клиента с ним только по ГОСТ TLS. Прямой доступ к порту админ-консоли prohibitor необходимо ограничить средствами ОС или инфраструктуры, для недопущения прямого доступа к нему пользователей по нешифрованному протоколу.
Настройка БД для работы Сервиса проверки полномочий
Установить СУБД PostgresPro 15 (Дистрибутив и лицензия преобретаются пользователем самостоятельно у производителя: https://postgrespro.ru и устанавливается согласно документации от производителя
2. Подключится к БД PostgreSQL с административным аккаунтом и выполнить SQL команды ниже. Используйте собственные имя БД, имя пользователя и пароль, эти же данные должны быть указаны в конфигурационном файле сервиса prohibitor:
(см. prohibitor_config)
CREATE DATABASE prohibitor;
CREATE USER dbadmin_prohibitor WITH ENCRYPTED PASSWORD '<postgres_pass>' NOSUPERUSER CREATEROLE CREATEDB INHERIT LOGIN NOREPLICATION;
ALTER DATABASE prohibitor OWNER TO dbadmin_prohibitor;
Следующие команды следует выполнять от имени пользователя, подключенного к БД prohibitor с административным аккаунтом:
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO dbadmin_prohibitor;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO dbadmin_prohibitor;
С помощью инструмента liquidbase выполнить в созданной БД скрипты создания структуры БД Для этого в консоли выполнить следующие команды:
export LIQUIBASE_COMMAND_URL=jdbc:postgresql://{{ postgres_host }}:{{ postgres_port }}/prohibitor;
export LIQUIBASE_COMMAND_USERNAME=dbadmin_prohibitor;
export LIQUIBASE_COMMAND_PASSWORD={{ postgres_pass }};
export LIQUIBASE_COMMAND_CHANGELOG_FILE=/<path>/changelog.xml;
liquibase update
Если отсутствует Liquidbase, его необходимо установить по инструкции производителя: https://docs.liquibase.com/install/liquibase-linux.html.
Запуск Prohibitor
Убедитесь, что пользователь {{user}} имеет доступ к директориям, в которой установлен prohibitor: /distr/prohibitor.
Пример раздела конфигурации скрипта для запуска prohibitor с использованием сервиса systemd
Данный файл, с названием prohibitor.service, необходимо сохранить в каталог /etc/systemd/system/, скорректировав, при необходимости, пути к файлам
[Unit]
Description="Service for prohibitor"
After=syslog.target
[Service]
Type=simple
WorkingDirectory=/distr/prohibitor
User={{user}}
Group={{user_group}}
Environment="JAVA_HOME=/usr/java"
Environment="JDK_JAVA_OPTIONS=--add-exports=java.base/sun.security.util=ALL-UNNAMED \
--add-exports=java.base/sun.security.x509=ALL-UNNAMED \
--add-exports=java.base/sun.security.pkcs=ALL-UNNAMED \
--add-exports=java.base/sun.security.provider=ALL-UNNAMED \
--add-exports=java.base/sun.security.tools.keytool=ALL-UNNAMED \
--add-exports=java.base/sun.net=ALL-UNNAMED \
--add-opens=java.base/jdk.internal.misc=ALL-UNNAMED \
--add-opens=java.base/java.lang=ALL-UNNAMED \
--add-opens=java.base/java.nio=ALL-UNNAMED \
--add-opens=java.xml/org.w3c.dom=ALL-UNNAMED \
-Dsaffron.default.charset=UTF-16LE \
-Dsaffron.default.collation.name='UTF-16LE$en_US' \
-Dsaffron.default.nationalcharset=UTF-16LE \
-XX:MaxRAMPercentage=80.0 \
-XX:+UnlockExperimentalVMOptions \
-XX:InitiatingHeapOccupancyPercent=16 \
-XX:+UseStringDeduplication \
-XX:+G1EagerReclaimHumongousObjects \
-XX:+G1EagerReclaimHumongousObjectsWithStaleRefs \
-XX:G1HeapWastePercent=2 \
-XX:G1MaxNewSizePercent=25 \
-XX:G1MixedGCLiveThresholdPercent=15 \
-XX:+UseG1GC"
ExecStart=/usr/java/bin/java -cp app/* -jar app/app.jar
[Install]
WantedBy=multi-user.target
Далее от имени пользователя root необходимо выполнить команду по включению, запуску сервиса и проверке его статуса:
systemctl daemon-reload
systemctl enable prohibitor
systemctl start prohibitor
systemctl -l status prohibitor