由于机器已经在跑重要的业务,我又不想去升级内核,免得影响正常的网站运营,所以iptables的想法暂时告一段落;后来我又想到用HostsDeny的方法来解决这个问题,感觉这个方法还是比较繁琐,还不如自己手动写脚本来解决这个麻烦,脚本内容如下:
-
#! /bin/bash
-
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /root/black.txt
-
DEFINE="20"
-
for i in `cat /root/black.txt`
-
do
-
IP=`echo $i |awk -F= '{print $1}'`
-
NUM=`echo $i|awk -F= '{print $2}'`
-
if [ $NUM -gt $DEFINE ];
-
then
-
grep $IP /etc/hosts.deny > /dev/null
-
if [ $? -gt 0 ];
-
then
-
echo "sshd:$IP" >> /etc/hosts.deny
-
fi
-
fi
-
done
本文转自 抚琴煮酒 51CTO博客,原文链接:http://blog.51cto.com/yuhongchun/662500,如需转载请自行联系原作者