如何立即应用 DROP 规则(iptables/conntrack)

如何立即应用 DROP 规则(iptables/conntrack)

外部 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/以供参考。

https://stuffphilwrites.com/wp-content/uploads/2014/09/FW-IDS-iptables-Flowchart-v2019-04-30-1.png

答案2

当你做以下事情时:

iptables -nL INPUT

DROPping 规则是第一个吗?

相关内容