同一IP一個小時內只允許嘗試建立3次SSH串連@for & ever 2010-3-16
首先,在/proc/net/ipt_recent/* 下建立不在限制行列的IP列表
然後,設定同一IP,一個小時內只允許嘗試建立3次SSH串連:
iptables -A INPUT -p tcp --dport 22 --syn -m recent --rcheck --seconds 3600 --hitcount 3 --rttl --name SSH --rsource -j DROP
iptables -A INPUT -p tcp --dport 22 --syn -m recent --set --name SSH --rsource -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
注意 rule順序:
先設定 recent 的-j DROP,再設定recent --set -j ACCEPT
#設定這個 用來解除鎖定
iptables -A INPUT -p tcp --dport 1600 --syn -j LOG --log-prefix "SSH_CONN_UNLOCKED "
iptables -A INPUT -p tcp --dport 1600 --syn -m recent --remove --name SSH --rsource -j REJECT --reject-with icmp-host-unreachable
使用方法: telnet linux.host 1600
其中 tcp 1600 port 可以改成任意的未使用的 tcp port
/proc/net/ipt_recent/* 列表裡,如果沒有設定 –name,則預設為DEFAULT
樣本如下:
#添加某個IP到DEFAULT
echo xx.xx.xx.xx > /proc/net/ipt_recent/DEFAULT
#從DEFAULT移除某個IP
echo -xx.xx.xx.xx > /proc/net/ipt_recent/DEFAULT
#清空 DEFAULT
echo clear > /proc/net/ipt_recent/DEFAULT
@forandever 2010-3-16