在Zabbix5.0之前版本,Zabbix代理可以启用EnableRemoteCommands参数执行远程命令,这样相当于只要部署代理且开启远程那么只要监控用户具有的权限执行的命令都能操作,那么这也是相对不安全的。
Zabbix代理默认运行在zabbix用户下,众所周知监控用户一般权限是比较大的,特别在Windows上,Zabbix代理是系统用户下运行,可以无限制地访问本地文件系统,可以启动或停止服务,执行任何系统用户执行的权限命令或访问任何文件修改注册表信息。
但Zabbix5.0之后EnableRemoteCommands参数被弃用,增加了黑白名单属性来管理system.run远程执行命令的限制,这相当于在安全性上大大提高了运维管理人员的一些担忧。
AllowKey=<pattern>定义允许的查询
DenyKey=<pattern>定义禁用的查询
<pattern>通配符表达式,可以任何键值名和参数中使用
以上两个参数可以建立对应的黑白名单,定义个数是不受任何限制
1.匹配规则
黑白名单属性定义规则严格按照顺序进行匹配。只要任何与规则匹配的不论是允许或拒绝,都将停止检查规则,如果一个监控项匹配两个规则,匹配结果取决于第一次规则。
列如:
想为某个文件设置正确监控项,首先要允许对该文件的任何操作,然后禁用对其它文件的任何操作。
AllowKey=vfs.file.*[/var/log/message/*]
DenyKey=vfs.file.*[*]
2.通配符
通配符(*)匹配特定位置任意数量的任意字符,key值名和参数都可以使用通配符(*),但指定的参数必须完全用方括号括起来。注意:带有参数监控项必须配置通配符否则无法生效