Windows SNMP 에이전트로 구성된 여러 Windows 서버가 있습니다. 각 서버에는 4개의 IP 주소가 있으며 SNMP는 모든 주소를 수신합니다.
내 모니터링 서버(Centos 5.5 32비트, net-snmp 5.3.2.2)에 뭔가 매우 이상한 점이 있습니다. 만약 내가 가지고 있다면iptables
끄다그러면 이 서버의 모든 IP 주소에 대해 snmp 쿼리를 수행하는 데 아무런 문제가 없습니다.
IPtables를 켜면 각 서버에서 특정 IP 주소로 보이는 것만 쿼리할 수 있습니다. snmpget
시간이 초과 되었습니다 Timeout: No Response from x.x.x.x
.
어떤 IP 주소에 연결이 허용되는지에 대한 이 동작에는 패턴이 없습니다. 그러나 각 시스템에는 IP 주소가 하나만 있습니다.
이것은 내 iptables 구성입니다.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -s 172.16.3.0/24 -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -i lo -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -s 172.16.3.0/24 -m state --state NEW -m tcp -p tcp --dport 5668 -j ACCEPT
-A RH-Firewall-1-INPUT -i lo -m state --state NEW -m tcp -p tcp --dport 5668 -j ACCEPT
-A RH-Firewall-1-INPUT -s 172.16.3.0/24 -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -i lo -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -s 172.16.3.0/24 -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -i lo -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -s 172.16.3.0/24 -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A RH-Firewall-1-INPUT -i lo -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
예를 들어 RPM을 얻기 위해 문제 없이 다른 서버에 아웃바운드로 연결할 수 있습니다 wget
.
최후의 수단으로 이것을 추가하려고 시도했지만 재미도 없습니다.
-A OUTPUT -p udp -s 0/0 --sport 1024:65535 -d 0/0 --dport 161:162 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -p udp -s 0/0 --sport 161:162 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
이것은 다음의 출력입니다 iptables -L
.
체인 입력(정책 승인) 대상 보호 선택 소스 대상 RH-Firewall-1-INPUT 모두 -- 어디서나 어디서나 UDP 수락 - UDP spts:snmp:snmptrap dpts:1024:65535 상태가 설정된 모든 곳에서 체인 포워딩(정책 승인) 대상 보호 선택 소스 대상 RH-Firewall-1-INPUT 모두 -- 어디서나 어디서나 체인 출력(정책 승인) 대상 보호 선택 소스 대상 udp 수락 - 어디서나 udp spts:1024:65535 dpts:snmp:snmptrap 상태 신규, 설정됨 ChainRH-Firewall-1-INPUT (참조 2개) 대상 보호 선택 소스 대상 모두 수용 - 언제 어디서나 icmp 허용 — 어디서나 어디서나 icmp any UDP 허용 - 어디서나 224.0.0.251 udp dpt:mdns 모두 수락 - 관련성이 높고 어디서나 확립됨 tcp 허용 -- 172.16.3.0/24 모든 상태 NEW tcp dpt:ssh tcp 허용 --어디서나 어디서나 상태 new tcp dpt:ssh tcp 수락 -- 172.16.3.0/24 모든 상태 new tcp dpt:5668 udp 수락 -- 172.16.3.0/24 어디서나 상태 새 udp dpt:5668 tcp 허용 --어디서나 어디서나 상태 new tcp dpt:5668 udp 허용 - 어디서나 새로운 udp dpt:5668 tcp 수락 -- 172.16.3.0/24 어디서나 상태 NEW tcp dpt:http tcp 허용 -- 어디서나 어디서나 상태 NEW tcp dpt:http tcp 수락 -- 172.16.3.0/24 어디서나 상태 new tcp dpt:https tcp 허용 - 어디서나 새로운 tcp dpt:https tcp 수락 -- 172.16.3.0/24 어디서나 상태 NEW tcp dpt:mysql tcp 허용 --어디서나 new tcp dpt:mysql 모두 거부 - 어디서나 ICMP를 거부합니다. 호스트 금지
답변1
다음 규칙을 삭제할 수 있습니까?
-A OUTPUT -p udp -s 0/0 --sport 1024:65535 -d 0/0 --dport 161:162 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -p udp -s 0/0 --sport 161:162 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
그리고 다음을 교체하세요-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --sport 161:162 -j ACCEPT
먼저 이 규칙을 사용하여 작동하는지 확인해 보겠습니다.
마지막으로 궁금합니다. 이것이 PCI, HIPAA 또는 미국 정부 요구 사항과 관련이 있습니까? :-)