PostgreSQL-Verschlüsselungskonfiguration
Übersicht
Dieser Abschnitt enthält mehrere Beispiele für die Verschlüsselungskonfiguration für CentOS 8.2 und PostgreSQL 13.
Die Verbindung zwischen dem Zabbix-Frontend und PostgreSQL kann nicht verschlüsselt werden (die Parameter in der GUI sind deaktiviert), wenn der Wert des Feldes Database host mit einem Schrägstrich beginnt oder das Feld leer ist.
Voraussetzungen
Installieren Sie die PostgreSQL-Datenbank über das offizielle Repository.
PostgreSQL ist standardmäßig nicht so konfiguriert, dass TLS-Verbindungen akzeptiert werden. Bitte folgen Sie den Anweisungen in der PostgreSQL-Dokumentation zur Zertifikatsvorbereitung mit postgresql.conf sowie zur Benutzerzugriffskontrolle über ph_hba.conf.
Standardmäßig ist der PostgreSQL-Socket an localhost gebunden, damit für Netzwerk-Remoteverbindungen das Lauschen auf der tatsächlichen Netzwerkschnittstelle erlaubt ist.
Die PostgreSQL-Einstellungen für alle Modi können wie folgt aussehen:
/var/lib/pgsql/13/data/postgresql.conf:
...
ssl = on
ssl_ca_file = 'root.crt'
ssl_cert_file = 'server.crt'
ssl_key_file = 'server.key'
ssl_ciphers = 'HIGH:MEDIUM:+3DES:!aNULL'
ssl_prefer_server_ciphers = on
ssl_min_protocol_version = 'TLSv1.3'
...
Passen Sie für die Zugriffskontrolle /var/lib/pgsql/13/data/pg_hba.conf an:
...
### require
hostssl all all 0.0.0.0/0 md5
### verify CA
hostssl all all 0.0.0.0/0 md5 clientcert=verify-ca
### verify full
hostssl all all 0.0.0.0/0 md5 clientcert=verify-full
...
Nur-Transport-Verschlüsselung
Frontend
Um nur die Transportverschlüsselung für Verbindungen zwischen dem Zabbix Frontend und der Datenbank zu aktivieren:
- Database TLS encryption aktivieren
- Verify database certificate deaktiviert lassen

Server
Um die reine Transportverschlüsselung für Verbindungen zwischen Server und Datenbank zu aktivieren, bearbeiten Sie die Server-Konfigurationsdatei:
...
DBHost=10.211.55.9
DBName=zabbix
DBUser=zbx_srv
DBPassword=<strong_password>
DBTLSConnect=required
...
Verschlüsselung mit Überprüfung der Zertifizierungsstelle
Frontend
Um die Verschlüsselung mit Zertifizierungsstellenprüfung für Verbindungen zwischen dem Zabbix-Frontend und der Datenbank zu aktivieren:
- Aktivieren Sie Datenbank-TLS-Verschlüsselung und Datenbankzertifikat überprüfen
- Geben Sie den Pfad zur Datenbank-TLS-CA-Datei an

Alternativ kann dies in der Frontend-Konfigurationsdatei (zabbix.conf.php) festgelegt werden:
...
$DB['ENCRYPTION'] = true;
$DB['KEY_FILE'] = '';
$DB['CERT_FILE'] = '';
$DB['CA_FILE'] = '/etc/ssl/pgsql/root.crt';
$DB['VERIFY_HOST'] = false;
$DB['CIPHER_LIST'] = '';
...
Server
Um die Verschlüsselung mit Zertifikatsüberprüfung für Verbindungen zwischen dem Zabbix-Server und der Datenbank zu aktivieren, bearbeiten Sie die Server-Konfigurationsdatei:
...
DBHost=10.211.55.9
DBName=zabbix
DBUser=zbx_srv
DBPassword=<strong_password>
DBTLSConnect=verify_ca
DBTLSCAFile=/etc/ssl/pgsql/root.crt
...
Verschlüsselung mit vollständiger Verifizierung
Frontend
Um die Verschlüsselung mit Zertifikat und die Identitätsprüfung des Datenbank-Hosts für Verbindungen zwischen dem Zabbix-Frontend und der Datenbank zu aktivieren:
- Aktivieren Sie Datenbank-TLS-Verschlüsselung und Datenbankzertifikat überprüfen
- Geben Sie den Pfad zur Datei mit dem Datenbank-TLS-Schlüssel an
- Geben Sie den Pfad zur Datenbank-TLS-CA-Datei an
- Geben Sie den Pfad zur Datenbank-TLS-Zertifikatsdatei an
- Aktivieren Sie Datenbank-Host überprüfen

Alternativ kann dies in der Frontend-Konfigurationsdatei (zabbix.conf.php) festgelegt werden:
$DB['ENCRYPTION'] = true;
$DB['KEY_FILE'] = '';
$DB['CERT_FILE'] = '';
$DB['CA_FILE'] = '/etc/ssl/pgsql/root.crt';
$DB['VERIFY_HOST'] = true;
$DB['CIPHER_LIST'] = '';
...
Server
Um die Verschlüsselung mit Zertifikat und die Überprüfung der Identität des Datenbank-Hosts für Verbindungen zwischen dem Zabbix-Server und der Datenbank zu aktivieren, bearbeiten Sie die Server-Konfigurationsdatei:
...
DBHost=10.211.55.9
DBName=zabbix
DBUser=zbx_srv
DBPassword=<strong_password>
DBTLSConnect=verify_full
DBTLSCAFile=/etc/ssl/pgsql/root.crt
DBTLSCertFile=/etc/ssl/pgsql/client.crt
DBTLSKeyFile=/etc/ssl/pgsql/client.key
...