nagios - Web 界面:通过 kerberos 进行身份验证 OK,那么 cgi.cfg 上的授权怎么样?

nagios - Web 界面:通过 kerberos 进行身份验证 OK,那么 cgi.cfg 上的授权怎么样?

我已经成功安装了 nagios,它通过 apache2 提供身份验证,apache2 联系 kerberos 身份验证服务器来验证用户身份。

现在,用户已经通过身份验证,但他们没有任何授权,因为授权已配置,cgi.cfg并且我不想手动逐个配置所有用户,或者将所有权利授予每个经过身份验证的用户。

我想知道是否可以在cgi.cfg文件上设置组(例如 nagios_reader,具有监视 Web 界面、主机和服务状态的权限,以及 nagios_writer,具有运行外部命令的能力)而不是在用户上设置组,以及是否可以从 LDAP 中提取这些组。

答案1

我想知道是否可以在 cgi.cfg 文件上设置组

恐怕答案是否定的。Nagios 尚未支持此功能。authorized_options 必须是经过身份验证的用户的逗号分隔名称列表。但如果如您所说,“这些组可以从 LDAP 中提取”,因此您可以使用一个小 shell 脚本添加组中的每个成员。

Nagios 具有authorized_for_read_only选项配置在 CGI 中具有只读权限的用户名列表。假设包含nagios_reader.ldif

# nagios_reader, it, domain.com
dn: cn=nagios_reader,ou=it,dc=domain,dc=com
cn: nagios_reader
member: cn=foo,ou=it,dc=domain,dc=com
member: cn=bar,ou=it,dc=domain,dc=com
objectClass: groupOfNames
objectClass: top

authorized_for_read_only您可以使用以下方法将该组的所有成员配置为变量的值:

$ ldapsearch -x -W -D "cn=manager,dc=domain,dc=com" "cn=nagios_reader" | \
    awk -F"=|," '/member: / { print $2 }' | \
    while read u; do sed -i "/^authorized_for_read_only/s/$/,$u/" cgi.cfg; done

相关内容