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

2 PostgreSQL encryption configuration

Aperçu

Cette section fournit plusieurs exemples de configuration de 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 Hôte de la base de données commence par une barre oblique ou si le champ est vide.

Prérequis

Installez la base de données PostgreSQL à l'aide du référentiel officiel.

PostgreSQL n'est pas configuré de base pour accepter les connexions TLS. Veuillez suivre les instructions de la documentation PostgreSQL pour la préparation du certificat avec postgresql.conf et aussi pour le contrôle d'accès utilisateur via ph_hba.conf.

Par défaut, le socket PostgreSQL est lié à l'hôte local, car les connexions réseau à distance permettent d'écouter sur l'interface réseau réelle.

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

Mode requis

Frontend

Pour activer le chiffrement de transport uniquement pour les connexions entre l'interface Zabbix et la base de données :

  • Cochez Cryptage 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 de transport uniquement pour les connexions entre le serveur et la base de données, configurez /etc/zabbix/zabbix_server.conf :

...
       DBHost=10.211.55.9
       DBName=zabbix
       DBUser=zbx_srv
       DBPassword=<strong_password>
       DBTLSConnect=required
       ...

Vérifier le mode CA

Frontend

Pour activer le chiffrement avec vérification par l'autorité de certification pour les connexions entre l'interface Zabbix et la base de données :

  • Cochez Cryptage TLS de la base de données et Vérifiez le certificat de la base de données
  • Spécifiez le chemin d'accès au fichier de clé TLS de la base de données
  • Spécifiez le chemin d'accès au * fichier CA TLS de la base de données *
  • Spécifiez le chemin d'accès au fichier de certificat TLS de la base de données

Alternativement, 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'] = false;
       $DB['CIPHER_LIST'] = '';
       ...

Serveur

Pour activer le chiffrement avec vérification de certificat pour les connexions entre le serveur Zabbix et la base de données, configurez /etc/zabbix/zabbix_server.conf :

...
       DBHost=10.211.55.9
       DBName=zabbix
       DBUser=zbx_srv
       DBPassword=<strong_password>
       DBTLSConnect=verify_ca
       DBTLSCAFile=/etc/ssl/pgsql/root.crt
       ...

Vérifier le mode Full

Frontend

Pour activer le chiffrement avec certificat et 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 Cryptage TLS de la base de données et Vérifiez le certificat de la base de données
  • Spécifiez le chemin d'accès au fichier de clé TLS de la base de données
  • Spécifiez le chemin d'accès au * fichier CA TLS de la base de données *
  • Spécifiez le chemin d'accès au fichier de certificat TLS de la base de données
  • Cochez * Vérification de l'hôte de la base de données *

Alternativement, 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 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, configurez /etc/zabbix/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
       ...