Могуће је ограничити провере на страни агента креирањем ставке црна листа, бела листа или комбинација беле листе/црне листе.
Да бисте то урадили, користите комбинацију два средства конфигурација параметри:
AllowKey=<pattern>
- које провере су дозвољене; <pattern> је наведен коришћењем џокер (*) изразаDenyKey=<pattern>
- које провере су одбијене; <pattern> је наведен коришћењем џокер (*) изразаИмајте на уму да:
Стога, да бисте дозволили удаљене команде, наведите AllowKey=system.run[<command>,*] за сваку дозвољену команду, * означава режим чекања и сада чекај. Такође је могуће навести AllowKey=system.run[*] параметар да дозволи све команде са режимима чекања и сада. Да бисте онемогућили одређене даљинске команде, додајте DenyKey параметре са system.run[] команде испред параметра AllowKey=system.run[*].
– Бела листа без правила одбијања је дозвољена само за систем.рун[*] ставке. За све остале ставке, AllowKey параметри нису дозвољени без DenyKey параметра; у овом случају Zabbix агент неће почни само са параметрима AllowKey. - Ред је битан. Наведени параметри се проверавају један по један према њиховом редоследу појављивања у конфигурационој датотеци: – Чим се кључ ставке поклопи са правилом за дозвољавање/одбијање, ставка је дозвољено или одбијено; и провера правила престаје. Дакле, ако ставка одговара и правилу дозволи и правилу одбијања, резултат ће зависи од тога које правило је прво. - Редослед утиче и на параметар EnableRemoteCommands (ако се користи). - Подржан је неограничен број параметара AllowKey/DenyKey. - AllowKey, DenyKey правила не утичу на HostnameItem, Конфигурациони параметри HostMetadataItem, HostInterfaceItem. - Кључни образац је џокер израз где је џокер (*) карактер одговара било ком броју било ког карактера на одређеној позицији. Може се користити и у називу кључа и у параметрима. - Ако је одређени кључ ставке недозвољен у конфигурацији агента, ставка ће бити пријављена као неподржана (не даје се наговештај за разлог); - Zabbix агент са --print (-p) опцијом командне линије се неће приказати кључеви који нису дозвољени конфигурацијом; - Zabbix агент са опцијом командне линије --test (-t) ће се вратити "Неподржани кључ ставке." статус за кључеве који нису дозвољени од конфигурација; - Одбијене даљинске команде неће бити евидентиране у дневнику агента (ако LogRemoteCommands=1).
на пример:
Црна листа можда није добар избор, јер а нова Zabbix верзија може имати нове кључеве који нису експлицитно ограничени по постојећој конфигурацији. Ово може изазвати сигурност мана.
# Забрани одређену команду
DenyKey=system.run[ls -l /]
# Дозволи друге скрипте
AllowKey=system.run[*]
DenyKey=*
на пример:
# Дозволи читање дневника:
AllowKey==vfs.file.*[/var/log/*]
# Дозволи провере по локалном времену
AllowKey=system.localtime[*]
# Одбијте све друге кључеве
DenyKey=*
Pattern | Description | Matches | No match |
---|---|---|---|
* | Одговара свим могућим кључевима са или без параметара. | Било који | Ниједан |
vfs.file.contents | Одговара vfs.file.contents без параметара. |
vfs.file.contents | vfs.file.contents[/etc/passwd] |
vfs.file.contents[] | Одговара vfs.file.contents са празним параметрима. |
vfs.file.contents[] | vfs.file.contents |
vfs.file.contents[*] | Одговара vfs.file.contents са било којим параметрима; неће одговарати vfs.file.contents без угластих заграда. |
vfs.file.contents[] vfs.file.contents[/path/to/file] |
vfs.file.contents |
vfs.file.contents[/etc/passwd,*] | Одговара vfs.file.contents са првим параметрима који одговарају /etc/passwd и свим осталим параметрима који имају било коју вредност (такође празно). |
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*] | Подудара се са vfs.file.contents са првим параметром који се подудара са *passwd* и ниједним другим параметри. |
vfs.file.contents[/etc/passwd] | vfs.file.contents[/etc/passwd,] vfs.file.contents[/etc/passwd, utf8] |
vfs.file.contents[*passwd*,*] | Одговара vfs.file.contents са само првим параметром који одговара *passwd* и свим следећим параметрима који имају било коју вредност (такође празно). |
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] | Одговара vfs.file.contents са првим параметром који се подудара са /var/log/zabbix_server.log, трећи параметар који се подудара са 'abc' и било којим (такође празним) другим параметар. |
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] | Одговара vfs.file.contents са првим параметром који се подудара са /etc/passwd, другим параметром који се подудара са 'utf8' и ниједним другим аргументи. |
vfs.file.contents[/etc/passwd,utf8] | vfs.file.contents[/etc/passwd,] vfs.file.contents[/etc/passwd,utf16] |
vfs.file.* | Одговара свим кључевима који почињу са vfs.file. без икаквих параметара. |
vfs.file.contents vfs.file.size |
vfs.file.contents[] vfs.file.size[/var/log/zabbix_server.log] |
vfs.file.*[*] | Упарује све кључеве који почињу са vfs.file. са свим параметрима. |
vfs.file.size.bytes[] vfs.file.size[/var/log/zabbix_server.log, utf8] |
vfs.file.size.bytes |
vfs.*.contents | Подудара се са било којим кључем који почиње са vfs. и завршава се са .contents без икаквих параметара. |
vfs.mount.point.file.contents vfs..contents |
vfs.contents |
Хипотетичка скрипта као што је 'myscript.sh' може се извршити на домаћину преко Zabbix агент на неколико начина:
1. Као кључ ставке у пасивној или активној провери, на пример:
Овде корисник може додати "wait", "nowait" или изоставити 2. аргумент за употребу његова подразумевана вредност у system.run[].
2. Као глобална скрипта (иницира корисник у корисничком интерфејсу или API-ју).
Корисник конфигурише ову скрипту у Обавештења → Скрипте, сетови "Изврши на: Zabbix агенту" и ставља "myscript.sh" у скрипту Поље за унос "Команде". Када се позове са корисничким интерфејсом или API-ја, Zabbix сервер шаље агенту:
Овде корисник не контролише параметре "wait"/"nowait".
3. Као удаљена команда из акције. Zabbix сервер шаље на агент:
И овде корисник не контролише параметре "wait"/"nowait".
То значи ако поставимо AllowKey као:
затим
Да бисте дозволили све описане варијанте можете додати:
на параметре агент/агент2.