防火墙规则使用iptables使用条件语句

我有防火墙规则,应该接受所有的连接,但从SSH蛮力攻击(10.0.0.0/8范围除外)删除连接。 如果每10分钟尝试超过24个连接,则此规则将阻止IP。

# Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp --dport 22 -s ! 10.0.0.0/8 -m state --state NEW -m recent --set --name SSH -A INPUT -p tcp --dport 22 -s ! 10.0.0.0/8 -m state --state NEW -m recent --update --seconds 600 --hitcount 25 --rttl --name SSH -j DROP -A INPUT -j ACCEPT -A FORWARD -j ACCEPT COMMIT 

当我尝试启动iptables作为一个糟糕的争论时,它会出错。

 iptables: Applying firewall rules: Bad argument `10.0.0.0/8' 

这在之前曾在SF中讨论过。 iptables改变了它接受参数的方式。 现在爆炸应该参数之前 ,所以你的线条变成这样:

 -A INPUT -p tcp --dport 22 ! -s 10.0.0.0/8 -m state --state NEW -m recent --set --name SSH -A INPUT -p tcp --dport 22 ! -s 10.0.0.0/8 -m state --state NEW -m recent --update --seconds 600 --hitcount 25 --rttl --name SSH -j DROP 

是的,互联网上的每一个博客都是错误的。

(这是我在StackOverflow中的答案的副本,问题本质上是一样的)