6 Conexión segura a la interfaz web
Descripción general
Esta sección proporciona los pasos de configuración de Zabbix y ejemplos de configuración para conexiones TLS seguras entre el frontend de Zabbix y el servidor de Zabbix.
Configuración
De forma predeterminada, la comunicación entre Zabbix frontend y Zabbix server no está cifrada. Para una mejor seguridad, habilite TLS en ambos lados. A continuación se muestra un ejemplo de la forma más sencilla de hacerlo.
1. Genere certificados y claves.
Cree un directorio de trabajo:
sudo mkdir -p /etc/zabbix/ssl && cd /etc/zabbix/ssl
Cree un certificado 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 Zabbix server (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 Zabbix frontend (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 Zabbix server (ajuste el propietario/grupo según el usuario del daemon de Zabbix server 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 frontend (ajuste el propietario/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 Zabbix server.
En 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
Luego reinicie el server:
sudo systemctl restart zabbix-server
4. Configure Zabbix frontend.
Durante la instalación de la interfaz web, habilite la opción Encrypt connections from Web interface (y la opción Verify server certificate issuer and subject, si es necesario) y complete los campos TLS CA file, TLS key file, TLS certificate file (y los campos Server TLS certificate issuer y Server TLS certificate subject, si es necesario):

| Parameter | Description |
|---|---|
| TLS CA file | Especifique la ruta completa al archivo del certificado de la Autoridad de Certificación (CA) utilizado para verificar el certificado del server. |
| TLS key file | Especifique la ruta completa al archivo de la clave privada del cliente correspondiente al certificado del cliente. |
| TLS certificate file | Especifique la ruta completa al archivo del certificado del cliente si se requiere autenticación mutua TLS. |
| Server TLS certificate issuer | Especifique un Distinguished Name (DN) del emisor para compararlo con el certificado del server. |
| Server TLS certificate subject | Especifique un Distinguished Name (DN) del sujeto para compararlo con el certificado del server. |
En instalaciones existentes, edite los siguientes campos en zabbix.conf.php:
$ZBX_SERVER_TLS['ACTIVE'] = '1';
$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 de Zabbix server:
tail -f /var/log/zabbix/zabbix_server.log