#4 Beveiligde verbinding met de database
Dit gedeelte biedt Zabbix-instellingen en configuratievoorbeelden voor beveiligde TLS-verbindingen tussen:
| Database | Zabbix-componenten | 
|---|---|
| MySQL | Zabbix-frontend, Zabbix-server, Zabbix-proxy | 
| PostgreSQL | Zabbix-frontend, Zabbix-server, Zabbix-proxy | 
Om verbindingsversleuteling binnen het DBMS in te stellen, raadpleegt u de officiële documentatie van de leverancier voor details:
Alle voorbeelden zijn gebaseerd op de GA-releases van MySQL CE (8.0) en PgSQL (13) die beschikbaar zijn via officiële repositories met behulp van AlmaLinux 8.
Het volgende is vereist om encryptie in te stellen:
Het wordt aanbevolen om OS in de end-of-life-status te vermijden, vooral bij nieuwe installaties
Door deze optie in te stellen wordt afgedwongen om TLS-verbinding met database te gebruiken van Zabbix-server/proxy en frontend naar database:
Een beveiligde verbinding met de database kan worden geconfigureerd tijdens de frontend installatie:
Voor MySQL is het selectievakje Database TLS-codering: uitgeschakeld, als Databasehost is ingesteld op localhost, omdat verbinding die een socketbestand (op Unix) of gedeeld geheugen (op Windows) gebruikt, kan niet versleuteld zijn.
       Voor PostgreSQL is het selectievakje TLS-codering uitgeschakeld als de waarde van het veld Databasehost begint met een schuine streep of het veld is leeg.
De volgende parameters komen beschikbaar in de TLS-codering in certificatenmodus (als beide selectievakjes zijn gemarkeerd):
| Parameter | Beschrijving | 
|---|---|
| Database TLS CA-bestand | Geef het volledige pad op naar een geldig TLS-certificaatautoriteit (CA)-bestand. | 
| Database TLS-sleutelbestand | Geef het volledige pad op naar een geldig TLS-sleutelbestand. | 
| Database TLS-certificaatbestand | Geef het volledige pad op naar een geldig TLS-certificaatbestand. | 
| Databasehostverificatie | Vink dit selectievakje aan om hostverificatie te activeren. Uitgeschakeld voor MYSQL, omdat de PHP MySQL-bibliotheek het niet toestaat om de peercertificaatvalidatiestap over te slaan. | 
| Database TLS-coderingslijst | Geef een aangepaste lijst met geldige cijfers op. Het formaat van de cijferlijst moet voldoen aan de OpenSSL-standaard. Alleen beschikbaar voor MySQL. | 
TLS-parameters moeten verwijzen naar geldige bestanden. Indien zij verwijzen naar niet-bestaande of ongeldige bestanden, zal dit leiden tot de autorisatiefout.
       Als certificaatbestanden schrijfbaar zijn, genereert de frontend een waarschuwing in het systeem informatie](/manual/web_interface/frontend_sections/reports/status_of_zabbix) melden dat "TLS-certificaatbestanden alleen-lezen moeten zijn." (alleen weergegeven) als de PHP-gebruiker de eigenaar is van het certificaat).
       
       Met wachtwoorden beveiligde certificaten worden niet ondersteund.
Zabbix frontend gebruikt GUI-interface om mogelijke opties te definiëren: vereist, verifiëren_ca, verifiëren_volledig. Specificeer de vereiste opties in de installatie wizard stap DB-verbindingen configureren. Deze opties zijn toegewezen aan de configuratiebestand (zabbix.conf.php) op de volgende manier:
| GUI instellingen | Configuratiebestand | Beschrijving | Resultaat | 
|---|---|---|---|
|  | ... // Gebruikt voor TLS-verbinding. $DB ['ENCRYPTION'] = true; $DB['KEY_FILE'] = ''; $DB['CERT_FILE'] = ''; $ DB['CA_FILE'] = ''; $DB['VERIFY_HOST'] = false; $DB['CIPHER_LIST'] = '';< br>... | Controleer Database TLS-codering Laat Verifieer databasecertificaat niet aangevinkt | Schakel 'vereist' modus in. | 
|  | ... $DB['ENCRYPTION'] = true; \\ $DB['KEY_FILE'] = ''; $DB['CERT_FILE'] = ''; $DB['CA_FILE' ] = '/etc/ssl/mysql/ca.pem'; $DB['VERIFY_HOST'] = false; $DB['CIPHER_LIST'] = ''; ... | 1. Controleer Database TLS-codering en Verifieer databasecertificaat 2. Geef het pad op naar Database TLS CA-bestand | Schakel 'verify_ca'-modus in. | 
|  | ... // Gebruikt voor TLS-verbinding met strikt gedefinieerde coderingslijst. $DB['ENCRYPTION'] = true; $DB['KEY_FILE'] = '<key_file_path>'; $DB['CERT _FILE'] = '<key_file_path>'; $DB['CA_FILE'] = '<key_file_path>'; $DB['VERIFY' _HOST'] = true; $DB['CIPHER_LIST'] = '<cipher_list>'; ... Of: ... // Gebruikt voor TLS-verbinding zonder coderingslijst gedefinieerd - geselecteerd door MySQL-server $DB['ENCRYPTION'] = true; $DB['KEY_FILE'] = '<key_file_path>'; $DB['CERT_FILE'] = '<key_file_path>'; $DB['CA_FILE'] = '<key_file_path>'; $DB['VERIFY_HOST'] = true; $DB['CIPHER_LIST'] = ''; . .. | 1. Controleer Database TLS-codering en Verifieer databasecertificaat 2. Geef het pad op naar Database TLS-sleutelbestand 3. Geef het pad op naar Database TLS CA-bestand 4. Geef het pad op naar Database TLS-certificaatbestand 6. Geef TLS-coderingslijst op (optioneel) | Schakel 'verify_full'-modus in voor MySQL. | 
|  | ... $DB['ENCRYPTION'] = true; $DB['KEY_FILE'] = '<key_file_path>'; $DB['CERT_FILE'] = '<key_file_path>'; $DB['CA_FILE'] = '<key_file_path>'; $DB['VERIFY_HOST'] = true; $DB[' CIPHER_LIST'] = ' '; ... | 1. Controleer Database TLS-codering en Verifieer databasecertificaat 2. Geef het pad op naar Database TLS-sleutelbestand 3. Geef het pad op naar Database TLS CA-bestand 4. Geef het pad op naar Database TLS-certificaatbestand 6. Controleer Databasehostverificatie | Schakel 'verify_full'-modus in voor PostgreSQL. | 
Zie ook: Versleutelingsconfiguratievoorbeelden voor MySQL, Encryptie configuratievoorbeelden voor PostgreSQL.
Beveiligde verbindingen met de database kunnen worden geconfigureerd met de respectievelijke parameters in de Zabbix server en/of proxy configuratiebestand.
| Configuratie | Resultaat | 
|---|---|
| Geen | Verbinding met de database zonder encryptie. | 
| 1. Set DBTLSConnect=required | Server/proxy maak een TLS-verbinding met de database. Een niet-versleutelde verbinding is niet toegestaan. | 
| 1. Stel DBTLSConnect=verify_ca 2 in. Set DBTLSCAFile - specificeer het TLS-certificaatautoriteitbestand | Server/proxy maak een TLS-verbinding met de database na verificatie van het databasecertificaat. | 
| 1. Stel DBTLSConnect=verify_full 2 in. Stel DBTLSCAFile in - geef het TLS-certificaatautoriteitbestand op | Server/proxy maakt een TLS-verbinding met de database na verificatie van het databasecertificaat en de identiteit van de databasehost. | 
| 1. Stel DBTLSCAFile in - specificeer het TLS-certificaatautoriteitbestand 2. Stel DBTLSCertFile in - geef het certificaatbestand met de openbare sleutel van de client op 3. Stel DBTLSKeyFile in - specificeer het bestand met de persoonlijke sleutel van de client | Server/proxy levert een clientcertificaat terwijl u verbinding maakt met de database. | 
| 1. Stel DBTLSCipher in - de lijst met coderingscoderingen die de client toestaat voor verbindingen met behulp van TLS-protocollen tot TLS 1.2 of DBTLSCipher13 - de lijst met coderingscoderingen die de client toestaat voor verbindingen met behulp van het TLS 1.3-protocol | (MySQL) TLS verbinding wordt gemaakt met behulp van een cijfer uit de opgegeven lijst. (PostgreSQL) Het instellen van deze optie wordt als een fout beschouwd. |