我添加了 20000 条 iptable 规则,如下所示:
iptables -A INPUT -s 108.62.150.0/24 -j DROP
iptables -A INPUT -s 109.108.64.0/19 -j DROP
iptables -A INPUT -s 109.110.32.0/19 -j DROP
从我的服务器阻止俄罗斯和东欧的 ips。
但是,对于这些范围内的许多 ip,我的 fail2ban 仍然存在。
我的规则集的开头如下所示:
Chain INPUT (policy DROP)
target prot opt source destination
DROP tcp -- 0.0.0.0/0 127.0.0.0/8
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
DROP all -- 224.0.0.0/4 0.0.0.0/0
PUB_IN all -- 0.0.0.0/0 0.0.0.0/0
PUB_IN all -- 0.0.0.0/0 0.0.0.0/0
PUB_IN all -- 0.0.0.0/0 0.0.0.0/0
PUB_IN all -- 0.0.0.0/0 0.0.0.0/0
PUB_IN all -- 0.0.0.0/0 0.0.0.0/0
DROP all -- 0.0.0.0/0 0.0.0.0/0
DROP all -- 108.62.150.0/24 0.0.0.0/0
DROP all -- 109.108.64.0/19 0.0.0.0/0
DROP all -- 109.110.32.0/19 0.0.0.0/0
DROP all -- 109.110.64.0/19 0.0.0.0/0
DROP all -- 109.111.176.0/20 0.0.0.0/0
为什么他们还过得去?
是 PUB_IN 语句吗?我的阻止(DROP)规则是否应该出现在 PUB_IN 规则之前?
Netfilter 表中的规则顺序很重要。你应该在你的 DROP 规则之后移动
PUB_IN
和ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
规则。规则state RELATED,ESTABLISHED
应保持不变。如果规则匹配互补流量,您应该在顶部使用更大的前缀对它们进行排序(例如 /4 应该在顶部 /32 在底部)。如果它们重叠(它们可以匹配相同的数据包),重新排序它们会改变语义,但如果它们是互补的,重新排序它们是安全的。