来自 zabbix 代理的 fping - 权限被拒绝

来自 zabbix 代理的 fping - 权限被拒绝

我知道有几个关于 fping 和 zabbix 的主题,但我已经通读了所有主题,但我仍然无法获得一些应该非常简单的工作。

我正在尝试从主机(运行 zabbix 代理)到外部主机进行简单的 ping 测试。

在我的 zabbix_agentd.conf 文件中,我设置了一个 UserParameter,例如:

UserParameter=vpnPing[*],fping $1 |grep -c alive

我的 fping 权限是这样的:

# ls -l /sbin/fping
-rwsr-sr-x. 1 root zabbix 52904 Aug 5 2019 /sbin/fping

如果我运行 zabbix_agentd 测试,我会得到(出于示例目的列出了假 IP)

# zabbix_agentd -t vpnPing[123.456.78.901]
vpnPing[123.456.78.901] [t|1]

所以这似乎有效。

当我进入 zabbix UI 并查看最新数据时,我看到:

2020-06-04 17:55:30 sh: /usr/sbin/fping: Permission denied
0

有趣的是底部的 0。我有时也看到它是1。听起来有些东西正在起作用,但我不明白为什么我的许可被拒绝。

另外,当我查看审核日志时,我看到:

type=AVC msg=audit(1591330891.927:15933): avc:  denied  { execute } for  pid=52320 comm="sh" name="fping" dev="nvme0n1p2" ino=8410299 scontext=system_u:system_r:zabbix_agent_t:s0 tcontext=system_u:object_r:ping_exec_t:s0 tclass=file permissive=0
type=SYSCALL msg=audit(1591330891.927:15933): arch=c000003e syscall=21 success=no exit=-13 a0=5601874ee450 a1=1 a2=7ffe62a48db0 a3=0 items=0 ppid=52319 pid=52320 auid=4294967295 uid=990 gid=988 euid=990 suid=990 fsuid=990 egid=988 sgid=988 fsgid=988 tty=(none) ses=4294967295 comm="sh" exe="/usr/bin/bash" subj=system_u:system_r:zabbix_agent_t:s0 key=(null)ARCH=x86_64 SYSCALL=access AUID="unset" UID="zabbix" GID="zabbix" EUID="zabbix" SUID="zabbix" FSUID="zabbix" EGID="zabbix" SGID="zabbix" FSGID="zabbix"
type=PROCTITLE msg=audit(1591330891.927:15933): proctitle=7368002D63006670696E67203136372E3134342E38392E323238207C67726570202D6320616C697665

我正在运行 RHEL 8.2。

# zabbix_agentd -V
zabbix_agentd (daemon) (Zabbix) 4.4.9
$ zabbix_server -V
zabbix_server (Zabbix) 4.4.9
# fping -v
fping: Version 3.16

我将 Zabbix 中的项目配置为类型:Zabbix 代理

如果我尝试:

zabbix_get -s [my_zabbix_server_ip] -k vpnPing[123.456.78.901]

它确实超时(不知道为什么,因为我可以正常 ping 它): zabbix_get [30549]:执行操作时超时

但不确定 zabbix_get 的最后一部分是否相关,因为检查似乎返回到 zabbix 服务器,但它只是说权限被拒绝。

我已经为此苦苦挣扎了一段时间,希望有人能帮助我?

答案1

正如评论中所述 - 您的问题很可能与 RHEL8 上的 SElinux 有关。

我的解决方案是使用 sudo 绕过 SElinux:

$ grep ^zabbix /etc/sudoers

zabbix  ALL=NOPASSWD:/usr/sbin/hddtemp, /usr/sbin/smartctl, /usr/bin/fping

并在前面加上 sudo 来调用 fping。smartctlAMD也同样如此hddtemp

相关内容