標籤:ssh 暴力破解
寫的一個SSH的防暴力破解指令碼。
原理是檢測SSH串連日誌,過濾登入失敗的IP,超過登入次數就將其添加進hosts.deny檔案中,限制其登入。
指令碼如下:
#! /bin/bashcat /var/log/secure|awk ‘/Failed/{print $(NF-3)}‘|sort|uniq -c|awk ‘{print $2"="$1;}‘ > /root/black.txtDEFINE="10"for i in `cat /root/black.txt`do IP=`echo $i |awk -F= ‘{print $1}‘` NUM=`echo $i|awk -F= ‘{print $2}‘` if [ $NUM -gt $DEFINE ]; then grep $IP /etc/hosts.deny > /dev/null if [ $? -gt 0 ]; then echo "sshd:$IP" >> /etc/hosts.deny fi fidone
注意,Ubuntu和CentOS的SSH記錄檔路徑不一樣:
/var/log/auth.log Ubuntu是這個檔案
/var/log/secure CentOS是這個檔案
然後添加進任務計劃:
CentOS:
echo "* */1 * * * root sh /root/ssh_deny.sh" >> /var/spool/cron/root
Ubuntu:
echo "* */1 * * * root sh /root/ssh_deny.sh > /dev/null 2>&1" >> /var/spool/cron/crontabs/rootcrontab /var/spool/cron/crontabs/root
由於Ubuntu預設的shell是dash,導致crontab不運行,我們就將預設shell改為bash就好了。
rm /bin/sh ln -s /bin/bash /bin/sh
SSH防暴力破解shell指令碼