1 Control de acceso
Descripción general
Esta sección contiene las mejores prácticas para configurar el control de acceso de forma segura.
Principio del menor privilegio
Las cuentas de usuario, en todo momento, deben ejecutarse con la menor cantidad de privilegios posible. Esto significa que las cuentas de usuario en el frontend de Zabbix, los usuarios de la base de datos o el usuario para los procesos de Zabbix server/proxy/agent solo deben tener los privilegios que sean esenciales para realizar las funciones previstas.
Otorgar privilegios adicionales al usuario 'zabbix' le permitirá acceder a archivos de configuración y ejecutar operaciones que pueden comprometer la seguridad de la infraestructura.
Al configurar los privilegios de las cuentas de usuario, deben considerarse los tipos de usuario del frontend de Zabbix. Tenga en cuenta que, aunque el tipo de usuario Admin tiene menos privilegios que el tipo de usuario Super Admin, aún puede administrar la configuración y ejecutar scripts personalizados.
Parte de la información está disponible incluso para usuarios sin privilegios. Por ejemplo, aunque Alerts → Scripts solo está disponible para usuarios Super Admin, los scripts también se pueden recuperar a través de la API de Zabbix. En este caso, limitar los permisos de los scripts y excluir información sensible de los scripts (por ejemplo, credenciales de acceso) puede ayudar a evitar la exposición de información sensible disponible en los scripts globales.
Usuario seguro para Zabbix agent
De forma predeterminada, los procesos de Zabbix server, proxy y agent (o agent 2) comparten un único usuario zabbix.
Para evitar que Zabbix agent/agent 2 (que se ejecuta en la misma máquina que server/proxy) acceda a detalles sensibles en la configuración de server/proxy (por ejemplo, credenciales de base de datos), el agent debe ejecutarse bajo un usuario diferente:
Para Zabbix agent:
- Cree un grupo y usuario seguros (por ejemplo,
zabbix-agent). - Establezca este usuario en el parámetro User del archivo de configuración del agent.
- Reinicie el agent para reducir los privilegios al nuevo usuario.
Para Zabbix agent 2, la configuración debe aplicarse a nivel de service, porque el archivo de configuración de agent 2 no admite el parámetro User.
Para un ejemplo, consulte ZBX-26442.
Revocar el acceso de escritura a la configuración de SSL (Windows)
Si ha compilado Zabbix agent en Windows, con OpenSSL ubicado en un directorio no protegido (por ejemplo, C:\zabbix, c:\openssl-64bit, C:\OpenSSL-Win64-111-static o C:\dev\openssl), asegúrese de revocar el acceso de escritura a este directorio para los usuarios que no sean administradores.
De lo contrario, el agent carga la configuración de SSL desde una ruta que puede ser modificada por usuarios sin privilegios, lo que puede provocar una posible vulnerabilidad de seguridad.
Endurecimiento de la seguridad de los componentes de Zabbix
Algunas funcionalidades se pueden desactivar para reforzar la seguridad de los componentes de Zabbix:
- La ejecución de scripts globales en Zabbix server se puede deshabilitar estableciendo
EnableGlobalScripts=0en la configuración del server. - La ejecución de scripts globales en Zabbix proxy está deshabilitada de forma predeterminada (se puede habilitar estableciendo
EnableRemoteCommands=1en la configuración del proxy). - La ejecución de scripts globales en Zabbix agent está deshabilitada de forma predeterminada (se puede habilitar añadiendo un parámetro
AllowKey=system.run[<command>,*]para cada comando permitido en la configuración del agent). - La autenticación HTTP de usuario se puede deshabilitar estableciendo
$ALLOW_HTTP_AUTH=falseen el archivo de configuración del frontend (zabbix.conf.php). Tenga en cuenta que reinstalar el frontend (ejecutarsetup.php) eliminará este parámetro.
Acceso a rutas UNC en Windows mediante Zabbix agent
Los agentes de Zabbix en Windows siguen rutas UNC (recursos compartidos SMB como \\server\share\file.txt) en items como vfs.file.*, vfs.dir.*, modbus.get y perf_counter*. Esto puede suponer un riesgo de seguridad en algunos contextos.
Cuando Windows recibe la solicitud de acceder a una ruta UNC, intenta autenticarse en ese servidor. Esto significa que una solicitud maliciosa a Zabbix agent puede exponer el hash NTLM al servidor del solicitante. Los usuarios pueden mitigar esto con los parámetros de configuración AllowKey y DenyKey si lo necesitan.