利用iptables防SSH暴力破解

感謝該腳本的原創者,我只是糾正了一些錯誤,添加了幾行說明,並測試成功。
該腳本適用於密碼驗證的SSH服務端。


腳本說明:
利用iptables把超過10次SSH登陸失敗的IP拒絕掉。
建議定期自動恢復iptables初始配置,被拒絕的IP在恢復後解封。
IP解封週期由iptables恢復初始配置的週期,及secure日誌滾動週期共同決定(默認每週滾動一次)

/etc/crontab中追加以下計劃任務,iptables.sh是初始配置腳本,可參考iptables的詳細配置。
01 1 * * 1 root /root/script/iptables.sh
*/1 * * * * root /root/script/ssh_deny.sh

#!/bin/bash
#######################################################################
#author      unknown
#update      zhaoyn   2011/03/23
#
#######################################################################
 
SCANIP=`grep "Failed" /var/log/secure | awk '{print $(NF-3)}' |sort|uniq -c|awk '{print $1"="$2;}'`
 
for i in $SCANIP
do
NUMBER=`echo $i|awk -F= '{print $1}'`
SCANIP=`echo $i|awk -F= '{print $2}'`
echo "$NUMBER($SCANIP)"
 
if [ $NUMBER -gt 10 ] && [ -z "`iptables -vnL INPUT|grep $SCANIP`" ]
then
/sbin/iptables -I INPUT -s $SCANIP -m state --state NEW,RELATED,ESTABLISHED -j DROP
echo "`date` $SCANIP($NUMBER)" >> /root/script/scanip.log
fi
 
done


附件中的腳本文件是有DOS換行符(CR/LF)的,複製文件中的內容到一般的SSH客戶端沒有問題,如果直接拷貝文件到Linux系統中,可先運行下面的命令:
mv ssh_deny.sh.txt ssh_deny.sh
dos2unix  ssh_deny.sh


原文:http://www.zhaoyanan.cn/use-iptables-to-prevent-ssh-brute-force.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章