如何让 RHEL7 的防火墙通过 SNMP 连接?

dub*_*bis 8 rhel iptables snmp firewalld

如何让 RHEL7 的防火墙通过 SNMP 连接?

当我在计算机上执行此命令时:

systemctl stop firewalld
Run Code Online (Sandbox Code Playgroud)

所有 SNMP 数据包都顺利通过。当我重新启动 firewalld 时,所有数据包都被阻止了。当然,我在防火墙运行的情况下尝试了几种配置,例如:

iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 161 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

或者

firewall-cmd --zone=public --add-port=161/tcp --permanent
Run Code Online (Sandbox Code Playgroud)

我没有收到任何错误消息,但 SNMP 仍处于超时状态。

squ*_*org 16

正确的做法是将 SNMP 的配置文件添加到 firewalld。使用 UDP 161 而不是 TCP

vim /etc/firewalld/services/snmp.xml

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>SNMP</short>
  <description>SNMP protocol</description>
  <port protocol="udp" port="161"/>
</service>
Run Code Online (Sandbox Code Playgroud)

然后你应该重新加载你的防火墙

firewall-cmd --reload

然后您需要将服务添加到您的公共区域

firewall-cmd --zone=public --add-service snmp --permanent

然后最后再次重新加载防火墙

firewall-cmd --reload