This is a translation of the original English documentation page. Help us make it better.

4 Beveiligde verbinding met de database

Overzicht

Dit gedeelte biedt Zabbix-installatiestappen 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 in te stellen binnen het DBMS, zie officiële leverancier documentatie voor details:

  • MySQL: bron- en replicareplicatiedatabaseservers.
  • MySQL: groepsreplicatie, enz. databaseservers.
  • PostgreSQL encryptie opties.

Alle voorbeelden zijn gebaseerd op de GA-releases van MySQL CE (8.0) en PgSQL (13) beschikbaar via officiële repositories met CentOS 8.

Vereisten

Het volgende is vereist om encryptie in te stellen:

  • Door ontwikkelaars ondersteund besturingssysteem met OpenSSL >=1.1.X of alternatief.

Het wordt aanbevolen om OS in de end-of-life-status te vermijden, vooral bij nieuwe installaties

  • Database-engine (RDBMS) geïnstalleerd en onderhouden door de officiële opslagplaats beschikbaar gesteld door de ontwikkelaar. Besturingssystemen worden vaak verzonden met verouderde databasesoftwareversies waarvoor versleuteling ondersteuning is niet geïmplementeerd, bijvoorbeeld op RHEL 7 gebaseerde systemen en PostgreSQL 9.2, MariaDB 5.5 zonder coderingsondersteuning.
Terminologie

Door deze optie in te stellen wordt afgedwongen om TLS-verbinding met database te gebruiken van Zabbix-server/proxy en frontend naar database:

  • vereist - verbinding maken met TLS als transportmodus zonder identiteit cheques;
  • verifieer_ca - maak verbinding via TLS en verifieer het certificaat;
  • verifieer_full - maak verbinding via TLS, verifieer certificaat en verifieer dat database-identiteit (CN) gespecificeerd door DBHost komt overeen met zijn certificaat;

Zabbix-configuratie

Frontend naar de database

Een beveiligde verbinding met de database kan worden geconfigureerd tijdens de frontend installatie:

  • Schakel het selectievakje Database TLS-codering in bij DB configureren verbinding stap om transportversleuteling in te schakelen.
  • Schakel het selectievakje Verifieer databasecertificaat in dat verschijnt wanneer TLS-codering veld is aangevinkt om codering in te schakelen met certificaten.

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.

Gebruiksgevallen

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.

Zabbix server/proxy configuratie

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.
To toggle search highlight, press Ctrl+Alt+H
Have an improvement suggestion for this page? Select the text that could be improved and press Ctrl+Enter to send it to the editors.