PostgreSQL šifrēšanas konfigurācija
Pārskats
Šajā sadaļā ir sniegti vairāki šifrēšanas konfigurācijas piemēri CentOS 8.2 un PostgreSQL 13.
Savienojumu starp Zabbix lietotāja saskarni un PostgreSQL nevar šifrēt (parametri GUI ir atspējoti), ja lauka Database host vērtība sākas ar slīpsvītru vai lauks ir tukšs.
Priekšnosacījumi
Instalējiet PostgreSQL datubāzi, izmantojot oficiālo repozitoriju.
PostgreSQL pēc noklusējuma nav konfigurēts TLS savienojumu pieņemšanai. Lūdzu, sekojiet PostgreSQL dokumentācijā sniegtajām instrukcijām par sertifikāta sagatavošanu ar postgresql.conf, kā arī par lietotāju piekļuves kontroli caur ph_hba.conf.
Pēc noklusējuma PostgreSQL ligzda ir piesaistīta localhost, lai tīkla attālinātie savienojumi varētu klausīties uz reālā tīkla interfeisa.
PostgreSQL iestatījumi visiem režīmiem var izskatīties šādi:
/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'
...
Piekļuves kontrolei pielāgojiet /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
...
Tikai transporta šifrēšana
Lietotāja saskarne
Lai iespējotu tikai transporta šifrēšanu savienojumiem starp Zabbix lietotāja saskarni un datubāzi:
- Atzīmējiet Database TLS encryption
- Neatzīmējiet Verify database certificate

Serveris
Lai iespējotu tikai transporta līmeņa šifrēšanu savienojumiem starp serveri un datubāzi, rediģējiet servera konfigurācijas failu:
...
DBHost=10.211.55.9
DBName=zabbix
DBUser=zbx_srv
DBPassword=<strong_password>
DBTLSConnect=required
...
Šifrēšana ar sertifikātu iestādes verifikāciju
Lietotāja saskarne
Lai iespējotu šifrēšanu ar sertificēšanas iestādes pārbaudi savienojumiem starp Zabbix lietotāja saskarni un datubāzi:
- Atzīmējiet Datubāzes TLS šifrēšana un Pārbaudīt datubāzes sertifikātu
- Norādiet Datubāzes TLS CA faila ceļu

To var iestatīt arī lietotāja saskarnes konfigurācijas failā (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'] = '';
...
Serveris
Lai iespējotu šifrēšanu ar sertifikāta pārbaudi savienojumiem starp Zabbix serveri un datubāzi, rediģējiet servera konfigurācijas failu:
...
DBHost=10.211.55.9
DBName=zabbix
DBUser=zbx_srv
DBPassword=<strong_password>
DBTLSConnect=verify_ca
DBTLSCAFile=/etc/ssl/pgsql/root.crt
...
Šifrēšana ar pilnu verifikāciju
Lietotāja saskarne
Lai iespējotu šifrēšanu ar sertifikātu un datubāzes hosts identitātes pārbaudi savienojumiem starp Zabbix lietotāja saskarni un datubāzi:
- Atzīmējiet Database TLS encryption un Verify database certificate
- Norādiet Database TLS key file ceļu
- Norādiet Database TLS CA file ceļu
- Norādiet Database TLS certificate file ceļu
- Atzīmējiet Database host verification

Varat to iestatīt arī lietotāja saskarnes konfigurācijas failā (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'] = '';
...
Serveris
Lai iespējotu šifrēšanu ar sertifikātu un datubāzes resursdatora identitātes pārbaudi savienojumiem starp Zabbix serveri un datubāzi, rediģējiet servera konfigurācijas failu:
...
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
...