# 7.1. Встановлення шлюзу безпечного обміну вручну

#### 7.1.1. <span lang="UK">Налаштування вбудованого міжмережевого екрану</span>

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

<span lang="UK">Перед налаштуванням міжмережевого екрану необхідно:</span>

<span lang="UK">1. Підготувати відомості про адреси наступних локальних компонентів системи «Трембіта»:</span>

<span lang="UK">- мережеву адресу серверу робочої станції адміністратора (**&lt;IP\_РС\_адміністратора&gt;**, при виконанні команд необхідно замінити на реальне значення);</span>

<span lang="UK">- мережеву адресу серверу баз даних та архівування (**&lt;IP\_серверу\_баз\_даних\_та\_архівування&gt;**, при виконанні команд необхідно замінити на реальне значення);</span>

<span lang="UK">- мережеву адресу серверу аналізу журналів подій (**&lt;IP\_серверу\_аналізу\_журналів\_подій&gt;**, при виконанні команд необхідно замінити на реальне значення);</span>

<span lang="UK">- мережеву адресу серверів з вебсервісами та вебклієнтами, які реєструється на шлюзі безпечного обміну (**&lt;IP\_вебсервіс&gt;** та **&lt;IP\_вебклієнт&gt;**, при виконанні команд необхідно замінити на реальне значення. У випадку необхідності можна продублювати команди з цими скороченнями для всіх серверів з вебсервісами та вебклієнтами);</span>

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

```
sudo ufw allow from <IP_РС_адміністратора> to any port 22 proto tcp
sudo ufw enable
sudo ufw default deny outgoing
sudo ufw default deny incoming
sudo ufw allow in 5500/tcp
sudo ufw allow out 5500/tcp
sudo ufw allow in 5577/tcp
sudo ufw allow out 5577/tcp
sudo ufw allow in 5599/tcp
sudo ufw allow out 5599/tcp
sudo ufw allow out 4001/tcp
sudo ufw allow from <IP_РС_адміністратора> to any port 4000 proto tcp
sudo ufw allow out 80/tcp
sudo ufw allow out 443/tcp
sudo ufw allow out 8081/tcp
sudo ufw allow from <IP_вебклієнт> to any port 80 proto tcp
sudo ufw allow from <IP_вебклієнт> to any port 443 proto tcp
sudo ufw allow out 53
sudo ufw allow in 53/tcp
sudo ufw allow out 123/udp
sudo ufw allow out 11371/tcp
sudo ufw allow out from any to <IP_серверу_аналізу_журналів_подій> port 1514
sudo ufw allow out from any to <IP_серверу_баз_даних_та_архівування> port 5432 proto tcp
```

---

#### 7.1.2. Додавання репозиторію з пакетами системи «Трембіта»

<span lang="UK">Для додавання репозиторію з пакетами системи «Трембіта» необхідно закоментувати всі вже існуючі рядки у файлі /etc/apt/sources.list (вставляючи символ # на початку кожного рядку) та додати наступний новий рядок в кінці файлу:</span>

```
deb https://project-repo.trembita.gov.ua:8081/repository/ss-1.12.6/ bionic main
```

<span lang="UK">Швидко це можна зробити за допомогою послідовного виконання наступних двох команд, перша з яких додає символ коментування «#» до кожного непустого рядку, а друга – додає новий рядок з посиланням на репозиторій в кінець даного файлу:</span>

```
sudo sed -i 's/^[A-Za-z0-9]/#&/' /etc/apt/sources.list
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
```

<p class="callout info">**<span lang="UK">Примітка.</span>**<span lang="UK"> Для виходу з редактору використовується комбінація клавіш «Ctrl + X». Якщо були внесені змін, то потрібно натиснути клавішу «Y» для їх збереження або «N» для відміни.</span></p>

---

#### 7.1.3. Додавання GPG ключа для репозиторію

<span lang="UK">Для встановлення програмного забезпечення з репозиторію системи «Трембіта» потрібно завантажити та додати в систему GPG ключ даного репозиторію.</span>

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

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

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

![](https://docs.trembita.gov.ua/uploads/images/gallery/2024-05/vck2RjTPujLYREsf-embedded-image-io9blrak.png)

---

#### 7.1.4. Налаштування локалі

<span lang="UK">Якщо локалі «en\_US.utf8» немає в системі, Адміністратору локальних компонентів (системному адміністратору) необхідно згенерувати її за допомогою послідовного виконання наступних команд:</span>

```
sudo locale-gen en_US.UTF-8
sudo dpkg-reconfigure locales
```

<span lang="UK"><span lang="UK">У наступному діалоговому вікні необхідно знайти запис «en\_US.UTF-8 UTF-8», встановити відповідну позначку шляхом натискання кнопки \[SPACE\] та натиснути на кнопку \[ENTER\]:</span></span>

[![Screenshot 2024-04-10 231942.png](https://docs.trembita.gov.ua/uploads/images/gallery/2024-04/scaled-1680-/sav3Kf9V7aKGVldW-screenshot-2024-04-10-231942.png)](https://docs.trembita.gov.ua/uploads/images/gallery/2024-04/sav3Kf9V7aKGVldW-screenshot-2024-04-10-231942.png)

<span lang="UK">У діалоговому вікні «Default locale for a system environment» потрібно обрати «en\_US.UTF-8» та перезайти в обліковий запис користувача (наприклад, закривши поточну та ініціювавши нову сесію SSH).</span>

<span lang="UK">В операційній системі шлюзу безпечного обміну має бути встановлена локаль «en\_US.UTF-8». Для встановлення даної локалі необхідно виконати наступну команду:</span>

<span lang="UK">echo 'LC\_ALL=en\_US.UTF-8' | sudo tee -a /etc/environment</span>

<span lang="UK">Та перезавантажити змінні оточення за допомогою виконання наступної команди:</span>

<span lang="UK">. /etc/environment</span>

<p class="callout warning"><span lang="UK"> </span><span lang="UK">**<span lang="UK">Важливо!</span>**<span lang="UK"> Варто звернути увагу на наявність пробілу після першої крапки у команді вище.</span></span></p>

---

#### 7.1.5. Встановлення пакету uxp-securityserver-ua

<span lang="UK">Для встановлення програмного забезпечення </span>UXP Security Server<span lang="UK"> для шлюзу безпечного обміну використовується команда apt. Перед встановленням потрібно оновити список доступних пакетів з репозиторію системи «Трембіта».</span>

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

```
sudo apt update
sudo apt install -y uxp-securityserver-ua libc6=2.27-3ubuntu1.6
```

<span lang="UK">Під час встановлення необхідно ввести ім’я облікового запису (логін) Адміністратора вебсервісів, що буде адмініструвати функціонал шлюзу безпечного обміну - наприклад, *uxpadmin*:</span>

<span lang="UK">[![viber_image_2024-04-30_12-22-48-790.png](https://docs.trembita.gov.ua/uploads/images/gallery/2024-04/scaled-1680-/CJbsMhvqXTH8OviS-viber-image-2024-04-30-12-22-48-790.png)](https://docs.trembita.gov.ua/uploads/images/gallery/2024-04/CJbsMhvqXTH8OviS-viber-image-2024-04-30-12-22-48-790.png)</span><span lang="UK">Цей користувач зможе авторизуватись в вебінтерфейсі адміністрування шлюзу безпечного обміну.</span>

Для перевірки стану виконання встановлених компонентів ПЗ UXP Security Server після інсталяції ШБО необхідно виконати наступну команду:

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

Список сервісів UXP, які мають бути активними (active/running):

```
uxp-confclient.service
uxp-jetty.service
uxp-monitor.service
uxp-proxy.service
uxp-signer.service
uxp-uaic.service  (якщо встановлений модуль контролю цілісності)
```

---

#### 7.1.6. Додавання додаткового облікового запису Адміністратора вебсервісів


<p class="callout warning">**Важливо!** В разі, якщо виникає необхідність роботи з вебінтерфейсом ШБО у декількох співробітників Учасника системи "Трембіта", кожен з них обов'язково повинен мати власний обліковий запис!</p>

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

<span lang="UK">Обліковий запис, що використовується для входу в вебінтерфейс адміністрування шлюзу безпечного обміну – це обліковий запис Адміністратора вебсервісів (за замовчуванням з логіном uxpadmin).</span>

<span lang="UK">Для створення додаткового Адміністратора вебсервісів, Адміністратору локальних компонентів (системному адміністраторові) необхідно:</span>

<span lang="UK">1. Послідовно виконати наступні команди:</span>

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

де **&lt;username&gt;** - логін створюваного користувача латиницею.

2\. Ввести пароль нового користувача двічі.

---

#### 7.1.7. Додавання додаткового облікового запису Відповідального за управління ключами

<span lang="UK">У випадку, коли локальні компоненти системи «Трембіта» адмініструє Оператор, уповноваженому співробітнику Суб’єкта електронної взаємодії, що відповідає за встановлення інформаційної взаємодії та управління особистими ключами електронної печатки (Відповідальному за управління ключами), потрібно надати доступ до функціоналу ШБО.</span>

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

```
sudo useradd -M -N <security-officer>
sudo adduser <security-officer> uxp-security-officer
sudo chsh -s /bin/false <security-officer>
sudo passwd <security-officer>
```

де **&lt;security-officer&gt;** - логін створюваного користувача латиницею.

Після виконання цих команд необхідно ввести пароль нового користувача двічі.

---

#### 7.1.8. <span lang="UK">Встановлення модулю контроля цілісності</span>

<span lang="UK">Цілісність програмного забезпечення шлюзу безпечного обміну гарантується модулем контролю цілісності. </span>

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

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

```
sudo apt install uxp-addon-securityserver-uaic nginx-light=1.14.0-0ubuntu1.7 libpam0g=1.1.8-3.6ubuntu2.18.04.2 libnginx-mod-http-echo=1.14.0-0ubuntu1.7 nginx-common=1.14.0-0ubuntu1.7 bash=4.4.18-2ubuntu1.2 passwd=1:4.5-1ubuntu2
```

<span lang="UK">Під час встановлення необхідно налаштувати параметри надсилання повідомлень електронною поштою (за допомогою утиліти Postfix). Якщо даної потреби немає, необхідно обрати варіант «Local only» та підтвердити запропоновані варіанти за замовченням щодо імені хоста та електронної пошти:</span>

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

<p class="callout info">**<span lang="UK">Примітка.</span>**<span lang="UK"> Після встановлення модуля контролю цілісності, програма встановлення початково призупиняє перевірку цілісності на 30 хвилин, щоб запобігти запуску перевірки цілісності та призупиненню сервісів під час процесу конфігурації шлюзу безпечного обміну. Якщо конфігурування триває довше, необхідно додатково призупинити перевірку цілісності у вебінтерфейсі шлюзу безпечного обміну, натиснувши на кнопку «Перевірка цілісності призупинена на ## хв», щоб отримати більше часу</span><span lang="UK">.</span></p>

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

<span lang="UK">[![Picture3_3.png](https://docs.trembita.gov.ua/uploads/images/gallery/2024-05/scaled-1680-/tpOabK0E6gb2gu5e-picture3-3.png)](https://docs.trembita.gov.ua/uploads/images/gallery/2024-05/tpOabK0E6gb2gu5e-picture3-3.png)</span>

---

#### 7.1.9. <span lang="UK">Надання доступу до вебінтерфейсу шлюзу безпечного обміну з робочої станції адміністратора</span>

<p class="callout warning">**<span lang="UK">Важливо!</span>**<span lang="UK"> В промисловому середовищі користувачі з ролями «Адміністратор вебсервісів» та «Відповідальний за управління ключами» повинні підключатися до вебінтерфейсу ШБО виключно з робочих станцій адміністратора!</span></p>

<p class="callout info">**<span lang="UK">Примітка.</span>**<span lang="UK"> Якщо Суб’єкт електронної взаємодії та Учасник є різними юридичними особами, то Суб’єкт електронної взаємодії аналогічно повинен мати власну робочу станцію адміністратора.</span></p>

<span lang="UK">Керування доступом до вебінтерфейсу ШБО здійснюється за допомогою налаштувань NGINX. </span>

<span lang="UK">Перелік IP-адрес, з яких можна підключитись до ШБО знаходиться у файлі дозволених хостів. </span>

<p class="callout warning">**<span lang="UK">Важливо!</span>**<span lang="UK"> Даний файл повинен містити виключно адреси довірених робочих станцій адміністратора. Адміністратор локальних компонентів (системний адміністратор) повинен завжди тримати перелік дозволених адрес у актуальному стані.</span></p>

<span lang="UK">Для того, щоб додати ІР-адресу робочої станції адміністратора до файлу дозволених хостів необхідно:</span>

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

```
sudo nano /etc/uxp/uaic/allowed_hosts.conf
```

<span lang="UK">2. Додати до файлу наступний рядок:</span>

```
allow <workstation-IP>;
```

<span lang="UK">де **&lt;workstation-IP&gt;** </span><span lang="UK">–</span><span lang="UK"> IP-адреса робочої станції адміністратора, що буде використовуватися для доступу до вебінтерфейсу ШБО.</span>

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

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

```
sudo nginx -t
```

<span lang="UK">Якщо перевірку конфігурації пройдено успішно, буде виведено повідомлення «test is successful»:</span>

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

```
sudo service nginx reload
```

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

```
sudo uxp-ua-integritychecker.sh recalc_all
```

<div id="bkmrk--15" style="mso-element: comment-list;"><div style="mso-element: comment;"><div class="msocomtxt" id="bkmrk--16" language="JavaScript" onmouseout="msoCommentHide('_com_1')" onmouseover="msoCommentShow('_anchor_1','_com_1')"></div></div></div>