2 Конфигурација PostgreSQL енкрипције

Преглед

Ова секција пружа неколико примера конфигурације шифровања за CentOS 8.2 и PostgreSQL 13.

Веза између Zabbix корисничког интерфејса и PostgreSQL-а не може бити шифрована (параметри у GUI су онемогућени), ако вредност поља Домаћина базе података почиње косом цртом или је поље празно.

Предуслови

Инсталирајте PostgreSQL базу података користећи официјално спремиште.

PostgreSQL није конфигурисан за прихватање TLS конекција ван кутије. Пратите упутства из PostgreSQL документације за израда сертификата са postgresql.conf и такође за кориснички приступ контрола преко ph_hba.conf.

Подразумевано, PostgreSQL сокет је везан за локални домаћин, за мрежне удаљене везе како би се омогућило слушање на стварној мрежи интерфејс.

PostgreSQL подешавања за све режими може изгледати као ово:

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

За контролу приступа подесите /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
       ...

Шифровање само за транспорт

Кориснички интерфејс

Да бисте омогућили шифровање само за транспорт за везе између Zabbix корисничког интерфејса и база података:

  • Проверите * Шифровање TLS базе података*
  • Оставите Провери сертификат базе података неозначеним

Сервер

Да бисте омогућили шифровање само за транспорт за везе између сервера и базе података, конфигуришите /etc/zabbix/zabbix_server.conf:

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

Шифровање са верификацијом ауторитета за сертификат

Кориснички интерфејс

Да бисте омогућили шифровање са верификацијом ауторитета за сертификате за везе између Zabbix корисничког интерфејса и базе података:

  • Проверите * TLS шифровање базе података* и Верификовање сертификата базе података
  • Наведите путању до TLS CA датотеке базе података

Алтернативно, ово се може подесити у /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'] = '';
       ...

Сервер

Да бисте омогућили шифровање са верификацијом сертификата за везе између Zabbix сервера и базе података, конфигуришите /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
       ...

Шифровање са потпуном верификацијом

Кориснички интерфејс

Да бисте омогућили шифровање са сертификатом и идентитетом домаћина базе података верификација веза између Zabbix корисничког интерфејса и базе података:

  • Проверите Шифровање TLS базе података и Верификујте сертификат базе података
  • Наведите путању до Кључ TLS датотеке базе података
  • Наведите путању до Датотеке TLS CA базе података
  • Одредите путању до Датотеке TLS сертификата базе података
  • Проверите верификацију домаћина базе података

Алтернативно, ово се може подесити у /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'] = '';
       ...

Сервер

Да бисте омогућили шифровање са сертификатом и идентитетом домаћина базе података Zabbix сервера и базе података, конфигуришите /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
       ...