2 Configurazione della crittografia PostgreSQL2
Panoramica
Questa sezione fornisce diversi esempi di configurazione della crittografia per CentOS 8.2 e PostgreSQL 13.
La connessione tra Zabbix frontend e PostgreSQL non può essere crittografata (i parametri nella GUI sono disabilitati) se il valore del campo Database host inizia con una barra oppure se il campo è vuoto.
Prerequisiti
Installare il database PostgreSQL utilizzando il repository ufficiale.
PostgreSQL non è configurato per accettare connessioni TLS immediatamente dopo l'installazione. Seguire le istruzioni della documentazione di PostgreSQL per la preparazione dei certificati con postgresql.conf e anche per il controllo dell'accesso utente tramite ph_hba.conf.
Per impostazione predefinita, il socket di PostgreSQL è associato a localhost; per consentire connessioni remote di rete, abilitare l'ascolto sull'interfaccia di rete reale.
Le impostazioni di PostgreSQL per tutte le modalità possono essere simili a queste:
/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'
...
Per il controllo degli accessi, modificare /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
...
Crittografia solo del trasporto
Frontend
Per abilitare la crittografia del solo trasporto per le connessioni tra il frontend di Zabbix e il database:
- Selezionare Database TLS encryption
- Lasciare deselezionato Verify database certificate

Server
Per abilitare la crittografia solo del trasporto per le connessioni tra server e il database, configurare /etc/zabbix/zabbix_server.conf:
...
DBHost=10.211.55.9
DBName=zabbix
DBUser=zbx_srv
DBPassword=<strong_password>
DBTLSConnect=required
...
Crittografia con verifica dell'autorità di certificazione
Frontend
Per abilitare la crittografia con verifica dell'autorità di certificazione per le connessioni tra il frontend di Zabbix e il database:
- Selezionare Database TLS encryption e Verify database certificate
- Specificare il percorso di Database TLS CA file

In alternativa, è possibile impostarlo in /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'] = '';
...
Server
Per abilitare la crittografia con verifica del certificato per le connessioni tra Zabbix server e il database, configurare /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
...
Crittografia con verifica completa
Frontend
Per abilitare la crittografia con certificato e la verifica dell'identità del host del database per le connessioni tra il frontend di Zabbix e il database:
- Selezionare Database TLS encryption e Verify database certificate
- Specificare il percorso di Database TLS key file
- Specificare il percorso di Database TLS CA file
- Specificare il percorso di Database TLS certificate file
- Selezionare Database host verification

In alternativa, è possibile impostarlo in /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'] = '';
...
Server
Per abilitare la crittografia con certificato e la verifica dell'identità del host del database per le connessioni tra Zabbix server e il database, configurare /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
...