RHEL7 방화벽의 SNMP 연결을 통과시키려면 어떻게 해야 합니까?

RHEL7 방화벽의 SNMP 연결을 통과시키려면 어떻게 해야 합니까?

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

관련 정보