Я настроил демон 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 3.2.0
После беглого взгляда на исходный код (acl.c) Я обнаружил две проблемы:
в отличие add_ipv4_to_acl
функция, add_ipv6_to_acl
почти не показывает сообщение в режиме отладки из-за отсутствия обращений к logit()
функция. В add_ipv6_to_acl
функция не имеет logit()
вызовите, когда IPv6-адрес будет принят, аналогично этому:
if(debug == TRUE)
logit(LOG_INFO, "add_ipv4_to_acl: ip-address >%s< correct, adding.", ipv4);
уведомление: эти показанные строки являются последними в add_ipv4_to_acl
функция.
Вот почему нет линейной отчетности >::1< correct, adding.
в журнале в режиме отладки.
Функция 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;
}
Поэтому я думаю, проблема в том, что 52.0.0.0/14
это результат inet_ntoa()
функция, когда структура адреса IPv6 используется вместо структуры адреса IPv4.
Но я до сих пор не сравнивал обе конструкции.
обновление 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