查看服务器的登录日志并提取相关的信息。

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

qq截图20180217225035.png

cat /var/log/secure | awk '/Failed/{print $(NF-3)}' | sort -n| uniq -c| sort -rn

clipboard.png

从统计中可以看出登录失败的ip及次数或登录用户,此时就可以写一个shell脚本来处理。

[root@xadmaster tmp]# cat 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

clipboard (1).png