Les comprovacions de l'agent es poden restringir creant una llista negra, una llista blanca o una combinació de llista blanca/llista negra d'elements.
Per fer-ho, empreu una combinació de dos paràmetres configuració de l'agent:
AllowKey=<patró>
- quines comprovacions són permeses; <patró> s'especifica mitjançant una expressió comodí (*)DenyKey=<patró>
- quines comprovacions es deneguen; <patró> s'especifica mitjançant una expressió comodí (*)Tingueu en compte que:
system.run[*]
(ordres remotes, scripts) són desactivats per defecte, fins i tot quan no s'especifica cap clau de denegació;Per tant, per permetre ordres remotes, especifiqueu una clau AllowKey=system.run[<command>,*] per a cada ordre permesa, * representa el mode wait i nowait. També és possible especificar el paràmetre AllowKey=system.run[*] per permetre totes les ordres amb els modes wait i nowait. Per no permetre ordres remotes específiques, afegiu paràmetres DenyKey amb ordres system.run[] abans del paràmetre AllowKey=system.run[*].
Per exemple:
Pot ser que una llista negra no sigui una bona opció, perquè una versió nova de Zabbix pot tindre claus noves que no siguin restringides explícitament per la configuració existent. Això podria provocar una violació de seguretat.
# Prohibir una ordre específica
DenyKey=system.run[ls -l /]
# Permetre altres scripts
AllowKey=system.run[*]
DenyKey=*
Per exemple:
# Permetre llegir registres:
AllowKey=vfs.file.*[/var/log/*]
# Permetre comprovacions de l'hora local
AllowKey=system.localtime[*]
# Denegar totes les altres claus
DenyKey=*
Patró | Descripció | Coincidències | Sense coincidències |
---|---|---|---|
* | Coincideix amb totes les claus possibles amb o sense paràmetres. | Totes | Cap |
vfs.file.contents | Coincideix amb vfs.file.contents sense paràmetres. |
vfs.file.contents | vfs.file.contents[/etc/passwd] |
vfs.file.contents[] | Coincideix vfs.file.contents amb paràmetres buits. |
vfs.file.contents[] | vfs.file.contents |
vfs.file.contents[*] | Fa coincidir vfs.file.contents amb qualsevol paràmetre; no coincidirà amb vfs.file.contents sense claudàtors. |
vfs.file.contents[] vfs.file.contents[/path/to/file] |
vfs.file.contents |
vfs.file.contents[/etc/passwd,*] | Fa coincidir vfs.file.contents amb els primers paràmetres que coincideixen amb /etc/passwd i tots els altres paràmetres amb un valor (també buit). |
vfs.file.contents[/etc/passwd,] vfs.file.contents[/etc/passwd,utf8] |
vfs.file.contents[/etc/passwd] vfs.file.contents[/var/log/zabbix_server.log] vfs.file.contents[] |
vfs.file.contents[*passwd*] | Coincideix vfs.file.contents amb el primer paràmetre que coincideix amb *passwd* i sense cap altre paràmetre. |
vfs.file.contents[/etc/passwd] | vfs.file.contents[/etc/passwd,] vfs.file.contents[/etc/passwd, utf8] |
vfs.file.contents[*passwd*,*] | Coincideix amb vfs.file.contents amb només el primer paràmetre que coincideix amb *passwd* i sense importar el valor dels següents paràmetres (també buits). |
vfs.file.contents[/etc/passwd,] vfs.file.contents[/etc/passwd, utf8] |
vfs.file.contents[/etc/passwd] vfs.file.contents[/tmp/test] |
vfs.file.contents[/var/log/zabbix_server.log,*,abc] | Coincideix vfs.file.contents amb el primer paràmetre que coincideix amb /var/log/zabbix_server.log, el tercer paràmetre corresponent a 'abc' i qualsevol segon paràmetre (també buit). |
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] | Coincideix vfs.file.contents amb el primer paràmetre que coincideix amb /etc/passwd, el segon paràmetre que coincideix amb 'utf8' i cap altre argument. |
vfs.file.contents[/etc/passwd,utf8] | vfs.file.contents[/etc/passwd,] vfs.file.contents[/etc/passwd,utf16] |
vfs.file.* | Coincideix amb totes les claus que comencen per vfs.file. sense cap paràmetre. |
vfs.file.contents vfs.file.size |
vfs.file.contents[] vfs.file.size[/var/log/zabbix_server.log] |
vfs.file.*[*] | Fa coincidir totes les claus que comencen per vfs.file. amb tots els paràmetres. |
vfs.file.size.bytes[] vfs.file. mida[/var/log/zabbix_server.log, utf8] |
vfs.file.size.bytes |
vfs.*.contents | Coincideix amb qualsevol clau que comenci per vfs. i acabi amb .contents sense cap paràmetre. |
vfs.mount.point.file.contents vfs..contents |
vfs.contents |
Un script hipotètic com 'myscript.sh' es pot executar en un equip mitjançant l'agent Zabbix de diverses maneres:
1. Com a clau d'element en un xec passiu o actiu, per exemple:
Aquí l'usuari pot afegir "wait", "nowait" o ometre el segon argument per emprar el seu valor predeterminat a system.run[].
2. Com a script global (iniciat per l'usuari a la interfície o l'API).
Un usuari configura aquest script a Administració → Scripts, estableix "Executar a: agent Zabbix" i col·loca "myscript.sh" al camp d'entrada "Comandes" de l'script. Quan s'invoca des de la interfície o l'API, el servidor Zabbix envia a l'agent:
Aquí, l'usuari no controla els paràmetres "wait"/"nowait".
3. Com un comandament remot d'una acció. El servidor Zabbix envia a l'agent:
De nou, l'usuari no controla els paràmetres "espera"/"nowait".
Això vol dir que si definim AllowKey com:
llavors
Per permetre totes les variants descrites, podeu afegir:
als paràmetres agent/agent2.