O daemon NRPE transforma :: 1 em sub-rede 52.0.0.0/14

1

Eu configurei o daemon NRPE ( /usr/local/nagios/etc/nrpe.cfg ) no modo de depuração devido a alguns problemas de inicialização e percebi que ::1 foi encontrado por padrão na diretiva allowed_hosts :

allowed_hosts=127.0.0.1,::1,10.252.1.134

é magicamente transformado em 52.0.0.0/14 de acordo com o log:

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

Existe alguma explicação para isso?

A versão do NRPE é 3.2.0

    
por Jdamian 06.09.2017 / 09:09

1 resposta

2

Após uma rápida olhada no código-fonte ( acl.c ), encontrei dois problemas:

  1. Ao contrário da função add_ipv4_to_acl , o add_ipv6_to_acl dificilmente mostra uma mensagem no modo de depuração devido à falta de chamadas à função logit() . A função add_ipv6_to_acl não tem logit() chamada quando o endereço IPv6 é aceito, semelhante a isto:

    if(debug == TRUE)
      logit(LOG_INFO, "add_ipv4_to_acl: ip-address >%s< correct, adding.", ipv4);
    

    aviso : essas linhas mostradas são as últimas na função add_ipv4_to_acl .

    É por isso que não há linha relatando >::1< correct, adding. no modo de depuração de login.

  2. A função show_acl_lists() , que exibe a lista de endereços IP, usa a chamada inet_ntoa() . Mas, de acordo com as páginas de manual , essa função lida com endereços IPv4, não com endereços 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;
    }
    

Portanto, acho que o problema aqui é que 52.0.0.0/14 é a saída da função inet_ntoa() quando uma estrutura de endereço IPv6 é usada em vez de uma estrutura de endereço IPv4.

No entanto, ainda não comparou as duas estruturas.

atualização 1

Depois de instalar o NRPE em outro nó e ter 4 endereços IP na diretiva allowed_hosts , a entrada da lista ACL mostrada para ::1 é diferente - agora é 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
    
por 08.09.2017 / 11:15

Tags