9. Настройка и запуск Prohibitor

prohibitor - Сервис проверки полномочий предназначен для контроля и блокировки Поставщиком обращений к данным своей Витрины с использованием Регламентированных SQL-запросов (РЗ).

Установка Prohibitor опциональна, если Агент ПОДД СМЭВ используется исключительно в качестве ПО, обеспечивающего доступ к данным посредством СМЭВ.

Действия (успешные и неуспешные), совершенные пользователями Сервиса проверки полномочий, логируются для передачи в систему сбора событий Аудита (SIEM) на стороне Поставщика данных. Перечень логируемых действий:

  • создание пользователя;

  • удаление пользователя;

  • блокировка и разблокировка пользователя;

  • блокировка и подтверждение полномочия на выполнение РЗ.

Внимание

Для соблюдения требований безопасности к сертифицированному Агенту ПОДД в контуре Поставщика рекомендуется:

  • развернуть систему сбора событий Аудита (SIEM);

  • хранить во внешней системе сбора событий Аудита (SIEM) данные аудита Сервиса проверки полномочий минимум один год.

9.1. Порядок загрузки данных и программ

Администратор УВ осуществляет развёртывание, запуск и настройку prohibitor с помощью данного руководства.

9.2. Предварительные операции (установка «пре-реквизитов»)

Перед запуском prohibitor выполнить от имени пользователя root следующие действия:

  1. Создать пользователя {{user}} и группу {{user_group}}, под которым будет работать prohibitor.

  2. Установить 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
  1. Установить системные переменные:

export JAVA_HOME=/usr/java
export PATH=$PATH:$JAVA_HOME/bin

Рекомендуется внести данную настройку в profile пользователя либо в системный profile (/etc/profile.d/)

  1. Выложить в каталог /distr/prohibitor конфигурационный файл application.yml, подготовленный согласно Формирование конфигурационного файла prohibitor, в /distr/prohibitor/config выложить подготовленный файл logback.xml.

  2. Доступ к админ-консоли prohibitor необходимо проксировать с помощью внешних инфраструктурных решений. Указанный прокси должен поддерживать работу клиента с ним только по ГОСТ TLS. Прямой доступ к порту админ-консоли prohibitor необходимо ограничить средствами ОС или инфраструктуры, для недопущения прямого доступа к нему пользователей по нешифрованному протоколу.

9.3. Настройка БД для работы Сервиса проверки полномочий

  1. Установить СУБД PostgresPro 15

2. Подключится к БД PostgreSQL с административным аккаунтом и выполнить SQL команды ниже. Используйте собственные имя БД, имя пользователя и пароль, эти же данные должны быть указаны в конфигурационном файле сервиса prohibitor: (см. Формирование конфигурационного файла prohibitor)

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;
  1. С помощью инструмента 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.

9.4. Запуск 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