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