同一IP一个小时内只允许尝试建立3次SSH连接

同一IP一个小时内只允许尝试建立3SSH连接

@for & ever 2010-3-16

首先,在/proc/net/ipt_recent/*   下建立不在限制行列的IP列表

然后,设置同一IP,一个小时内只允许尝试建立3SSH连接:

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

示例如下:

#添加某个IPDEFAULT 

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

 

 

你可能感兴趣的:(tcp,ssh,input,360,2010)