由于机器已经在跑重要的业务,我又不想去升级内核,免得影响正常的网站运营,所以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