[comment]: # translation:outdated

[comment]: # ({22b96536-5407a56a})
# 5 Сигурна веза са базом података

[comment]: # ({/22b96536-5407a56a})

[comment]: # ({b38f1bac-7cadd09e})
#### Преглед

Ова секција пружа Zabbix кораке за подешавање и примере конфигурације за
сигурне TLS везе између:

|Database|Zabbix components|
|--------|-----------------|
|MySQL|Zabbix кориснички интерфејс, Zabbix сервер, Zabbix прокси|
| PostgreSQL |Zabbix кориснички интерфејс, Zabbix сервер, Zabbix прокси|

Да бисте подесили шифровану везу унутар DBMS-а, погледајте званичну
документацију произвођача за детаље:

-  [MySQL](https://dev.mysql.com/doc/refman/8.0/en/replication-encrypted-connections.html):
    изворни и репликативни сервери базе података.
-  [MySQL](https://dev.mysql.com/doc/refman/8.0/en/group-replication-security.html):
    групна репликација итд. сервери базе података.
-  [PostgreSQL](https://www.postgresql.org/docs/current/encryption-options.html)
    опције шифровања.

Сви примери су засновани на GA издањима MySQL CE (8.0) and PgSQL
(13) доступних преко званичних репозиторија који користе CentOS 8.

[comment]: # ({/b38f1bac-7cadd09e})

[comment]: # ({5af34b43-5af34b43})
##### Захтеви

За подешавање шифровања потребно је следеће:

- Оперативни систем подржан од стране програмера са OpenSSL >=1.1.X или
   алтернатива.

::: noteclassic
 Препоручује се избегавање OS у статусу на крају животног века,
 посебно у случају нових инсталација
:::

-   Мотор базе података (RDBMS) инсталиран и одржаван од стране званичног
    репозиторијума који обезбеђује програмер. Оперативни системи се често испоручују
    са застарелим  верзијама софтвера базе података које не подржавају енкрипцију,
    на пример, системи засновани на RHEL 7 и
    PostgreSQL 9.2, као и MariaDB 5.5 без подршке за енкрипцију.

[comment]: # ({/5af34b43-5af34b43})

[comment]: # ({53676bc9-9801ac5b})
##### Терминологија

Постављање ове опције намеће коришћење TLS конекције са базом података из
Zabbix server/proxy и корисничким интерфејсом за базу података:

-   `required` - успостављање конекције коришћењем TLS-а као начин транспорта без провере
 идентитета;
-   `verify_ca` - успостављање конекције коришћењем TLS-а и провера сертификата;
-   `verify_full` - успостављање конекције коришћењем TLS-а, провера сертификата и провера
да ли је идентитет базе података (CN) наведен у DBHost-у одговара њеном сертификату;

[comment]: # ({/53676bc9-9801ac5b})

[comment]: # ({84f30836-84f30836})
#### Zabbix конфигурација

[comment]: # ({/84f30836-84f30836})

[comment]: # ({90cd2eda-b1071a8a})
##### Кориснички интерфејс ка бази података

Безбедна веза са базом података може се конфигурисати током инсталације корисничког интерфејса:

-   Означите поље за потврду *Database TLS encryption* у кораку [Конфигурација DBconnection](/manual/installation/frontend#configure_db_connection) да бисте омогућили шифровање транспорта.
-    Означите поље за потврду *Verify database certificate* које се појављује када је означено поље *TLS encryption* да бисте омогућили шифровање помоћу сертификата.

::: noteclassic
За MySQL, поље за потврду *Database TLS encryption* је онемогућено ако је *Database host* подешено на localhost, јер веза која користи socket file (на Unix-у) или дељену меморију (на Windows-у) не може бити шифрована.\
За PostgreSQL, поље за потврду *TLS encryption* је онемогућено ако вредност поља *Database host* почиње косом цртом или је поље празно.

:::

Следећи параметри постају доступни у TLS режиму шифровања у сертификатима (ако су оба поља за потврду означена):

|Parameter|Description|
|--|--------|
|*Database TLS CA датотека*|Наведите пуну путању до важеће датотеке TLS ауторитета за сертификат (CA).|
|*TLS датотека са кључем базе података*|Наведите пуну путању до важеће TLS датотеке са кључем.|
|*TLS датотека са сертификатом базе података*|Наведите пуну путању до важеће TLS датотеке са сертификатом.|
|*Верификација домаћина базе података*|Означите ову кућицу да бисте активирали верификацију домаћина.<br>Онемогућено за MYSQL, јер PHP MySQL библиотека не дозвољава прескакање корака валидације сертификата вршњака.|
|*Листа шифара базе података TLS*|Наведите прилагођену листу важећих шифара. Формат листе шифара мора бити у складу са OpenSSL стандардом.<br>Доступно само за MySQL.|

::: noteimportant
TLS параметри морају указивати на важеће датотеке. Ако указују на непостојеће или неважеће датотеке, то ће довести до грешке ауторизације.\
Ако су датотеке сертификата доступне за писање, кориснички интерфејс генерише упозорење у извештају [Системске 
информације](/manual/web_interface/frontend_sections/reports/status_of_zabbix) да "TLS датотеке сертификата морају бити само за читање." (приказује се само ако је PHP корисник власник сертификата).\
Сертификати заштићени лозинкама нису подржани.
:::

[comment]: # ({/90cd2eda-b1071a8a})

[comment]: # ({18fae872-d4fd87a2})
##### Случајеви употребе

Zabbix кориснички интерфејс користи GUI интерфејс за дефинисање могућих опција: `required`,`verify_ca`, `verify_full`. Наведите потребне опције у кораку чаробњака за инсталацију *Конфигуришите везе са базом података*. Ове опције су мапиране на конфигурациону датотеку (zabbix.conf.php) на следећи начин:

|GUI settings|Configuration file|Description|Result|
|----|----|----|
|![](../../../../assets/en/manual/appendix/install/encrypt_db_transport.png)|...<br>// Користи се за TLS везу.<br>$DB\['ENCRYPTION'\] = true;<br>$DB\['KEY\_FILE'\] = '';<br>$DB\['CERT\_FILE'\] = '';<br>$DB\['CA\_FILE'\] = '';<br>$DB\['VERIFY\_HOST'\] = false;<br>$DB\['CIPHER\_LIST'\] = '';<br>...|Провери *TLS базе података енкрипција*<br>Оставите *Провери сертификат базе података* неозначено|Омогући `потребан` режим.|
|![](../../../../assets/en/manual/appendix/install/encrypt_db_verify_ca.png)|...<br>$DB\['ENCRYPTION'\] = true;<br>$DB\['KEY\_FILE'\] = '';<br>$DB\['CERT\_FILE'\] = '';<br>$DB\['CA\_FILE'\] = '/etc/ssl/mysql/ca.pem';<br>$DB\['VERIFY\_HOST'\] = false;<br>$DB\['CIPHER\_LIST'\] = '';<br>...|1\. Проверите *TLS енкрипцију базе података* и *Провери сертификат базе података*<br>2. Наведите путању до *TLS CA датотеке базе података*|Омогућите режим `verify_ca`.|
|![](../../../../assets/en/manual/appendix/install/encrypt_db_verify_full1.png)|...<br>// Користи се за TLS везу са строго дефинисаном листом шифара.<br>$DB\['ENCRYPTION'\] = true;<br>$DB\['KEY\_FILE'\] = '<путања\_кључа\_датотеке>';<br>$DB\['CERT\_FILE'\] = '<путања\_кључа\_датотеке>';<br>$DB\['CA\_FILE'\] = '<путања\_кључа\_датотеке>';<br>$DB\['VERIFY\_HOST'\] = true;<br>$DB\['CIPHER\_LIST'\] = '<листа\_шифри>';<br>...<br><br>Или:<br><br>...<br>// Користи се за TLS везу без дефинисане листе шифара - бира је MySQL сервер<br>$DB\['ENCRYPTION'\] = true;<br>$DB\['KEY\_FILE'\] = '<путања\_датотеке\_кључа>';<br>$DB\['CERT\_FILE'\] = '<путања\_датотеке\_кључа>';<br>$DB\['CA\_FILE'\] = '<путања\_датотеке\_кључа>';<br>$DB\['VERIFY\_HOST'\] = true;<br>$DB\['CIPHER\_LIST'\] = '';<br>...|1\. Проверите *TLS шифровање базе података* и *Проверите сертификат базе података*<br>2. Наведите путању до *TLS датотеке кључа базе података*<br>3. Наведите путању до *Database TLS CA датотеке*<br>4. Наведите путању до *Database TLS датотеке сертификата*<br>5. Наведите *листу TLS шифара базе података* (опционо)|Омогућите режим `verify_full` за MySQL.|
|![](../../../../assets/en/manual/appendix/install/encrypt_db_verify_full2.png)|...<br>$DB\['ENCRYPTION'\] = true;<br>$DB\['KEY\_FILE'\] = '<путања_кључ_датотеке>';<br>$DB\['CERT\_FILE'\] = '<путања_кључ_датотеке>';<br>$DB\['CA\_FILE'\] = '<путања_кључ_датотеке>';<br>$DB\['VERIFY\_HOST'\] = true;<br>$DB\['CIPHER\_LIST'\] = ' ' ';<br>...<br>|1\. Означите *Database TLS enkription* и *Verify database certificate*<br>2. Наведите путању до *Database TLS key file*<br>3. Наведите путању до *Database TLS CA file*<br>4. Наведите путању до *Database TLS file certificate*<br>5. Означите *Database host verification*|Омогућите `verify_full` режим за PostgreSQL.|

**Погледајте такође:** [Примери конфигурације шифровања за MySQL](/manual/appendix/install/db_encrypt/mysql), [Примери конфигурације шифровања за PostgreSQL](/manual/appendix/install/db_encrypt/postgres).

[comment]: # ({/18fae872-d4fd87a2})

[comment]: # ({b504a368-9cfb91d1})
#### Конфигурација Zabbix сервера/проксија

Безбедне везе са базом података могу се конфигурисати одговарајућим параметрима у Zabbix [server](/manual/appendix/config/zabbix_server) и/или [proxy](/manual/appendix/config/zabbix_proxy) конфигурационој датотеци.

|Configuration|Result|
|--|--|
| None |Веза са базом података без шифровања.|
|1\. Постави `DBTLSCANnect=required`|Сервер/прокси успоставља TLS везу са базом података. Нешифрована веза није дозвољена.|
|1\. Постави `DBTLSCANnect=verify_ca`<br>2. Постави `DBTLSCAFile` - наведите TLS датотеку ауторитета сертификата|Сервер/прокси успоставља TLS везу са базом података након провере сертификата базе података.|
|1\. Постави `DBTLSCANnect=verify_full`<br>2. Постави `DBTLSCAFile` - наведите TLS датотеку ауторитета сертификата|Сервер/прокси успоставља TLS везу са базом података након провере сертификата базе података и идентитета хоста базе података.|
|1\. Постави `DBTLSCANnect` - наведите TLS датотеку ауторитета сертификата<br>2. Постави `DBTLSCertFile` - наведите датотеку сертификата јавног кључа клијента<br>3. Подесите `DBTLSKeyFile` - наведите датотеку приватног кључа клијента|Сервер/прокси пружа клијентски сертификат приликом повезивања са базом података.|
|1.\. Подесите `DBTLSCipher` - листу шифара за шифровање које клијент дозвољава за везе користећи TLS протоколе до TLS 1.2<br><br>или `DBTLSCipher13` - листу шифара за шифровање које клијент дозвољава за везе користећи TLS 1.3 протокол|(MySQL) TLS веза се успоставља помоћу шифре са дате листе.<br>(PostgreSQL) Подешавање ове опције ће се сматрати грешком.|

[comment]: # ({/b504a368-9cfb91d1})
