由 blc » 週三 11月 21, 2007 11:26 pm
$iptables -A INPUT -p tcp -m state --state ESTABLISHED --tcp-flags FIN,ACK FIN,ACK --dport 22 -m recent --name sshattack --set
$iptables -A INPUT -p tcp -m state --state ESTABLISHED --tcp-flags RST RST --dport 22 -m recent --name sshattack --set
$iptables -A INPUT -p tcp --syn --dport 22 -m recent --name sshattack --set
$iptables -A INPUT -m recent --name sshattack --rcheck --seconds 60 --hitcount 4 -j DROP
$iptables -A INPUT -m recent --name sshattack --rcheck --seconds 60 --hitcount 3 -m limit --limit 4/minute -j LOG --log-prefix 'SSH attack: '
$iptables -A INPUT -m recent --name sshattack --rcheck --seconds 60 --hitcount 3 -j DROP
$iptables -A INPUT --protocol tcp --dport 22 -j ACCEPT
大概是這樣…
這是我在用的,60秒內超過3(還是4?)個封包就斷4分鐘,不過這是很久以前從網路上抄來的,可能有些不合邏輯的地方,用起來是還過得去啦。
另一個方法是用knockd,不過不是很方便就是了…