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