- 3 Servidor web
- Descripción general
- Forzar la redirección de la URL raíz a Zabbix SSL
- Habilitación de HTTP Strict Transport Security (HSTS) en el web server
- Aplicación de cookies de sesión Secure y SameSite en Zabbix
- Habilitar Content Security Policy (CSP) en el servidor web
- Deshabilitar la exposición de información del servidor web
- Deshabilitar las páginas de error predeterminadas del servidor web
- Eliminación de la página de prueba del servidor web
- Establecer el encabezado HTTP X-Frame-Options
- Ocultar el archivo con la lista de contraseñas comunes
3 Servidor web
Descripción general
Esta sección contiene las mejores prácticas para configurar el servidor web de forma segura.
Forzar la redirección de la URL raíz a Zabbix SSL
En sistemas basados en RHEL, agregue un virtual host a la configuración de Apache (/etc/httpd/conf/httpd.conf) y establezca una redirección permanente para el directorio raíz del documento hacia la URL SSL de Zabbix.
Tenga en cuenta que example.com debe reemplazarse por el nombre real del server.
# Add lines:
<VirtualHost *:*>
ServerName example.com
Redirect permanent / https://example.com
</VirtualHost>
Reinicie el servicio de Apache para aplicar los cambios:
systemctl restart httpd.service
Habilitación de HTTP Strict Transport Security (HSTS) en el web server
Para proteger el frontend de Zabbix frente a ataques de degradación de protocolo, recomendamos habilitar la directiva HSTS en el web server.
Para habilitar la directiva HSTS para su frontend de Zabbix en la configuración de Apache, siga estos pasos:
1. Localice el archivo de configuración de su host virtual:
/etc/httpd/conf/httpd.confen sistemas basados en RHEL/etc/apache2/sites-available/000-default.confen Debian/Ubuntu
2. Añada la siguiente directiva al archivo de configuración de su host virtual:
<VirtualHost *:*>
Header set Strict-Transport-Security "max-age=31536000"
</VirtualHost>
3. Reinicie el servicio de Apache para aplicar los cambios:
# En sistemas basados en RHEL:
systemctl restart httpd.service
# En Debian/Ubuntu
systemctl restart apache2.service
Aplicación de cookies de sesión Secure y SameSite en Zabbix
Al configurar Zabbix, es fundamental aplicar los atributos secure y SameSite a las cookies de sesión para mejorar la seguridad y evitar ataques de falsificación de solicitudes entre sitios (CSRF). Sin embargo, aplicar SameSite=Strict puede causar problemas en ciertos escenarios, como:
- Los widgets de URL del dashboard muestran "user not logged in" al incrustar iframes del mismo dominio.
- Los usuarios que acceden al dashboard mediante HTTP en lugar de HTTPS pueden tener problemas de inicio de sesión.
- Imposibilidad de compartir URLs a secciones específicas del menú de Zabbix o a hosts.
Para mitigar estos problemas, los usuarios deben tener una forma de ajustar la política SameSite.
1. Cookies seguras
Establecer la marca secure garantiza que las cookies solo se transmitan a través de HTTPS, evitando su exposición en conexiones no cifradas.
Para habilitar cookies seguras en Zabbix, agregue o modifique la siguiente configuración en la configuración del servidor web:
Para Apache:
Header always edit Set-Cookie ^(.*)$ $1;Secure
Para Nginx:
proxy_cookie_path / "/; Secure";
Asegúrese de que su frontend de Zabbix se acceda mediante HTTPS; de lo contrario, las cookies con la marca Secure no se enviarán.
2. Configuración del atributo SameSite
La configuración del servidor web también puede aplicar el atributo SameSite:
Para Apache:
<IfModule mod_headers.c>
Header onsuccess edit Set-Cookie (.*) "$1; SameSite=Strict"
</IfModule>
Para Nginx (versión 1.19.3+):
proxy_cookie_flags ~ samesite=Strict; # Reemplace ~ con 'zbx_session' para mayor especificidad
Habilitar Content Security Policy (CSP) en el servidor web
Para proteger el frontend de Zabbix contra Cross Site Scripting (XSS), inyección de datos y ataques similares, recomendamos habilitar Content Security Policy en el servidor web. Para ello, configure el servidor web para que devuelva el encabezado HTTP.
La siguiente configuración del encabezado CSP solo es válida para la instalación predeterminada del frontend de Zabbix y para los casos en que todo el contenido proviene del dominio del sitio (excluidos los subdominios). Puede ser necesaria una configuración diferente del encabezado CSP si, por ejemplo, está configurando el widget URL para mostrar contenido de los subdominios del sitio o de dominios externos, si cambia de OpenStreetMap a otro motor de mapas, o si agrega CSS o widgets externos. Si utiliza el método de autenticación multifactor Duo Universal Prompt, asegúrese de agregar "duo.com" a la directiva CSP en el archivo de configuración de su host virtual.
Para habilitar CSP para su frontend de Zabbix en la configuración de Apache, siga estos pasos:
1. Localice el archivo de configuración de su host virtual:
/etc/httpd/conf/httpd.confen sistemas basados en RHEL/etc/apache2/sites-available/000-default.confen Debian/Ubuntu
2. Agregue la siguiente directiva al archivo de configuración de su host virtual:
<VirtualHost *:*>
Header set Content-Security-Policy: "default-src 'self' *.openstreetmap.org; script-src 'self' 'unsafe-inline' 'unsafe-eval'; connect-src 'self'; img-src 'self' data: *.openstreetmap.org; style-src 'self' 'unsafe-inline'; base-uri 'self'; form-action 'self';"
</VirtualHost>
3. Reinicie el servicio de Apache para aplicar los cambios:
# En sistemas basados en RHEL:
systemctl restart httpd.service
# En Debian/Ubuntu
systemctl restart apache2.service
Deshabilitar la exposición de información del servidor web
Para mejorar la seguridad, se recomienda deshabilitar todas las firmas del servidor web.
De forma predeterminada, el servidor web expone la firma del software:

La firma se puede deshabilitar agregando los siguientes parámetros al archivo de configuración de Apache:
ServerSignature Off
ServerTokens Prod
La firma de PHP (encabezado HTTP X-Powered-By) se puede deshabilitar cambiando el archivo de configuración php.ini (de forma predeterminada, la firma está deshabilitada):
expose_php = Off
Es necesario reiniciar el servidor web para que se apliquen los cambios en el archivo de configuración.
Para mayor seguridad, puede usar la herramienta mod_security con Apache (paquete libapache2-mod-security2). Esta herramienta permite eliminar la firma del servidor en lugar de eliminar solo la versión de la firma del servidor. La firma del servidor se puede cambiar a cualquier valor estableciendo "SecServerSignature" en el valor deseado después de instalar mod_security.
Consulte la documentación de su servidor web para obtener ayuda sobre cómo eliminar o cambiar las firmas del software.
Deshabilitar las páginas de error predeterminadas del servidor web
Para evitar la exposición de información, se recomienda deshabilitar las páginas de error predeterminadas.
De forma predeterminada, un servidor web utiliza páginas de error integradas:

Estas páginas de error predeterminadas deben reemplazarse o eliminarse. Por ejemplo, la directiva "ErrorDocument" puede utilizarse para definir una página o texto de error personalizado para el servidor web Apache.
Consulte la documentación de su servidor web para obtener ayuda sobre cómo reemplazar o eliminar las páginas de error predeterminadas.
Eliminación de la página de prueba del servidor web
Para evitar la exposición de información, se recomienda eliminar la página de prueba del servidor web.
De forma predeterminada, la raíz web del servidor web Apache contiene la página de prueba index.html:

Consulte la documentación de su servidor web para obtener ayuda sobre cómo eliminar las páginas de prueba predeterminadas.
Establecer el encabezado HTTP X-Frame-Options
De forma predeterminada, Zabbix está configurado con el parámetro Use X-Frame-Options HTTP header establecido en SAMEORIGIN.
Esto significa que el contenido solo puede cargarse en un marco que tenga el mismo origen que la propia página.
Los elementos del frontend de Zabbix que obtienen contenido de URL externas (es decir, el widget de URL del dashboard) muestran el contenido recuperado en un sandbox con todas las restricciones de sandbox habilitadas.
Estos ajustes mejoran la seguridad del frontend de Zabbix y proporcionan protección contra ataques XSS y clickjacking. Los usuarios Super admin pueden modificar los parámetros Use iframe sandboxing y Use X-Frame-Options HTTP header según sea necesario. Evalúe cuidadosamente los riesgos y beneficios antes de cambiar la configuración predeterminada. No se recomienda desactivar por completo el sandboxing de iframe ni el encabezado HTTP X-Frame-Options.
Ocultar el archivo con la lista de contraseñas comunes
Para aumentar la complejidad de los ataques de fuerza bruta de contraseñas, se recomienda limitar el acceso al archivo ui/data/top_passwords.txt.
Este archivo contiene una lista de las contraseñas más comunes y específicas del contexto, y evita que los usuarios establezcan dichas contraseñas (si el parámetro Avoid easy-to-guess passwords está habilitado en la política de contraseñas).
Para limitar el acceso al archivo top_passwords.txt, modifique la configuración de su servidor web.
En Apache, el acceso al archivo puede limitarse mediante el archivo .htaccess:
<Files "top_passwords.txt">
Order Allow,Deny
Deny from all
</Files>
En NGINX, el acceso al archivo puede limitarse mediante la directiva location:
location = /data/top_passwords.txt {
deny all;
return 404;
}