# 9. Встановлення та конфігурація засобу перевірки повідомлень

Засіб перевірки повідомлень призначений для перевірки тих повідомлень, які зберігаються у журналі повідомлень шлюзу безпечного обміну. Встановлення цього компоненту не є обов’язковим.

Засіб перевірки повідомлень надає вебінтерфейс Відповідальному за аналіз транзакцій, який дозволяє переглядати наявні збережені та підписані повідомлення (запити до сервісів та відповіді), фільтрувати їх за параметрами (у тому числі за датою отримання, ID повідомлення, кодом сервісу, кодом підсистеми-клієнта тощо). Вебінтерфейс засобу перевірки повідомлень доступний через порт TCP 5000.

# 9.1 Встановлення засобу перевірки повідомлень

<span lang="UK">Засіб перевірки повідомлень встановлюється на відповідному сервері баз даних та архівування, який попередньо має бути встановлений при роботі скрипта автоматизації встановлення та налаштований згідно [розділу 8](https://docs.trembita.gov.ua/books/instrukciia-zi-vstanovlennia-lokalnix-komponentiv-sistemi-trembita-v-promislovomu-seredovishhi-za-dopomogoiu-skripta-avtomatizaciyi/page/8-nalastuvannia-perenesennia-arxivnix-failiv-na-server-baz-danix-ta-arxivuvannia) даної інструкції. </span>

<span lang="UK">Встановлення та налаштування засобу перевірки повідомлень виконується Адміністратором локальних компонентів (системним адміністратором).</span>

<p class="callout info">**<span lang="UK">Примітка.</span>**<span lang="UK"> У випадку нестачі апаратних ресурсів засіб перевірки повідомлень можна встановити на окремій віртуальній машині (фізичному сервері). В такому випадку необхідно налаштувати віддалене підключення згідно [розділу 9.2.1](https://docs.trembita.gov.ua/link/195#bkmrk-9.2.1-%D0%9D%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F-%D0%B4) даної інструкції</span></p>

<span lang="UK">Для інсталяції засобу перевірки повідомлень </span><span lang="UK">необхідно виконати наступні дії:</span>

<span lang="UK">1. **Якщо засіб перевірки повідомлень буде встановлено на окремій віртуальній машині** – необхідно закрити доступ до сторонніх репозиторіїв за допомогою виконання наступної команди:</span>

```
sudo sed -i 's/^[A-Za-z0-9]/#&/' /etc/apt/sources.list
```

<span lang="UK">2. **Якщо засіб перевірки повідомлень буде встановлено на окремій віртуальній машині** – додати репозиторій з пакетами системи «Трембіта»:</span>

```
echo 'deb https://project-repo.trembita.gov.ua:8081/repository/ss-1.12.6/ bionic main' | sudo tee -a /etc/apt/sources.list
```

<span lang="UK">Перевірити результат виконання команд можна за допомогою текстового редактора nano, відкривши файл на редагування за допомогою виконання наступної команди:</span>

```
sudo nano /etc/apt/sources.list
```

<span lang="UK">3. **Якщо засіб перевірки повідомлень буде встановлено на окремій віртуальній машині** – необхідно додати GPG ключ репозиторію за допомогою виконання наступної команди:</span>

```
sudo wget -O - https://project-repo.trembita.gov.ua:8081//public-keys/public.key.txt | sudo apt-key add -
```

<span lang="UK">Якщо команду виконано успішно, то буде виведено повідомлення «ОК».</span>

<span lang="UK">4. Створити новий обліковий запис Відповідального за аналіз транзакцій, який буде використовуватись для входу в вебінтерфейс засобу перевірки повідомлень шляхом послідовного виконання наступних команд:</span>

```
sudo useradd -M -N <username>
sudo chsh -s /bin/false <username>
sudo passwd <username>
```

<span lang="UK">де **&lt;username&gt;** </span><span lang="UK">–</span><span lang="UK"> логін створюваного користувача латиницею.</span>

<span lang="UK">Після виконання цих команд необхідно ввести пароль нового користувача двічі.</span>

<span lang="UK">5. Встановити програмне забезпечення UXP Verifier для засобу перевірки повідомлень шляхом послідовного виконання наступних команд:</span>

```
sudo apt update
sudo apt install -y uxp-transaction-analysis-ua
```

<span lang="UK">6. Під час встановлення ввести ім’я облікового запису (логін) Відповідального за аналіз транзакцій, що буде мати доступ до інтерфейсу перегляду повідомлень та пароль для даного користувача:</span>

<span lang="UK">Для перевірки стану виконання встановлених компонентів ПЗ UXP Verifier необхідно виконати наступну команду:</span>

```
sudo systemctl list-units | grep "uxp"
```

<span lang="UK">Список сервісів, які мають бути активними (active/running):</span>

```
uxp-confclient.service
uxp-verifier.service
```

# 9.2 Налаштування засобу перевірки повідомлень

<span lang="UK">Для налаштування засобу перевірки повідомлень необхідно знати наступну інформацію:</span>

<span lang="UK">- </span><span lang="UK">місцезнаходження журналу повідомлень шлюзу безпечного обміну;</span>

<span lang="UK">- </span><span lang="UK">ім’я хоста сервера PostgreSQL, що містить базу даних журналу повідомлень ШБО (зазвичай для промислового середовища це IP-адреса сервера баз даних та архівування);</span>

<span lang="UK">- </span><span lang="UK">ім’я користувача облікового запису бази даних, що має дозвіл на віддалений доступ на сервер PostgreSQL;</span>

<span lang="UK">- </span><span lang="UK">пароль до цього облікового запису;</span>

<span lang="UK">- </span><span lang="UK">якір глобальної конфігурації ШБО, якому належить база даних журналу повідомлень.</span>

<p class="callout info"><span lang="UK">Примітка.</span><span lang="UK"> Атрибути доступу до бази даних можна подивитися в файлі /etc/uxp/db.properties на відповідному ШБО у блоці uac-messagelog.hibernate.connection. </span></p>

---

#### <span lang="UK">9.2.1 </span><span lang="UK">Налаштування дозволу на віддалене підключення до журналу повідомлень</span>

<p class="callout warning">**<span lang="RU">Важливо!</span>**<span lang="UK"> Налаштування дозволу на віддалене підключення до журналу повідомлень необхідно здійснювати лише в тому випадку, якщо засіб перевірки повідомлень встановлений на окремому сервері, а не на тому, де розміщується база даних журналу повідомлень.</span></p>

<span lang="UK">Для налаштування дозволу на віддалене підключення до журналу повідомлень потрібно виконати наступні кроки на сервері, де розміщується база даних журналів повідомлень:</span>

<span lang="UK">1. </span><span lang="UK">Відкрити на редагування файл /etc/postgresql/10/main/postgresql.conf за допомогою наступної команди:</span>

```
sudo nano /etc/postgresql/10/main/postgresql.conf
```

<span lang="UK">2. </span><span lang="UK">Знайти у файлі рядок з параметром «listen\_addresses», розкоментувати його (видалити символ «</span><span lang="RU">\#</span><span lang="UK">»</span> <span lang="RU">на початку рядка)</span><span lang="UK"> та замінити значення:</span>

```
#listen_addresses = 'localhost'      # what IP address(es) to listen on;
```

<span lang="RU">на</span>:

```
listen_addresses = '*'         # what IP address(es) to listen on;
```

<span lang="UK">[![Picture9_1.png](https://docs.trembita.gov.ua/uploads/images/gallery/2024-05/scaled-1680-/LSDBu3Vn7W0qvPYs-picture9-1.png)](https://docs.trembita.gov.ua/uploads/images/gallery/2024-05/LSDBu3Vn7W0qvPYs-picture9-1.png)</span>

<span lang="UK">3. </span><span lang="UK">Відкрити на редагування файл /etc/postgresql/10/main/pg\_hba.conf, який містить налаштування прав доступу, за допомогою команди:</span>

```
sudo nano /etc/postgresql/10/main/pg_hba.conf
```

<span lang="UK">4. </span><span lang="UK">Додати у кінець відкритого файлу наступний рядок </span>

```
host <messagelog_dbname> <messagelog_dbuser> <verifier_ip>/32 md5
```

<span lang="UK">де **&lt;**</span>**messagelog<span lang="UK">\_</span>dbname**<span lang="UK">**&gt;** – ім’я бази даних журналу повідомлень;</span>

**<span lang="RU">&lt;</span>messagelog<span lang="RU">\_</span>dbuser**<span lang="RU">**&gt;** – </span><span lang="UK">ім’я користувача облікового запису бази даних, що має дозвіл на віддалений доступ на сервер;</span>

**<span lang="RU">&lt;</span>verifier<span lang="RU">\_</span>ip**<span lang="RU">**&gt;** – </span>IP<span lang="RU">-адреса сервера засобу перевірки повідомлень.</span>

<span lang="UK">5. </span><span lang="UK">Закрити редактор, натиснувши комбінацію клавіш «Ctrl+X», буде показано повідомлення про підтвердження на збереження змін - необхідно натиснути «Y», а потім </span><span lang="UK">«Enter» для збереження.</span>

<span lang="UK">[![Picture9_2.png](https://docs.trembita.gov.ua/uploads/images/gallery/2024-05/scaled-1680-/bb2LqSDYP4gnTvt7-picture9-2.png)](https://docs.trembita.gov.ua/uploads/images/gallery/2024-05/bb2LqSDYP4gnTvt7-picture9-2.png)</span>

<span lang="UK">6. </span><span lang="UK">Перезавантажити PostgreSQL, щоб застосувати зміни за допомогою наступної команди:</span>

```
systemctl restart postgresql
```

---

#### <span lang="UK">9.2.2 </span><span lang="UK">Використання віддаленої бази даних</span>

<span lang="UK">База даних журналу повідомлень може знаходитись поза межами серверу, де встановлено засіб перевірки повідомлень чи шлюзу безпечного обміну, наприклад, у випадку, якщо засіб перевірки повідомлень встановлюється окремо, а не на сервері баз даних та архівування.</span>

<p class="callout info"><span lang="UK">**Примітка.** </span><span lang="UK">Передумова для налаштувань - передбачається, що база даних була створена, заповнена схемою журналу повідомлень, а доступ до бази даних із засобу перевірки повідомлень був налаштований.</span></p>

<span lang="UK">Перед проведенням налаштувань потрібно перевірити підключення від засобу перевірки повідомлень до віддаленої бази даних за допомогою наступної команди:</span>

```
psql -h <db_host> -U <messagelog_user> <messagelog_dbname>
```

<span lang="UK">де </span>**&lt;<span lang="UK">db\_host</span>&gt;**<span lang="UK"> – ім’я хоста серверу PostgreSQL, що розміщує базу даних журналу повідомлень;</span>

<span lang="UK">**&lt;messagelog\_dbname&gt;** – ім’я бази даних журналу повідомлень;</span>

**<span lang="RU">&lt;</span><span lang="UK">messagelog\_user</span><span lang="RU">&gt;</span>**<span lang="UK"> – логін користувача облікового запису бази даних, що має дозвіл на віддалений доступ на сервер.</span>

<span lang="UK">В разі успішної перевірки буде відображено наступний результат:</span><span lang="UK">[![Picture8_8.png](https://docs.trembita.gov.ua/uploads/images/gallery/2024-05/scaled-1680-/7ivsVHBTNpuBOR8i-picture8-8.png)](https://docs.trembita.gov.ua/uploads/images/gallery/2024-05/7ivsVHBTNpuBOR8i-picture8-8.png)</span>

<span lang="UK">Для налаштування необхідно:</span>

<span lang="UK">1. Зупинити службу "uxp-verifier" за допомогою виконання наступної команди:</span>

```
sudo systemctl stop uxp-verifier
```

<span lang="UK">[![Picture9_4.png](https://docs.trembita.gov.ua/uploads/images/gallery/2024-05/scaled-1680-/FnKQ00ZF68DvS90e-picture9-4.png)](https://docs.trembita.gov.ua/uploads/images/gallery/2024-05/FnKQ00ZF68DvS90e-picture9-4.png)</span>

<span lang="UK">2. Відкрити на редагування файл /etc/uxp/db.properties за допомогою наступної команди:</span>

```
sudo nano /etc/uxp/db.properties
```

<span lang="UK">- </span><span lang="UK"><span style="text-decoration: underline;">**Якщо засіб перевірки повідомлень та база даних журналу повідомлень знаходяться на різних хостах**</span>, налаштування параметрів бази даних виглядатиме наступним чином:</span>

```
uac-messagelog.hibernate.jdbc.use_streams_for_binary = true
uac-messagelog.hibernate.dialect = ee.cyber.uxp.common.db.CustomPostgreSQLDialect
uac-messagelog.hibernate.connection.driver_class = org.postgresql.Driver
uac-messagelog.hibernate.connection.url = jdbc:postgresql://<db_host>:5432/<messagelog_dbname>?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory
uac-messagelog.hibernate.connection.username = <messagelog_user>
uac-messagelog.hibernate.connection.password = <messagelog_password>
```

<span lang="UK">де **&lt;db\_host&gt;** – ім’я хоста серверу PostgreSQL, де розміщено базу даних журналу повідомлень;  
**&lt;messagelog\_dbname&gt;** – ім’я бази даних журналу повідомлень;  
**&lt;messagelog\_user&gt;** – логін облікового запису бази даних, що має дозвіл на віддалений доступ на сервер;  
**&lt;messagelog\_password&gt;** – пароль до облікового запису бази даних, що має дозвіл на віддалений доступ на сервер.</span>

<span lang="UK">[![Picture9_5.png](https://docs.trembita.gov.ua/uploads/images/gallery/2024-05/scaled-1680-/HfGbsvhgSxWqv957-picture9-5.png)](https://docs.trembita.gov.ua/uploads/images/gallery/2024-05/HfGbsvhgSxWqv957-picture9-5.png)</span>

<span lang="UK"> </span><span lang="UK">- </span><span lang="UK"><span style="text-decoration: underline;">**Якщо засіб перевірки повідомлень та база даних журналу повідомлень знаходяться на одному хості**</span>, налаштування параметрів бази даних виглядатиме наступним чином:</span>

```
uac-messagelog.hibernate.jdbc.use_streams_for_binary = true
uac-messagelog.hibernate.dialect = ee.cyber.uxp.common.db.CustomPostgreSQLDialect
uac-messagelog.hibernate.connection.driver_class = org.postgresql.Driver
uac-messagelog.hibernate.connection.url = jdbc:postgresql://127.0.0.1:5432/<messagelog_dbname>
uac-messagelog.hibernate.connection.username = <messagelog_user>
uac-messagelog.hibernate.connection.password = <messagelog_password>
```

<span lang="UK">де &lt;**messagelog\_dbname&gt;** – ім’я бази даних журналу повідомлень;  
**&lt;messagelog\_user&gt;** – логін облікового запису бази даних, що має дозвіл на віддалений доступ на сервер;  
**&lt;messagelog\_password&gt;** – пароль до облікового запису бази даних, що має дозвіл на віддалений доступ на сервер.</span>

<span lang="UK">[![Picture9_6.png](https://docs.trembita.gov.ua/uploads/images/gallery/2024-05/scaled-1680-/P1D774WfzoXKg3TW-picture9-6.png)](https://docs.trembita.gov.ua/uploads/images/gallery/2024-05/P1D774WfzoXKg3TW-picture9-6.png)</span>

<span lang="UK">4. </span><span lang="UK">Закрити редактор, натиснувши комбінацію клавіш </span><span lang="RU">«</span><span lang="UK">Ctrl+X», буде показано повідомлення про підтвердження на збереження змін - необхідно натиснути «Y», а потім </span><span lang="UK">«Enter» для збереження.</span>

<span lang="UK">5. Запустити службу uxp-verifier за допомогою наступної команди:</span>

```
sudo systemctl start uxp-verifier
```

<span lang="UK">[![Picture9_7.png](https://docs.trembita.gov.ua/uploads/images/gallery/2024-05/scaled-1680-/QyQl60vX02B3Gsm0-picture9-7.png)](https://docs.trembita.gov.ua/uploads/images/gallery/2024-05/QyQl60vX02B3Gsm0-picture9-7.png)</span>

---

#### <span lang="UK">9.2.3 </span><span lang="UK">Завантаження якоря глобальної конфігурації</span>

<span lang="UK">Для завантаження якоря глобальної конфігурації необхідно:</span>

<span lang="UK">1. Завантажити </span><span lang="UK"><span lang="UK">файл якоря конфігурації промислового середовища (файл configuration anchor) з </span></span><span lang="UK"><span lang="UK"><span lang="UK">Особистого кабінету Каталогу системи «Трембіта» (сторінка «Матеріали») на робочу станцію Адміністратора локальних компонентів (системного адміністратора).</span></span></span>

<span lang="UK">2. Скопіювати файл якоря конфігурації на сервер засобу перевірки повідомлень використовуючи WinSCP або іншу програму.</span>

<span lang="UK">3. Перемістити файл якоря конфігурації до директорії /etc/uxp/ серверу засобу перевірки за допомогою наступної команди:</span><span lang="UK"> </span>

```
sudo cp configuration_anchor_name.xml /etc/uxp/configuration-anchor.xml
```