Демон 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 - 3.2.0

1
задан 6 September 2017 в 12:43
1 ответ

После беглого взгляда на исходный код ( acl.c ) я обнаружил две проблемы:

  1. В отличие от 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-адрес>% s <правильно, добавление.", ipv4);
     

    примечание : эти показанные строки являются последними в функции add_ipv4_to_acl .

    Вот почему нет отчета по строкам > :: 1 <правильно, добавление. в журнале в режиме отладки.

  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-> далее;
     }
     

Поэтому я предполагаю, что проблема здесь в том, что 52.0.0.0/14 является результатом функции inet_ntoa () , когда вместо адреса IPv4 используется структура адреса IPv6. структура.

Тем не менее, я до сих пор не сравнивал обе конструкции.

обновление 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
2
ответ дан 3 December 2019 в 20:19

Теги

Похожие вопросы