В этом разделе предоставлено несколько примеров настроек шифрования для CentOS 8.2 и PostgreSQL 13.
Если значение поля Хост базы данных начинается с косой черты или это поле пустое, то соединения между веб-интерфейсом Zabbix и PostgreSQL шифрованными быть не могут (параметры в GUI выключаются).
Установите базу данных PostgreSQL, используя официальный репозиторий.
"Из коробки" PostgreSQL не настроен на приём TLS подключений. Пожалуйста, следуйте инструкциям из документации PostgreSQL для подготовки сертификата и postgresql.conf [en], а также для контроля доступа пользователей[en] посредством файла ph_hba.conf.
По умолчанию, сокет PostgreSQL привязан к localhost, для удалённых сетевых подключений разрешите прослушивание на реальном сетевом интерфейсе.
Настройки 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 и базой данных:
Чтобы включить только шифрование на транспортном уровне для соединений между сервером Zabbix и базой данных, настройте /etc/zabbix/zabbix_server.conf:
...
DBHost=10.211.55.9
DBName=zabbix
DBUser=zbx_srv
DBPassword=<strong_password>
DBTLSConnect=required
...
Чтобы включить шифрование с проверкой сертификата для соединений между веб-интерфейсом Zabbix и базой данных:
В качестве альтернативы, можно выставить в /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 и базой данных:
Как альтернатива, можно задать в /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: