Esta sección proporciona varios ejemplos de configuración de cifrado para CentOS 8.2 y PostgreSQL 13.
La conexión entre el frontend de Zabbix y PostgreSQL no puede ser cifrada (los parámetros en la GUI están deshabilitados), si el valor del campo Equipo de base de datos comienza con una barra o el campo está vacío.
Instale la base de datos PostgreSQL utilizando el repositorio oficial.
PostgreSQL no está configurado para aceptar conexiones TLS por defecto. Por favor, siga las instrucciones de la documentación de PostgreSQL para la preparación de certificados con postgresql.conf y también para el control de acceso de usuarios mediante ph_hba.conf.
Por defecto, el socket de PostgreSQL está vinculado al localhost, para permitir conexiones remotas de red debe permitir la escucha en la interfaz de red real.
La configuración de PostgreSQL para todos los modos puede ser similar a la siguiente:
/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'
...
Para el control de acceso ajuste /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
...
Para habilitar el cifrado solo de transporte para las conexiones entre la interfaz web de Zabbix y la base de datos:
Para habilitar el cifrado solo de transporte para las conexiones entre el servidor y la base de datos, configure /etc/zabbix/zabbix_server.conf:
...
DBHost=10.211.55.9
DBName=zabbix
DBUser=zbx_srv
DBPassword=<strong_password>
DBTLSConnect=required
...
Para habilitar el cifrado con verificación de autoridad certificadora para las conexiones entre la interfaz web de Zabbix y la base de datos:
Alternativamente, esto se puede configurar en /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'] = '';
...
Para habilitar el cifrado con verificación de certificado para las conexiones entre el servidor Zabbix y la base de datos, configure /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
...
Para habilitar el cifrado con certificado y la verificación de identidad del equipo de la base de datos para las conexiones entre la interfaz web de Zabbix y la base de datos:
Alternativamente, esto se puede configurar en /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'] = '';
...
Para habilitar el cifrado con certificado y la verificación de la identidad del equipo de la base de datos para las conexiones entre el servidor Zabbix y la base de datos, configure /etc/zabbix/zabbix_server.conf: