Configuration du chiffrement PostgreSQL
Vue d'ensemble
Cette section fournit plusieurs exemples de configuration du chiffrement pour CentOS 8.2 et PostgreSQL 13.
La connexion entre l'interface Zabbix et PostgreSQL ne peut pas être chiffrée (les paramètres dans l'interface graphique sont désactivés) si la valeur du champ Database host commence par une barre oblique ou si le champ est vide.
Pré-requis
Installez la base de données PostgreSQL à l'aide du dépôt officiel.
PostgreSQL n'est pas configuré par défaut pour accepter les connexions TLS. Veuillez suivre les instructions de la documentation PostgreSQL pour la préparation des certificats avec postgresql.conf ainsi que pour le contrôle d'accès des utilisateurs via ph_hba.conf.
Par défaut, le socket PostgreSQL est lié à localhost, afin que les connexions réseau distantes puissent écouter sur la véritable interface réseau.
Les paramètres PostgreSQL pour tous les modes peuvent ressembler à ceci :
/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'
...
Pour le contrôle d'accès, ajustez /var/lib/pgsql/13/data/pg_hba.conf :
...
### 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
...
Chiffrement du transport uniquement
Interface
Pour activer le chiffrement du transport uniquement pour les connexions entre l'interface Zabbix et la base de données :
- Cochez Chiffrement TLS de la base de données
- Laissez Vérifier le certificat de la base de données décoché

Serveur
Pour activer le chiffrement du transport uniquement pour les connexions entre le serveur et la base de données, modifiez le fichier de configuration zabbix_server.conf :
...
DBHost=10.211.55.9
DBName=zabbix
DBUser=zbx_srv
DBPassword=<strong_password>
DBTLSConnect=required
...
Chiffrement avec vérification de l'autorité de certification
Interface
Pour activer le chiffrement avec vérification de l'autorité de certification pour les connexions entre l'interface Zabbix et la base de données :
- Cochez Database TLS encryption et Verify database certificate
- Indiquez le chemin vers Database TLS CA file

Vous pouvez également définir cela dans /etc/zabbix/web/zabbix.conf.php :
...
$DB['ENCRYPTION'] = true;
$DB['KEY_FILE'] = '';
$DB['CERT_FILE'] = '';
$DB['CA_FILE'] = '/etc/ssl/pgsql/root.crt';
$DB['VERIFY_HOST'] = false;
$DB['CIPHER_LIST'] = '';
...
Serveur
Pour activer le chiffrement avec vérification du certificat pour les connexions entre le serveur Zabbix et la base de données, modifiez le fichier de configuration zabbix_server.conf configuration file :
...
DBHost=10.211.55.9
DBName=zabbix
DBUser=zbx_srv
DBPassword=<strong_password>
DBTLSConnect=verify_ca
DBTLSCAFile=/etc/ssl/pgsql/root.crt
...
Chiffrement avec vérification complète
Interface
Pour activer le chiffrement avec certificat et la vérification de l'identité de l'hôte de la base de données pour les connexions entre l'interface Zabbix et la base de données :
- Cochez Database TLS encryption et Verify database certificate
- Indiquez le chemin vers Database TLS key file
- Indiquez le chemin vers Database TLS CA file
- Indiquez le chemin vers Database TLS certificate file
- Cochez Database host verification

Sinon, cela peut être défini dans /etc/zabbix/web/zabbix.conf.php :
$DB['ENCRYPTION'] = true;
$DB['KEY_FILE'] = '';
$DB['CERT_FILE'] = '';
$DB['CA_FILE'] = '/etc/ssl/pgsql/root.crt';
$DB['VERIFY_HOST'] = true;
$DB['CIPHER_LIST'] = '';
...
Serveur
Pour activer le chiffrement avec certificat et la vérification de l'identité de l'hôte de la base de données pour les connexions entre le serveur Zabbix et la base de données, modifiez le fichier de configuration zabbix_server.conf :
...
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
...