Esta sección proporciona pasos de configuración de Zabbix y ejemplos de configuración para conexiones TLS seguras entre:
Base de datos | Componentes Zabbix |
---|---|
MySQL | Frontal Zabbix, servidor Zabbix, proxy Zabbix |
PostgreSQL | Frontal Zabbix, servidor Zabbix, proxy Zabbix |
Para configurar el cifrado de la conexión dentro del DBMS, consulte la documentación del proveedor oficial para más detalles:
Todos los ejemplos se basan en las versiones GA de MySQL CE (8.0) y PgSQL. (13) disponibles a través de repositorios oficiales usando AlmaLinux 8.
Se requiere lo siguiente para configurar el cifrado:
Se recomienda evitar un SO en su fase final de vida, especialmente en el caso de nuevas instalaciones
Establecer esta opción obliga a utilizar la conexión TLS a la base de datos desde el servidor/proxy Zabbix y frontend a la base de datos:
Se puede configurar una conexión segura a la base de datos durante la interfaz instalación:
Para MySQL, la casilla de verificación Cifrado TLS de base de datos está deshabilitada, si el Equipo de base de datos está configurado en localhost, porque la conexión que utiliza un archivo de socket (en Unix) o memoria compartida (en Windows) no puede estar cifrado.
Para PostgreSQL, la casilla de verificación Cifrado TLS está deshabilitada, si el valor del campo Equipo de base de datos comienza con una barra o el campo está vacío.
Los siguientes parámetros están disponibles en el cifrado TLS en modo de certificados (si ambas casillas de verificación están marcadas):
Parámetro | Descripción |
---|---|
Archivo CA TLS de base de datos | Especifique la ruta completa a un archivo de autoridad de certificación (CA) TLS válido. |
Archivo de clave TLS de base de datos | Especifique la ruta completa a un archivo de clave TLS válido. |
Archivo de certificado TLS de base de datos | Especifique la ruta completa a un archivo de certificado TLS válido. |
Verificación del equipo de la base de datos | Marque esta casilla de verificación para activar la verificación del equipo. Deshabilitado para MYSQL, porque la biblioteca PHP MySQL no permite omitir el paso de validación del certificado de pares. |
Lista de cifrado TLS de base de datos | Especifique una lista personalizada de cifrados válidos. El formato de la lista de cifrado debe cumplir con el estándar OpenSSL. Disponible solo para MySQL. |
Los parámetros TLS deben apuntar a archivos válidos. Si apuntan a archivos inexistentes o no válidos, dará lugar a un error de autorización.
Si los archivos de certificado se pueden escribir, la interfaz genera una advertencia en el la información del sistema informando que "los archivos de certificado TLS deben ser de solo lectura". (sólo se muestra si el usuario PHP es el propietario del certificado).
No se admiten certificados protegidos por contraseñas.
La interfaz de Zabbix utiliza la interfaz GUI para definir posibles opciones: required, verify_ca, verify_full. Especifique las opciones requeridas en el paso del asistente de instalación Configurar conexiones de base de datos. Estas opciones están asignadas al archivo de configuración (zabbix.conf.php) de la siguiente manera:
Configuración de GUI | Archivo de configuración | Descripción | Resultado |
---|---|---|---|
... // Se utiliza para la conexión TLS. $DB ['ENCRYPTION'] = true; $DB['KEY_FILE'] = ''; $DB['CERT_FILE'] = ''; $ DB['CA_FILE'] = ''; $DB['VERIFY_HOST'] = false; $DB['CIPHER_LIST'] = '';< br>... |
Marque Cifrado TLS de la base de datos Deje Verificar certificado de la base de datos sin marcar |
Habilitar el modo 'required'. | |
... $DB['ENCRYPTION'] = true; \\ $DB['KEY_FILE'] = ''; $DB['CERT_FILE'] = ''; $DB['CA_FILE' ] = '/etc/ssl/mysql/ca.pem'; $DB['VERIFY_HOST'] = false; $DB['CIPHER_LIST'] = ''; ... |
1. Marque Cifrado TLS de base de datos y Verificar certificado de base de datos 2. Especifique la ruta al archivo CA TLS de la base de datos |
Habilite el modo 'verify_ca'. | |
... // Se utiliza para conexiones TLS con una lista de cifrado estrictamente definida. $DB['ENCRYPTION'] = true; $DB['KEY_FILE'] = '<clave_archivo_ruta>'; $DB['CERT _FILE'] = '<clave_archivo_ruta>'; $DB['CA_FILE'] = '<clave_archivo_ruta>'; $DB['VERIFY _HOST'] = true; $DB['CIPHER_LIST'] = '<cipher_list>'; ... O: ... // Se utiliza para conexión TLS sin lista de cifrado definida - seleccionada por el servidor MySQL $DB['ENCRYPTION'] = true; $DB['KEY_FILE'] = '<clave_archivo_ruta>'; $DB['CERT_FILE'] = '<clave_archivo_ruta>'; $DB['CA_FILE'] = '<clave_archivo_ruta>'; $DB['VERIFY_HOST'] = true; $DB['CIPHER_LIST'] = ''; . .. |
1. Marque Cifrado TLS de base de datos y Verificar certificado de base de datos 2. Especifique la ruta al archivo de clave TLS de la base de datos 3. Especifique la ruta al archivo CA TLS de base de datos 4. Especifique la ruta al archivo de certificado TLS de la base de datos 6. Especifique la lista de cifrado TLS (opcional) |
Habilite el modo 'verify_full' para MySQL. | |
... $DB['ENCRYPTION'] = true; $DB['KEY_FILE'] = '<clave_archivo_ruta>'; $DB['CERT_FILE'] = '<clave_archivo_ruta>'; $DB['CA_FILE'] = '<clave_archivo_ruta>'; $DB['VERIFY_HOST'] = true; $DB[' CIPHER_LIST'] = ' '; ... |
1. Marque Cifrado TLS de base de datos y Verificar certificado de base de datos 2. Especifique la ruta al archivo de clave TLS de la base de datos 3. Especifique la ruta al archivo CA TLS de base de datos 4. Especifique la ruta al archivo de certificado TLS de la base de datos 6. Marque Verificación del equipo de la base de datos |
Habilite el modo 'verify_full' para PostgreSQL. |
Ver también: Ejemplos de configuración de cifrado para MySQL, Ejemplos de configuración de cifrado para PostgreSQL.
Las conexiones seguras a la base de datos se pueden configurar con los respectivos parámetros en el [servidor] Zabbix(/manual/appendix/config/zabbix_server) y/o archivo de configuración del proxy.
Configuración | Resultado |
---|---|
None | Conexión a la base de datos sin cifrar. |
1. Establezca DBTLSConnect=required | Servidor/proxy para realizar una conexión TLS a la base de datos. No se permite una conexión no cifrada. |
1. Establezca DBTLSConnect=verify_ca 2. Establecer DBTLSCAFile: especifique el archivo de autoridad de certificación TLS |
El servidor/proxy realiza una conexión TLS a la base de datos después de verificar el certificado de la base de datos. |
1. Establezca DBTLSConnect=verify_full 2. Establecer DBTLSCAFile: especifique el archivo de autoridad de certificación TLS |
El servidor/proxy realiza una conexión TLS a la base de datos después de verificar el certificado de la base de datos y la identidad del equipo de la base de datos. |
1. Establezca DBTLSCAFile: especifique el archivo de autoridad de certificación TLS 2. Configure DBTLSCertFile: especifique el archivo de certificado de clave pública del cliente 3. Establezca DBTLSKeyFile: especifique el archivo de clave privada del cliente |
El servidor/proxy proporciona un certificado de cliente mientras se conecta a la base de datos. |
1. Configure DBTLSCipher: la lista de cifrados que el cliente permite para conexiones que utilizan protocolos TLS hasta TLS 1.2 o DBTLSCipher13: la lista de cifrados que el cliente permite para conexiones que utilizan el protocolo TLS 1.3 |
(MySQL) TLS la conexión se realiza utilizando un cifrado de la lista proporcionada. (PostgreSQL) Establecer esta opción se considerará un error. |