NRPE 守护进程将 ::1 转换为 52.0.0.0/14 子网

NRPE 守护进程将 ::1 转换为 52.0.0.0/14 子网

/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

快速浏览一下源代码(访问控制列表)我发现了两个问题:

  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.这就是为什么在调试模式下的日志中没有行报告的原因。

  2. 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

相关内容