# KSC PostgreSQL

<p class="callout info">Информация, приведенная на данной странице, является разработкой команды pre-sales и/или community KUMA и **НЕ** является официальной рекомендацией вендора.</p>

### Настройка PostgreSQL

Настройки на сервере БД PostgreSQL можно выполнять в консоли (SSH, терминал ОС) или средствами утилиты pgAdmin (требуется установка).

В данной статье сервер БД PostgreSQL работает под управлением ОС Astra Linux, а все настройки выполняются **в консоли.**

Для удобства в базе данных PostgreSQL Kaspersky Security Center предусмотрен набор публичных представлений. Таким образом можно создавать запросы непосредственно к публичным представлениям и извлекать из них данные о событиях. "Коробочный" коннектор KUMA **\[OOTB\] KSC PostgreSQL** содержит уже готовые запросы к публичным представлениям **v\_akpub\_ev\_event** и **v\_akpub\_host**.

<p class="callout warning">Коннектор **\[OOTB\] KSC PostgreSQL** позволяет экспортировать события из БД PostgreSQL Kaspersky Security Center (KSC) версии 15.0.   
</p>

<p class="callout warning">Проверена работоспособность коннектора с KSC 14.2 Windows (БД PostgreSQL).</p>



#### Проверка имени БД KSC

Чтобы проверить имя базы данных KSC можно воспользоваться следующей статьей:

[https://support.kaspersky.ru/ksc-linux/15/228689](https://support.kaspersky.ru/ksc-linux/15/228689) (KSC Linux)

Альтернативным вариантом является проверка имени БД в консоли сервера, на котором установлена БД KSC:

- Измените текущего пользователя на **postgres**

```bash
sudo -i -u postgres
```

- Запустите интерактивный терминал PostgreSQL и выведите список баз данных сервера

```
psql

\l # вывод списка баз данных сервера
```

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-12/scaled-1680-/12eimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-12/12eimage.png)


#### Создание роли БД и предоставление прав

<p class="callout warning">После каждого обновления KSC права на представления сбрасываются и их нужно снова настраивать</p>

- В консоли сервера, где установлена БД PostreSQL KSC, измените текущего пользователя на **postgres**

```bash
sudo -i -u postgres
```

- Запустите интерактивный терминал PostgreSQL

```bash
psql
```

<p class="callout info">Также для создания роли БД и предоставления ей соответствующих прав можно использовать существующую учетную запись с атрибутом **role creation** и правами доступа к публичным представлениям.   
  
Пример подключения к БД:   
psql -U &lt;имя УЗ&gt; -d &lt;имя БД KSC&gt;</p>

- Создайте роль пользователя kuma

```bash
CREATE USER kuma WITH PASSWORD '<задайте пароль>';
```

- Подключитесь к БД KSC (см. Раздел "**Проверка имени БД KSC**". По умолчанию KAV)

```
\connect KAV
```

- Предоставьте права роли KUMA

```bash
GRANT SELECT ON v_akpub_ev_event TO kuma;
GRANT SELECT ON v_akpub_host TO kuma;
GRANT SELECT ON v_akpub_virus_activity TO kuma;
GRANT SELECT ON v_akpub_hst_prdstate TO kuma;
GRANT SELECT ON v_akpub_host_status TO kuma;
```


#### Настройка удаленного доступа к БД PostgreSQL и метода аутентификации

- Откройте файл **/etc/postgresql/&lt;версия БД PostgreSQL&gt;/main/pg\_hba.conf** и в секции **IPv4 local connections** добавьте следующую строку

```bash
host   <имя БД,например, KAV>   kuma   <IP-адрес коллектора KUMA>/32   scram-sha-256
```

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-01/scaled-1680-/4j9image.png)](https://kb.kuma-community.ru/uploads/images/gallery/2024-01/4j9image.png)

- Откройте файл конфигурации **/etc/postgresql/&lt;версия БД PostgreSQL&gt;/main/postgresql.conf** и в секции **CONNECTIONS AND AUTHENTICATION** укажите IP-адрес интерфейса сервера БД, на котором будут "прослушиваться" входящие соединения

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-12/scaled-1680-/Sluimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-12/Sluimage.png)

- После внесения изменений и сохранения файла конфигурации выполните рестарт сервиса PostgreSQL

```bash
systemctl restart postgresql
```

<p class="callout info">При необходимости разрешите входящие соединения на порт БД PostgreSQL (по умолчанию, TCP/5432) в параметрах локального FW.</p>

---

### Создание секрета KUMA

1\. В веб-интерфейсе KUMA перейдите на вкладку **Ресурсы →** **Секреты**

2\. Выберите секрет **\[OOTB\] KSC PostgreSQL connection** и нажмите **Дублировать.**

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-01/scaled-1680-/jaMimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2024-01/jaMimage.png)

3\. В появившемся окне задайте:

- Название секрета
- URL (формат URL можно взять из **Описания** к секрету). В поле URL укажите: 
    - Имя ранее созданной роли (в нашем примере это **kuma**) и ее пароль ([требования к паролю](https://kb.kuma-community.ru/link/2#bkmrk-%255c-%E2%80%93-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D0%B5%D1%82%D1%81%D1%8F-%D0%B4));
    - IP-адрес или FQDN сервера БД;
    - Наименование БД KSC (по умолчанию KAV. См. **Проверка имени БД KSC**).

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-01/scaled-1680-/PA3image.png)](https://kb.kuma-community.ru/uploads/images/gallery/2024-01/PA3image.png)

<p class="callout info">Если в пароле используются спецсимволы необходимо перевести данные спецсимволы в URL формат в соответствии с таблицей ниже.</p>

<details id="bkmrk-%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B-sqlserver%3A%2F%2F"><summary>Примеры</summary>

  
`postgres://kuma:p%40ssword123%21@server.demo.lab/KAV`

</details><table border="1" id="bkmrk-%21-%23-%24-%25-%26-%27-%28-%29-%2A-%2B-" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 10%;"></col><col style="width: 10%;"></col><col style="width: 10%;"></col><col style="width: 10%;"></col><col style="width: 10%;"></col><col style="width: 10%;"></col><col style="width: 10%;"></col><col style="width: 10%;"></col><col style="width: 10%;"></col><col style="width: 10%;"></col></colgroup><tbody><tr><td>!</td><td>\#</td><td>$</td><td>%</td><td>&amp;</td><td>'</td><td>(</td><td>)</td><td>\*</td><td>+</td></tr><tr><td>%21</td><td>%23</td><td>%24</td><td>%25</td><td>%26</td><td>%27</td><td>%28</td><td>%29</td><td>%2A</td><td>%2B</td></tr><tr><td>,</td><td>/</td><td>:</td><td>;</td><td>=</td><td>?</td><td>@</td><td>\[</td><td>\]</td><td>\\</td></tr><tr><td>%2C</td><td>%2F</td><td>%3A</td><td>%3B</td><td>%3D</td><td>%3F</td><td>%40</td><td>%5B</td><td>%5D</td><td>%5C</td></tr></tbody></table>

Можно использовать следующий ресурс для преобразования [https://www.urlencoder.org/](https://www.urlencoder.org/)

Пример:

 [![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/DPTimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/DPTimage.png)

<p class="callout warning">По умолчанию коллектор KUMA при обращении к БД PostgreSQL будет пытаться построить TLS-туннель. Если на стороне сервера БД не настроено использование SSL/TLS (что НЕ рекомендуется!) в URL секрета необходимо добавить **"?sslmode=disable"**, чтобы строка приняла следующий вид:   
postgres://user:password@server/database**?sslmode=disable**</p>

4\. Нажмите **Сохранить**.

<p class="callout warning">Обратите внимание, после сохранения секрета поле URL будет пустым во избежание утечки чувствительной информации.</p>

---

### Настройка коннектора

1\. В веб-интерфейсе KUMA перейдите в раздел **Ресурсы** → **Коннекторы**

2\. В списке коннекторов справа найдите коннектор **\[OOTB\] KSC PostgreSQL** и нажмите **Дублировать**

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-01/scaled-1680-/BzHimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2024-01/BzHimage.png)

3\. В появившемся окне задайте:

- Название коннектора
- На вкладке **Основные параметры** в выпадающих списках **URL** выберите секрет, созданный ранее для подключения к БД PostgreSQL KSC.

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-01/scaled-1680-/Deoimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2024-01/Deoimage.png)

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-01/scaled-1680-/jsaimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2024-01/jsaimage.png)

4\. Нажмите **Сохранить**.

---

### Настройка коллектора

1\. В веб-интерфейсе KUMA перейдите в раздел **Ресурсы** и нажмите **Подключить источник**

2\. В появившемся окне задайте **Название коллектора** и **Тенант**

3\. На шаге **Транспорт** выберите ранее созданный коннектор

4\. На шаге **Парсинг событий** выберите нормализатор **\[OOTB\] KSC from SQL**.

5\. На шаге **Маршрутизация** задайте следующие точки назначения:

- **Хранилище**. Для отправки обработанных событий в хранилище.
- **Коррелятор**. Для отправки обработанных событий в коррелятор.

6\. На шаге **Проверка параметров** нажмите **Сохранить и создать сервис**.

7\. Скопируйте появившуюся команду и выполните установку сервиса коллектора.

---

### Проверка поступления событий KSC в KUMA

Для проверки, что экспорт событий из БД KSC успешно настроен, перейдите в **Ресурсы -&gt; Активные сервисы -&gt;** выберите ранее созданный коллектор **KSC PostgreSQL** и нажмите **Перейти к событиям**.

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-01/scaled-1680-/X7Eimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2024-01/X7Eimage.png)

В открывшемся окне **События** убедитесь, что присутствуют события KSC.

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-01/scaled-1680-/Ok0image.png)](https://kb.kuma-community.ru/uploads/images/gallery/2024-01/Ok0image.png)