3 Servidor web

Descripción general

Esta sección contiene las mejores prácticas para configurar el servidor web de forma segura.

Habilitando Zabbix en el directorio raíz de la URL

En sistemas basados en RHEL, agregue un host virtual a la configuración de Apache (/etc/httpd/conf/httpd.conf) y establezca una redirección permanente para la raíz del documento a la URL SSL de Zabbix. Tenga en cuenta que "example.com" debe reemplazarse con el nombre real del servidor.

# Agregar líneas:
       
       <VirtualHost *:*>
           ServerName example.com
           Redirect permanent / https://example.com
       </VirtualHost>

Reinicie el servicio Apache para aplicar los cambios:

systemctl restart httpd.service

Habilitar la seguridad de transporte estricta HTTP (HSTS) en el servidor web

Para proteger la interfaz de Zabbix contra ataques de degradación de protocolo, recomendamos habilitar la política HSTS en el servidor web.

Para habilitar la política HSTS para su interfaz 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.conf en sistemas basados en RHEL
  • /etc/apache2/sites-available/000-default.conf en Debian/Ubuntu

2. Agregue 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 Apache para aplicar los cambios:

# En sistemas basados en RHEL:
       systemctl restart httpd.service
       
       # En Debian/Ubuntu
       systemctl restart apache2.service

Habilitar la política de seguridad de contenido (CSP) en el servidor web

Para proteger la interfaz de Zabbix contra Cross Site Scripting (XSS), inyección de datos y ataques similares, recomendamos habilitar la Política de seguridad de contenido en el servidor web. Para hacerlo, configure el servidor web para que devuelva el encabezado HTTP.

La siguiente configuración del encabezado CSP es solo para la instalación predeterminada de la interfaz de Zabbix y para los casos en los que todo el contenido se origina en el dominio del sitio (excluidos los subdominios). Es posible que se requiera una configuración de encabezado CSP diferente si, por ejemplo, está configurando el widget URL para mostrar contenido de los subdominios del sitio o dominios externos, cambiando de OpenStreetMap a otro motor de mapas, o agregando CSS o widgets externos. Si está utilizando 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 interfaz 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.conf en sistemas basados en RHEL
  • /etc/apache2/sites-available/000-default.conf en 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 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 desactivar 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 PHP (encabezado HTTP X-Powered-By) se puede desactivar cambiando el archivo de configuración php.ini (de forma predeterminada, la firma está desactivada):

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 utilizar 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 configurando "SecServerSignature" en cualquier valor deseado después de instalar mod_security.

Consulte la documentación de su servidor web para encontrar ayuda sobre cómo eliminar/cambiar firmas de software.

Deshabilitar las páginas de error predeterminadas del servidor web

Para evitar la exposición de la información, se recomienda desactivar 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" se puede utilizar para definir una página/texto de error personalizado para el servidor web Apache.

Consulte la documentación de su servidor web para encontrar ayuda sobre cómo reemplazar/eliminar páginas de error predeterminadas.

Eliminar la página de prueba del servidor web

Para evitar la exposición de la información, se recomienda eliminar la página de prueba del servidor web.

De forma predeterminada, el webroot del servidor web Apache contiene la página de prueba index.html:

Consulte la documentación de su servidor web para encontrar ayuda sobre cómo eliminar páginas de prueba predeterminadas.

Establecer encabezado de respuesta HTTP X-Frame-Options

De forma predeterminada, Zabbix está configurado con el encabezado HTTP X-Frame-Options establecido en SAMEORIGIN. Esto significa que el contenido solo se puede cargar en un marco que tiene el mismo origen que la propia página.

Los elementos de la interfaz de Zabbix que extraen contenido de URLs externas (es decir, la URL del widget del tablero), muestra el contenido recuperado en una "sandbox" con todas las restricciones de la "sandbox" activadas.

Estas configuraciones mejoran la seguridad de la interfaz de Zabbix y brindan protección contra ataques XSS y de clickjacking. Los superadministradores pueden modificar los parámetros usar sandboxing de iframe y usar encabezado HTTP X-Frame-Options según sea necesario. Sopese cuidadosamente los riesgos y beneficios antes de cambiar la configuración predeterminada. No se recomienda desactivar por completo el sandboxing o 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 a 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 Evitar contraseñas fáciles de adivinar 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 a los archivos se puede limitar utilizando el archivo .htaccess:

<Files "top_passwords.txt">
           Order Allow,Deny
           Deny from all
       </Files>

En NGINX, el acceso a archivos se puede limitar usando la directiva ubicación:

location = /data/top_passwords.txt {
           deny all;
           return 404;
       }