查看服務器的登錄日誌並提取相關的信息。
/var/log/secure ###sshd會將所有信息記錄(其中包括失敗登錄)在這裏。
cat /var/log/secure | awk '/Failed/{print $(NF-3)}' | sort -n| uniq -c| sort -rn
從統計中可以看出登錄失敗的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