我在这里遇到了一个问题,我已将以下内容添加到我的 IPtables 规则中:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 161 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 161 -j ACCEPT
但是当我使用 nmap 或任何其他工具扫描时,它显示以下内容:
Not shown: 998 filtered ports
PORT STATE SERVICE
22/tcp open ssh
161/tcp closed snmp
当我这样做时:
netstat -apn | grep snmpd
tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN 3669/snmpd<br>
udp 0 0 0.0.0.0:161 0.0.0.0:* 3669/snmpd<br>
unix 2 [ ] DGRAM 226186 3669/snmpd
还:
service iptables status
Table: filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:161
5 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 state NEW udp dpt:161
6 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
7 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
知道发生了什么吗?没有处于关闭/打开状态的 UDP。我该怎么办?
答案1
默认情况下,snmpd
在所有接口上监听 UDP 端口 161。如果您想使用 TCP,则必须在snmpd.conf
或 中进行配置/etc/default/snmpd
。
事实上,nmap
将端口 161 视为“已关闭”而不是“已过滤”,这意味着RST
当它尝试连接 TCP 端口 161 时,它会收到一个数据包,而不是什么都没有收到。这意味着您的 IPTables 规则运行正常。