Após uma rápida olhada no código-fonte ( acl.c ), encontrei dois problemas:
-
Ao contrário da função
add_ipv4_to_acl
, oadd_ipv6_to_acl
dificilmente mostra uma mensagem no modo de depuração devido à falta de chamadas à funçãologit()
. A funçãoadd_ipv6_to_acl
não temlogit()
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. -
A função
show_acl_lists()
, que exibe a lista de endereços IP, usa a chamadainet_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