我在debugging模式下configuration了NRPE守护进程( /usr/local/nagios/etc/nrpe.cfg
),因为有一些启动问题,我意识到在allowed_hosts
指令中默认发现::1
:
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
快速浏览源代码( acl.c )后,我发现两个问题:
与add_ipv4_to_acl
函数不同, add_ipv6_to_acl
很难在debugging模式下显示消息,因为缺less对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
函数中的最后add_ipv4_to_acl
。
这就是为什么没有行报告>::1< correct, adding.
在logindebugging模式下。
显示IP地址列表的函数show_acl_lists()
使用inet_ntoa()
调用。 但是,根据手册页面 , 该function处理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并在allowed_hosts
指令中有4个IP寻址之后,显示为::1
的ACL列表条目不同 – 现在为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