/usr/local/nagios/etc/nrpe.cfg
由于一些启动问题,我在调试模式下配置了 NRPE 守护进程( ),并且我意识到::1
在指令中默认找到allowed_hosts
:
allowed_hosts=127.0.0.1,::1,10.252.1.134
52.0.0.0/14
根据日志神奇地变成了:
Sep 6 08:56:44 myhost nrpe[30830]: Warning: Cannot open log file '/usr/local/nagios/var/nrpe.log' for writing
Sep 6 08:56:44 myhost nrpe[30830]: parse_allowed_hosts: parsing the allowed host string >127.0.0.1,::1,10.252.1.134< to add to ACL list
Sep 6 08:56:44 myhost nrpe[30830]: add_ipv4_to_acl: checking ip-address >127.0.0.1<
Sep 6 08:56:44 myhost nrpe[30830]: add_ipv4_to_acl: ip-address >127.0.0.1< correct, adding.
Sep 6 08:56:44 myhost nrpe[30830]: add_ipv4_to_acl: checking ip-address >10.252.1.134<
Sep 6 08:56:44 myhost nrpe[30830]: add_ipv4_to_acl: ip-address >10.252.1.134< correct, adding.
Sep 6 08:56:44 myhost nrpe[30830]: Showing ACL lists for both IP and DOMAIN acl's:
Sep 6 08:56:44 myhost nrpe[30830]: IP ACL: 127.0.0.1/32 16777343
Sep 6 08:56:44 myhost nrpe[30830]: IP ACL: 52.0.0.0/14 52
Sep 6 08:56:44 myhost nrpe[30830]: IP ACL: 10.252.1.134/32 4269145354
Sep 6 08:56:44 myhost nrpe[30830]: INFO: SSL/TLS initialized. All network traffic will be encrypted.
Sep 6 08:56:44 myhost nrpe[30830]: Starting up daemon
对此有什么解释吗?
NRPE 版本是3.2.0
答案1
快速浏览一下源代码(访问控制列表)我发现了两个问题:
add_ipv4_to_acl
与函数不同,add_ipv6_to_acl
由于缺少对logit()
函数的调用,因此在调试模式下几乎不显示消息。当接受 IPv6 地址时,该add_ipv6_to_acl
函数没有logit()
调用,类似于:if(debug == TRUE) logit(LOG_INFO, "add_ipv4_to_acl: ip-address >%s< correct, adding.", ipv4);
注意:显示的这些行是函数中的最后一行
add_ipv4_to_acl
。>::1< correct, adding.
这就是为什么在调试模式下的日志中没有行报告的原因。show_acl_lists()
显示 IP 地址列表的函数使用inet_ntoa()
调用。但是,根据手册页,此函数处理的是 IPv4 地址,而不是 IPv6 地址。:while (ip_acl_curr != NULL) { logit(LOG_INFO, " IP ACL: %s/%u %u\n", inet_ntoa(ip_acl_curr->addr), prefix_from_mask(ip_acl_curr->mask), ip_acl_curr->addr.s_addr); ip_acl_curr = ip_acl_curr->next; }
因此我猜测这里的问题是,当使用 IPv6 地址结构而不是 IPv4 地址结构时,函数52.0.0.0/14
的输出是这样的。inet_ntoa()
但我还没有比较过这两种结构。
更新 1
在其他节点安装 NRPE 并在指令中获得 4 个 IP 地址后allowed_hosts
,显示的 ACL 列表条目::1
有所不同 - 现在是0.0.0.0/20
:
Showing ACL lists for both IP and DOMAIN acl's:
IP ACL: 127.0.0.1/32 16777343
IP ACL: 0.0.0.0/20 0
IP ACL: 10.252.1.134/32 4269145354
IP ACL: 10.252.1.135/32 896662794