/var/log/secure ###sshd会将所有信息记录(其中包括失败登录)在这里。


cat /var/log/secure | awk '/Failed/{print $(NF-3)}' | sort -n| uniq -c| sort -rn
从统计中可以看出登录失败的ip及次数或登录用户,此时就可以写一个shell脚本来处理。

[root@xadmaster tmp]# car test2.sh
#bin/bash
#Author:XAD
#Version:3.0
#Date=Sun Feb 17 22:02:36 CST 2018
LogPath=/var/log/secure
LimitLine=50 #根据需求而定
[ ! -f $LogPath ] && { echo "Warning:$LogPath is not exist!" ; exit 1;}
for i in `cat $LogPath | awk '/Failed/{print $(NF-3)}' | sort -n| uniq -c| sort -rn| awk '{print $1":"$2}'`
do
#echo $i
NUM=`echo $i | awk -F: '{print $1}'`
IP=`echo $i | awk -F: '{print $2}'`
#echo $NUM
#echo $IP
if [ $NUM -gt $LimitLine ];then
grep $IP /etc/hosts.deny > /dev/null
if [ $? -gt 0 ];then
echo sshd:$IP >> /etc/hosts.deny
fi
fi
#exit
done查看该文件/etc/hosts.deny


原文地址:http://blog.51cto.com/onenice/2089631