我有防火墙规则,它应该接受所有连接,但会丢弃来自 ssh 暴力攻击的连接(10.0.0.0/8 范围除外)。如果 IP 每 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
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 上的回答的复制,问题本质上是一样的)