#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. |