天天看點

利用shell和iptables實作自動拒絕惡意試探連接配接SSH服務

利用shell和iptables實作自動拒絕惡意試探連接配接SSH服務,并發郵件通知管理者。

[root@ZHAOYUN ~]# cat ssh.sh 

#!/bin/bash

TIME=`date +"%Y-%m-%d %H:%M:%S"`

BADIP=/root/ssh_badip

BKIP=/root/back_ssh_badip

AR=`wc -l $BKIP |awk '{print $1}'`

lastb | awk '{print $3" "$6" "$7}' | awk -F: '{print $1}' |sort |uniq -c|awk '$1 > 5 {print $1" " $2" "$3" "$4}'| awk -vtime="$TIME" '{print time" "$1 " "$2" "$3" "$4}' >$BADIP

cat $BADIP >> $BKIP

for bip in `awk '{print $4}' "$BADIP"`

do

iptables -I INPUT -p tcp --dport 22  -s $bip -j DROP

done

AR2=`wc -l $BKIP |awk '{print $1}'`

VALUE=`echo "$AR2-$AR"|bc`

LAST=`tail -n $VALUE $BKIP`

if [ $VALUE -gt 0 ] ; then

sendmail -t <<EOF

to:[email protected]

subject: 嚴重警告

$TIME 目前有人正在試探性連接配接SSH服務,系統已經幫你攔截,檢視詳情請登入系統。

      $LAST

EOF

fi

~

在任務計劃中添加

*/15 * * * * /root/ssh.sh

*/20  * * * *  cat /var/log/btmp  >> /var/log/btmp.bak ; >/var/log/btmp

*  */2 * * * service iptables restart

郵件效果截圖

本文轉自zhaoyun00 51CTO部落格,原文連結:http://blog.51cto.com/zhaoyun/614496