web-dev-qa-db-ja.com

NRPEデーモンは:: 1を52.0.0.0/14サブネットに変換します

いくつかの起動の問題のためにデバッグモードでNRPEデーモン(/usr/local/nagios/etc/nrpe.cfg)を構成しましたが、::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のバージョンは.2.

1
Jdamian

ソースコード(acl.c)をざっと見た後、2つの問題が見つかりました。

  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);
    _

    notice:表示されているこれらの行は、_add_ipv4_to_acl_関数の最後です。

    そのため、デバッグモードのログには_>::1< correct, adding._を報告する行がありません。

  2. IPアドレスリストを表示する関数show_acl_lists()は、inet_ntoa()呼び出しを使用します。しかし、 マニュアルページ によると、この関数はIPv6アドレスではなくIPv4アドレスを扱います

    _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;
    }
    _

したがって、ここでの問題は、IPv4アドレス構造の代わりにIPv6アドレス構造が使用されている場合、_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
_
2
Jdamian