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

时间:2013-12-13 22:39:26

标签: linux firewall 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'

1 个答案:

答案 0 :(得分:4)

之前在SF谈到了这个问题。 iptables改变了接受参数的方式。现在bang应该是之前参数,所以你的行变为:

-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

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