外部 IP 每秒都会连接到我的邮件服务器 VM,我只想立即阻止该 IP 而不删除现有连接。
所以我应用了 DROP 规则。我甚至重新加载了所有 iptables 规则,但外部 IP 仍然连接到邮件服务器。
我使用 conntrack 来停止现有连接。
iptables -F
iptables -X
iptables -t nat -F
echo 1 > /proc/sys/net/ipv4/ip_forward
for IP in <IP_LIST> ; do
iptables -I INPUT -s $IP -j DROP
conntrack -D -s $IP
done
# Other rules follow (rule on INPUT are all specified to ports other than the mail ports)
# last rule
iptables -A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
结果conntrack -L -s <ATTACKERIP>
是
tcp 6 10 TIME_WAIT src=<ATTACKERIP> dst=<MYIP> sport=23305 dport=587 src=10.0.1.109 dst=10.0.0.5 sport=587 dport=23305 [ASSURED] mark=0 use=1
相关输出来自
iptables -L
iptables -L -t nat
是
iptables -t nat -D PREROUTING -i vmbr0 -p tcp -d <MYPUBLICIP> --dport 587 -j DNAT --to 10.0.1.109:587
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP all -- <ATTACKERIP> anywhere
DNAT tcp -- anywhere <MYDOMAIN> tcp dpt:submission to:10.0.1.109:587
我还应该做什么来立即删除新连接?
答案1
看起来您正在使用 NAT 将流量转发到您的邮件服务器。
然后向 INPUT 链添加过滤规则来过滤 NAT 流量是无效的,因为 INPUT 链中的规则仅适用于发往运行该 NAT 的同一系统上的进程的流量。iptables防火墙而不是转发的流量。
IIRC 你的规则应该在例如 FORWARD 链中。
参见下图https://stuffphilwrites.com/2014/09/iptables-processing-flowchart/以供参考。
答案2
当你做以下事情时:
iptables -nL INPUT
DROPping 规则是第一个吗?