Conexión segura al frontend
Descripción general
Esta sección proporciona pasos de configuración de Zabbix y ejemplos de configuración para conexiones TLS seguras entre Zabbix frontend y Zabbix server.
Configuración
De forma predeterminada, la comunicación entre el frontend de Zabbix y el server de Zabbix no está cifrada. Para mejorar la seguridad, habilite TLS en ambos lados. A continuación se muestra un ejemplo de la forma más sencilla de hacerlo.
1. Genere los certificados y las claves.
Cree un directorio de trabajo:
sudo mkdir -p /etc/zabbix/ssl && cd /etc/zabbix/ssl
Cree un certificado de CA (ajuste el valor MyZabbixCA para que coincida con el nombre común real):
sudo openssl genrsa -out ca.key 4096
sudo openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -subj "/CN=MyZabbixCA/"
Genere una clave privada y un certificado para el server de Zabbix (ajuste el valor zabbix-server.example.com para que coincida con el nombre común real):
sudo openssl genrsa -out server.key 2048
sudo openssl req -new -key server.key -out server.csr -subj "/CN=zabbix-server.example.com/"
sudo openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -sha256 -out server.crt
Genere una clave privada y un certificado para el frontend de Zabbix (ajuste el valor zabbix-frontend-node para que coincida con el nombre común real):
sudo openssl genrsa -out frontend.key 2048
sudo openssl req -new -key frontend.key -out frontend.csr -subj "/CN=zabbix-frontend-node/"
sudo openssl x509 -req -days 365 -in frontend.csr -CA ca.crt -CAkey ca.key -CAcreateserial -sha256 -out frontend.crt
2. Establezca los permisos adecuados.
Para el server de Zabbix (ajuste el propietario y el grupo según el usuario del demonio del server de Zabbix de su distribución):
sudo chown root:zabbix /etc/zabbix/ssl/server.{crt,key} /etc/zabbix/ssl/ca.crt
sudo chmod 640 /etc/zabbix/ssl/server.key
sudo chmod 644 /etc/zabbix/ssl/server.crt /etc/zabbix/ssl/ca.crt
Para el frontend (ajuste el propietario y el grupo según el usuario del servidor web de su distribución):
sudo chown root:www-data /etc/zabbix/ssl/frontend.{crt,key}
sudo chmod 640 /etc/zabbix/ssl/frontend.key
sudo chmod 644 /etc/zabbix/ssl/frontend.crt
3. Configure el server de Zabbix.
En el archivo de configuración del server (zabbix_server.conf), añada:
TLSFrontendAccept=cert
TLSCertFile=/etc/zabbix/ssl/server.crt
TLSKeyFile=/etc/zabbix/ssl/server.key
TLSCAFile=/etc/zabbix/ssl/ca.crt
# Opcionalmente:
# TLSFrontendCertIssuer=CN=MyZabbixCA
# TLSFrontendCertSubject=CN=zabbix-frontend-node
A continuación, reinicie el server:
sudo systemctl restart zabbix-server
4. Configure el frontend de Zabbix.
Durante la instalación de la interfaz web, habilite la opción Cifrar las conexiones desde la interfaz web (y la opción Verificar el emisor y el asunto del certificado del server, si es necesario) y complete los campos Archivo de CA de TLS, Archivo de clave de TLS y Archivo de certificado de TLS (y los campos Emisor del certificado TLS del server y Asunto del certificado TLS del server, si es necesario):

| Parámetro | Descripción |
|---|---|
| Archivo de CA de TLS | Especifique la ruta completa al archivo de certificado de la autoridad certificadora (CA) utilizado para verificar el certificado del server. |
| Archivo de clave de TLS | Especifique la ruta completa al archivo de clave privada del cliente correspondiente al certificado del cliente. |
| Archivo de certificado de TLS | Especifique la ruta completa al archivo de certificado del cliente si se requiere autenticación TLS mutua. |
| Emisor del certificado TLS del server | Especifique un nombre distinguido (DN) del emisor que se comparará con el certificado del server. |
| Asunto del certificado TLS del server | Especifique un nombre distinguido (DN) del asunto que se comparará con el certificado del server. |
En las instalaciones existentes, edite los siguientes parámetros en el archivo de configuración del frontend:
$ZBX_SERVER_TLS['ACTIVE'] = 'true';
$ZBX_SERVER_TLS['CA_FILE'] = '/etc/zabbix/ssl/ca.crt';
$ZBX_SERVER_TLS['KEY_FILE'] = '/etc/zabbix/ssl/frontend.key';
$ZBX_SERVER_TLS['CERT_FILE'] = '/etc/zabbix/ssl/frontend.crt';
// Opcionalmente:
// $ZBX_SERVER_TLS['CERTIFICATE_ISSUER'] = 'CN=MyZabbixCA';
// $ZBX_SERVER_TLS['CERTIFICATE_SUBJECT'] = 'CN=zabbix-server.example.com';
5. Verifique el cifrado confirmando que no haya mensajes de error en el frontend de Zabbix ni en el archivo de registro del server de Zabbix:
tail -f /var/log/zabbix/zabbix_server.log