/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