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 šifrēšanu savienojumiem starp serveri un datubāzi, rediģējiet zabbix_server.conf 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 sertifikātu iestādes verifikāciju savienojumiem starp Zabbix lietotāja saskarni un datubāzi:

  • Atzīmējiet Database TLS encryption un Verify database certificate
  • Norādiet ceļu uz Database TLS CA file

Alternatīvi to var iestatīt failā /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'] = '';
...

Serveris

Lai iespējotu šifrēšanu ar sertifikāta pārbaudi savienojumiem starp Zabbix serveri un datubāzi, rediģējiet zabbix_server.conf 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 host 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

Alternatīvi to var iestatīt failā /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'] = '';
...

Serveris

Lai iespējotu šifrēšanu ar sertifikātu un datubāzes host identitātes pārbaudi savienojumiem starp Zabbix serveri un datubāzi, rediģējiet zabbix_server.conf 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
...