É possível restringir as verificações do lado do agente criando um item lista negra, uma lista branca ou uma combinação de lista branca/lista negra.
Para fazer isso, use uma combinação de dois agentes configuração parâmetros:
AllowKey=<pattern>
- quais verificações são permitidas; <padrão> é especificado usando uma expressão curinga (*)DenyKey=<pattern>
- quais verificações são negadas; <padrão> é especificado usando uma expressão curinga (*)Observe que:
system.run[*]
(comandos remotos, scripts) são desabilitados por padrão, mesmo quando nenhuma chave de negação é especificada;Portanto, para permitir todos os comandos remotos, especifique um parâmetro AllowKey=system.run[*]. Para permitir apenas alguns comandos remotos, crie uma lista branca de comandos específicos do system.run[]. Para não permitir comandos remotos específicos, adicione parâmetros DenyKey com system.run[] comandos antes do parâmetro AllowKey=system.run[*].
Por exemplo:
::: não importante Uma lista negra pode não ser uma boa escolha, porque um nova versão do Zabbix pode ter novas chaves que não são explicitamente restritas pela configuração existente. Isso pode causar uma segurança falha. :::
# Desabilita comando específico
DenyKey=system.run[ls -l /]
# Permitir outros scripts
AllowKey=system.run[*]
DenyKey=*
Por exemplo:
# Permitir a leitura de logs:
AllowKey=vfs.file.*[/var/log/*]
# Permitir verificações de hora local
AllowKey=system.localtime[*]
# Negar todas as outras chaves
DenyKey=*
Padrão | Descrição | Correspondências | Sem correspondência |
---|---|---|---|
* | Corresponde a todas as chaves possíveis com ou sem parâmetros. | Qualquer | Nenhum |
vfs.file.contents | Corresponde a vfs.file.contents sem parâmetros. |
vfs.file.contents | vfs.file.contents[/etc/passwd] |
vfs.file.contents[] | Corresponde vfs.file.contents com parâmetros vazios. |
vfs.file.contents[] | vfs.file.contents |
vfs.file.contents[*] | Corresponde vfs.file.contents com quaisquer parâmetros; não corresponderá a vfs.file.contents sem colchetes. |
vfs.file.contents[] vfs.file.contents[/path/to/file] |
vfs.file.contents |
vfs.file.contents[/etc/passwd,*] | Corresponde vfs.file.contents com os primeiros parâmetros correspondentes a /etc/passwd e todos os outros parâmetros com qualquer valor (também vazio). |
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*] | Corresponde vfs.file.contents com o primeiro parâmetro correspondente a *passwd* e nenhum outro parâmetro. |
vfs.file.contents[/etc /passwd] | vfs.file.contents[/etc/passwd,] vfs.file.contents[/etc/passwd, utf8] |
vfs.file.contents[*passwd*,*] | Corresponde a vfs.file.contents apenas com o primeiro parâmetro correspondente a *passwd* e todos os parâmetros seguintes com qualquer valor (também vazio) . |
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] | Corresponde vfs.file.contents com o primeiro parâmetro correspondente a /var/log/zabbix_server.log , terceiro parâmetro correspondente a 'abc' e qualquer segundo parâmetro (também vazio). |
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] | Corresponde vfs.file.contents com o primeiro parâmetro correspondente a /etc/passwd, segundo parâmetro correspondente a 'utf8' e nenhum outro argumento. |
vfs. file.contents[/etc/passwd,utf8] | vfs.file.contents[/etc/passwd,] vfs.file.contents[/etc/passwd,utf16] |
vfs.file.* | Corresponde a qualquer chave que comece com vfs.file. sem nenhum parâmetro. |
vfs.file.contents vfs.file.size |
vfs.file.contents[]< br>vfs.file.size[/var/log/zabbix_server.log] |
vfs.file.*[*] | Corresponde a qualquer chave que comece com vfs.file. com quaisquer parâmetros. |
vfs.file.size.bytes[] vfs.file. size[/var/log/zabbix_server.log, utf8] |
vfs.file.size.bytes |
vfs.*.contents | Corresponde a qualquer chave começando com vfs. e terminando com .contents sem nenhum parâmetro. |
vfs.mount.point.file.contents vfs..contents |
vfs. conteúdo |
Um script hipotético como 'myscript.sh' pode ser executado em um host via Agente Zabbix de várias maneiras:
1. Como chave de item em uma verificação passiva ou ativa, por exemplo:
Aqui o usuário pode adicionar "wait", "nowait" ou omitir o 2º argumento para usar seu valor padrão em system.run[].
2. Como um script global (iniciado pelo usuário no frontend ou API).
Um usuário configura este script em Administration → Scripts, define "Execute on: Zabbix agent" e coloca "myscript.sh" no script Campo de entrada "Comandos". Quando invocado do frontend ou API o Zabbix servidor envia ao agente:
Aqui o usuário não controla os parâmetros "wait"/"nowait".
3. Como um comando remoto de uma ação. O servidor Zabbix envia para agente:
Aqui, novamente, o usuário não controla os parâmetros "wait"/"nowait".
O que isso significa é se definirmos AllowKey como:
então
Para permitir todas as variantes descritas, você pode adicionar:
aos parâmetros agente/agente2.