Es posible restringir las comprobaciones por parte del agente creando una lista negra, lista blanca o una combinaci¨®n de lista blanca/lista negra de m¨¦tricas.
Para ello utilice una combinaci¨®n de dos par¨¢metros de ³¦´Ç²Ô´Ú¾±²µ³Ü°ù²¹³¦¾±¨®²Ô del agente:
´¡±ô±ô´Ç·É°±ð²â=&±ô³Ù;±è²¹³Ù°ù¨®²Ô&²µ³Ù;
- qu¨¦ comprobaciones est¨¢n permitidas; <patr¨®n> es especificado usando una expresi¨®n comod¨ªn (*)¶Ù±ð²Ô²â°±ð²â=&±ô³Ù;±è²¹³Ù°ù¨®²Ô&²µ³Ù;
- qu¨¦ comprobaciones se rechazan; <patr¨®n> es especificado usando una expresi¨®n comod¨ªn (*)Tenga en cuenta que:
Por lo tanto, para permitir comandos remotos, especifique AllowKey=system.run[<command>,*] para cada comando permitido, * representa el modo de espera y no espera. Tambi¨¦n es posible especificar el par¨¢metro AllowKey=system.run[*] para permitir todos los comandos con modos de espera y no espera. Para no permitir comandos remotos espec¨ªficos, agregue par¨¢metros DenyKey con comandos system.run[] antes del par¨¢metro AllowKey=system.run[*].
Por ejemplo:
Una lista negra puede no ser una buena opci¨®n, porque un la nueva versi¨®n de Áú»¢¶Ä²© puede tener nuevas claves que no est¨¢n restringidas expl¨ªcitamente por la ³¦´Ç²Ô´Ú¾±²µ³Ü°ù²¹³¦¾±¨®²Ô existente. Esto podr¨ªa causar una seguridad falla.
# Deshabilitar comando espec¨ªfico
DenyKey=sistema.ejecutar[ls -l /]
# Permitir otros scripts
AllowKey=sistema.ejecutar[*]
DenyKey=*
Por ejemplo:
# Permitir la lectura de registros:
AllowKey=vfs.archivo.*[/var/log/*]
# Permitir comprobaciones de hora local
AllowKey=sistema.horalocal[*]
# Denegar todas las dem¨¢s claves
Denegar clave=*
±Ê²¹³Ù°ù¨®²Ô | ¶Ù±ð²õ³¦°ù¾±±è³¦¾±¨®²Ô | Coincidencias | Sin coincidencia |
---|---|---|---|
* | Hace coincidir todas las claves posibles con o sin par¨¢metros. | Cualquiera | Ninguno |
vfs.file.contents | Coincide vfs.file.contents sin par¨¢metros. |
vfs.file.contents | vfs.file.contents[/etc/passwd] |
vfs.file.contents[] | Hace coincidir vfs.file.contents con par¨¢metros vac¨ªos. |
vfs.file.contents[] | vfs.file.contents |
vfs.file.contents[*] | Hace coincidir vfs.file.contents con cualquier par¨¢metro; no coincidir¨¢ con vfs.file.contents sin corchetes. |
vfs.file.contents[] vfs.file.contents[/path/to/file] |
vfs.file.contents |
vfs.file.contents[/etc/passwd,*] | Hace coincidir vfs.file.contents con los primeros par¨¢metros que coinciden con /etc/passwd y todos los dem¨¢s par¨¢metros que tienen cualquier valor (tambi¨¦n vac¨ªo). |
vfs .file.contents[/etc/passwd,] vfs.file.contents[/etc/passwd,utf8] |
vfs.file.contents[/etc/passwd] vfs. archivo.contenido[/var/log/zabbix_server.log] vfs.archivo.contenido[] |
vfs.file.contents[*passwd*] | Hace coincidir vfs.file.contents con el primer par¨¢metro que coincide con *passwd* y ning¨²n otro par¨¢metro. |
vfs.file.contents[/etc /contrase?a] | vfs.file.contents[/etc/passwd,] vfs.file.contents[/etc/passwd, utf8] |
vfs.file.contents[*passwd*,*] | Coincide vfs.file.contents con solo el primer par¨¢metro que coincide con *passwd* y todos los par¨¢metros siguientes que tienen alg¨²n valor (tambi¨¦n vac¨ªo) . |
vfs.file.contents[/etc/passwd,] vfs.file.contents[/etc/passwd, utf8] |
vfs.file.contents[/etc/passwd]<br >vfs.file.contents[/tmp/test] |
vfs.file.contents[/var/log/zabbix_server.log,*,abc] | Hace coincidir vfs.file.contents con el primer par¨¢metro que coincide con /var/log/zabbix_server.log , tercer par¨¢metro que coincida con 'abc' y cualquier segundo par¨¢metro (tambi¨¦n vac¨ªo). |
vfs.file.contents[/var/log/zabbix_server.log,,abc] vfs.file.contents[/ var/log/zabbix_server.log,utf8,abc] |
vfs.file.contents[/var/log/zabbix_server.log,,abc,def] |
vfs.file.contents[/etc/passwd,utf8] | Hace coincidir vfs.file.contents con el primer par¨¢metro que coincide con /etc/passwd, el segundo par¨¢metro que coincide con 'utf8' y ning¨²n otro argumento. |
vfs. file.contents[/etc/passwd,utf8] | vfs.file.contents[/etc/passwd,] vfs.file.contents[/etc/passwd,utf16] |
vfs.file.* | Coincide con cualquier clave que comience con vfs.file. sin ning¨²n par¨¢metro. |
vfs.file.contents vfs.file.size |
vfs.file.contents[]< br>vfs.file.size[/var/log/zabbix_server.log] |
vfs.file.*[*] | Hace coincidir cualquier clave que comience con vfs.file. con cualquier par¨¢metro. |
vfs.file.size.bytes[] vfs.file. tama?o[/var/log/zabbix_server.log, utf8] |
vfs.file.size.bytes |
vfs.*.contents | Coincide con cualquier clave que comience con vfs. y termine con .contents sin ning¨²n par¨¢metro. |
vfs.mount.point.file.contents vfs..contents |
vfs. contenidos |
Un script hipot¨¦tico como 'myscript.sh' se puede ejecutar en un equipo a trav¨¦s del Agente Áú»¢¶Ä²© de varias maneras:
1. Como clave de m¨¦trica en una comprobaci¨®n pasiva o activa, por ejemplo:
Aqu¨ª el usuario puede agregar "esperar", "noesperar" u omitir el segundo argumento para usar su valor predeterminado en system.run[].
2. Como script global (iniciado por el usuario en el frontend o API).
Un usuario configura este script en Alertas ¡ú Scripts, establece "Ejecutar en: agente Áú»¢¶Ä²©" y coloca "myscript.sh" en el Campo de entrada "Comandos" del script. Cuando se invoca desde el frontend o API, el servidor Áú»¢¶Ä²© env¨ªa al agente:
Aqu¨ª el usuario no controla los par¨¢metros "esperar"/"noesperar".
3. Como comando remoto de una acci¨®n. El servidor Áú»¢¶Ä²© env¨ªa al agente:
Aqu¨ª nuevamente el usuario no controla los par¨¢metros "esperar"/"noesperar".
Lo que eso significa es que si configuramos AllowKey como:
entonces
Para permitir todas las variantes descritas, puede agregar:
a los par¨¢metros del agente/agente2.