Я настраиваю net-snmp на CentOS, и у меня возникает проблема с настройкой порта, отличного от порта по умолчанию. В принципе, если я настрою его как 161 или порт 32768 или выше, он будет работать нормально, но не работает ни с чем между 10000 и 32767.
Есть идеи, что может быть причиной этого? Это относится только к одному серверу и отлично работает на других аналогично настроенных серверах.
Вот логи в /var/log/messages
:
May 3 11:15:27 oninfra01 snmpd[27709]: Error opening specified endpoint "5161"
May 3 11:15:27 oninfra01 kernel: type=1400 audit(1336058127.584:57070): avc: denied { name_bind } for pid=27709 comm="snmpd" src=5161 scontext=unconfined_u:system_r:snmpd_t:s0 tcontext=system_u:object_r:port_t:s0 tclass=udp_socket
May 3 11:15:27 oninfra01 kernel: type=1400 audit(1336058127.584:57071): avc: denied { name_bind } for pid=27709 comm="snmpd" src=5161 scontext=unconfined_u:system_r:snmpd_t:s0 tcontext=system_u:object_r:port_t:s0 tclass=udp_socket
May 3 11:15:27 oninfra01 snmpd[27709]: Server Exiting with code 1
Один из способов разрешить больше портов для snmp в SELinux - это
semanage port -a -t snmp_port_t -p tcp 10000-32767
semanage port -a -t snmp_port_t -p udp 10000-32767
(выполнение команд может занять некоторое время, это нормально, потому что SELinux компилирует свои наборы правил)
Проверьте, все ли прошло нормально:
semanage port -l | grep snmp
SELINUX снова наносит удар.
Добавьте разрешающее правило или отключите selinux.
#getenforce
#setenforce permissive
Это может сработать, если вы создадите новое правило для selinux, но лучше отключить его, если вы его не понимаете, оно снова укусит.
# grep snmp /var/log/audit/audit.log | audit2allow -M mypol
# semodule -i mypol.pp