RHEL7ファイアウォールのSNMP接続を通過させるにはどうすればよいですか?
マイコンピュータでこのコマンドを実行した場合:
systemctl stop firewalld
すべてのSNMPパケットはシームレスに転送されます。ファイアウォールを再起動すると、すべてのパケットがブロックされます。もちろん、ファイアウォールを実行しながら、次のようないくつかの構成を試しました。
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 161 -j ACCEPT
または
firewall-cmd --zone=public --add-port=161/tcp --permanent
エラーメッセージは表示されませんが、SNMPはまだタイムアウトします。
答え1
正しい方法は、SNMPプロファイルをFirewalldに追加することです。 TCPの代わりにUDP 161を使用する
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>
その後、ファイアウォールを再ロードする必要があります。
firewall-cmd --reload
その後、パブリックゾーンにサービスを追加する必要があります。
firewall-cmd --zone=public --add-service snmp --permanent
次に、最後にファイアウォールを再ロードします。
firewall-cmd --reload
答え2
SNMPはUDPとTCPです。ルールでプロトコルを変更すると正常に動作します。
答え3
ポート 161/udp (tcp 以外) を開く必要があります。
firewall-cmd --zone=public --add-port=161/udp --permanent
firewall-cmd --reload
または、次のコマンドを使用して新しいSNMPサービスを作成します(次から変更されます)。文書 - 方法 - サービスの追加|):
firewall-cmd --permanent --new-service=snmp
firewall-cmd --permanent --service=snmp --set-description="SNMP protocol"
firewall-cmd --permanent --service=snmp --set-short=SNMP
firewall-cmd --permanent --service=snmp --add-port=161/udp
firewall-cmd --permanent --service=snmp --add-protocol=udp
次に、新しいSNMPサービスを使用します。
firewall-cmd --zone=public --add-service snmp --permanent
firewall-cmd --reload