Настройка и запуск Prohibitor ============================= **prohibitor** - Сервис проверки полномочий предназначен для контроля и блокировки Поставщиком обращений к данным своей Витрины с использованием Регламентированных SQL-запросов (РЗ). Установка Prohibitor опциональна, если Агент ПОДД СМЭВ используется исключительно в качестве ПО, обеспечивающего доступ к данным посредством СМЭВ. Действия (успешные и неуспешные), совершенные пользователями Сервиса проверки полномочий, логируются для передачи в систему сбора событий Аудита (SIEM) на стороне Поставщика данных. Перечень логируемых действий: - создание пользователя; - удаление пользователя; - блокировка и разблокировка пользователя; - блокировка и подтверждение полномочия на выполнение РЗ. .. attention:: Для соблюдения требований безопасности к сертифицированному Агенту ПОДД в контуре Поставщика рекомендуется: - развернуть систему сбора событий Аудита (SIEM); - хранить во внешней системе сбора событий Аудита (SIEM) данные аудита Сервиса проверки полномочий минимум один год. Порядок загрузки данных и программ ---------------------------------- Администратор УВ осуществляет развёртывание, запуск и настройку prohibitor с помощью данного руководства. Предварительные операции (установка «пре-реквизитов») ----------------------------------------------------- Перед запуском **prohibitor** выполнить от имени пользователя **root** следующие действия: 1. Создать пользователя {{user}} и группу {{user_group}}, под которым будет работать prohibitor. 2. Установить java (дистрибутив преобретается пользователем. Версия в примере может отличаться от версии, купленной пользователем): **Для Astra Linux** .. code-block:: bash dpkg -i axiomjdk-jdk-pro17.0.4.1+1-linux-amd64-astra.deb **Для РЕД ОС** .. code-block:: bash yum localinstall axiomjdk-jdk-pro17.0.4.1+1-linux-amd64.rpm 3. Установить системные переменные: .. code-block:: bash export JAVA_HOME=/usr/java export PATH=$PATH:$JAVA_HOME/bin Рекомендуется внести данную настройку в ``profile`` пользователя либо в системный profile (/etc/profile.d/) 4. Выложить в каталог ``/distr/prohibitor`` конфигурационный файл ``application.yml``, подготовленный согласно :ref:`prohibitor_config`, в ``/distr/prohibitor/config`` выложить подготовленный файл ``logback.xml``. 5. Доступ к админ-консоли **prohibitor** необходимо проксировать с помощью внешних инфраструктурных решений. Указанный прокси должен поддерживать работу клиента с ним только по ГОСТ TLS. Прямой доступ к порту админ-консоли **prohibitor** необходимо ограничить средствами ОС или инфраструктуры, для недопущения прямого доступа к нему пользователей по нешифрованному протоколу. Настройка БД для работы Сервиса проверки полномочий --------------------------------------------------- 1. Установить СУБД PostgresPro 15 2. Подключится к БД PostgreSQL с административным аккаунтом и выполнить SQL команды ниже. Используйте собственные имя БД, имя пользователя и пароль, эти же данные должны быть указаны в конфигурационном файле сервиса **prohibitor**: (см. :ref:`prohibitor_config`) .. code-block:: sql CREATE DATABASE prohibitor; CREATE USER dbadmin_prohibitor WITH ENCRYPTED PASSWORD '' NOSUPERUSER CREATEROLE CREATEDB INHERIT LOGIN NOREPLICATION; ALTER DATABASE prohibitor OWNER TO dbadmin_prohibitor; Следующие команды следует выполнять от имени пользвателя, подключенного к БД prohibitor с административным аккаунтом: .. code-block:: sql GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO dbadmin_prohibitor; GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO dbadmin_prohibitor; 3. С помощью инструмента liquidbase выполнить в созданной БД скрипты создания структуры БД Для этого в консоли выполнить следующие команды: .. code-block:: bash 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=//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/``, скорректировав, при необходимости, пути к файлам .. code-block:: bash [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** необходимо выполнить команду по включению, запуску сервиса и проверке его статуса: .. code-block:: bash systemctl daemon-reload systemctl enable prohibitor systemctl start prohibitor systemctl -l status prohibitor