我正在尝试使用 iptables 规则来阻止以下流量;这是对无法访问主机的响应。
17:50:11.140992 IP 10.1.1.93 > 72.21.91.29: ICMP host 10.1.1.93 unreachable, length 48
17:50:11.140997 IP 10.1.1.93 > 72.21.91.29: ICMP host 10.1.1.93 unreachable, length 48
我添加了以下规则
[admin@user ~]# iptables -I OUTPUT -p icmp -m icmp --icmp-type 3/1 -s 10.1.1.93 -j DROP
[admin@user ~]# iptables -nL
Chain INPUT (policy DROP)
...
...
Chain OUTPUT (policy DROP)
target prot opt source destination
DROP icmp -- 10.1.1.93 0.0.0.0/0 icmptype 3 code 1
ACCEPT all -- 0.0.0.0/0 8.8.8.8 /* COMMENT */
还尝试阻止所有 icmp 类型 3 数据包,但不知何故我仍然在 tcpdump 中看到这些数据包。有人能帮我看看我做错了什么吗?
[admin@user ~]# iptables -I OUTPUT -p icmp -m icmp --icmp-type 3 -s 10.1.1.93 -j DROP
编辑:我看到的最接近的问题是这个尚未有答案的问题。https://unix.stackexchange.com/questions/217750/undesired-icmp-destionation-unreachable-message
答案1
由于10.1.1.93
不是任何接口的地址并且您有一个 SNAT 规则,我猜测 ICMP 数据包是使用不同的源地址生成的,因此您的iptables
规则不匹配。
为了摆脱这些Destination Host Unreachable
数据包,您可以向规则中添加正确的地址iptables
,或者根本不添加地址:
iptables -I OUTPUT -p icmp -m icmp --icmp-type host-unreachable -j DROP
但是,我会努力解决他们的原因:有人试图连接到只能出现在传出连接上而不是传入连接上的地址。规则如下:
iptables -A FORWARD -d 10.1.1.93 -m conntrack --ctstate NEW -j DROP
应该可以解决您的问题。备注:它在FORWARD
表中,因为这些连接不会延伸到INPUT
。