2 Configuración de cifrado de PostgreSQL

Descripción general

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.

Requisitos previos

Instale la base de datos PostgreSQL usando el repositorio oficial.

PostgreSQL no está configurado para aceptar conexiones TLS de forma predeterminada. 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.

De forma predeterminada, el socket de PostgreSQL está vinculado a localhost, para que las conexiones remotas de red permitan la escucha en la interfaz de red real.

La configuración de PostgreSQL para todos los modes puede verse así:

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

Cifrado solo de transporte

Interfaz web

Para habilitar el cifrado solo de transporte para las conexiones entre la interfaz web de Zabbix y la base de datos:

  • Marque Cifrado TLS de base de datos
  • Deje Verificar certificado de base de datos sin marcar

Server

Para habilitar el cifrado solo de transporte para las conexiones entre server 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
...

Cifrado con verificación de autoridad certificadora

Frontend

Para habilitar el cifrado con verificación de la autoridad certificadora para las conexiones entre Zabbix frontend y la base de datos:

  • Marque Database TLS encryption y Verify database certificate
  • Especifique la ruta al Database TLS CA file

Como alternativa, 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'] = '';
...

Server

Para habilitar el cifrado con verificación de certificado para las conexiones entre Zabbix server 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
...

Cifrado con verificación completa

Frontend

Para habilitar el cifrado con certificado y la verificación de la identidad del host de la base de datos para las conexiones entre el frontend de Zabbix y la base de datos:

  • Marque Database TLS encryption y Verify database certificate
  • Especifique la ruta del Database TLS key file
  • Especifique la ruta del Database TLS CA file
  • Especifique la ruta del Database TLS certificate file
  • Marque Database host verification

Como alternativa, 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'] = '';
...

Server

Para habilitar el cifrado con certificado y la verificación de la identidad del host de la base de datos para las conexiones entre Zabbix server 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_full
DBTLSCAFile=/etc/ssl/pgsql/root.crt
DBTLSCertFile=/etc/ssl/pgsql/client.crt
DBTLSKeyFile=/etc/ssl/pgsql/client.key
...