防止ssh暴力破解linux密碼

網上看到一篇安全方面的文章,經常使用的網站收藏沒法收藏,因而放這裏先。具體功能還未測試請慎用linux

下面是博客原文轉載,感謝做者辛苦勞動: shell


服務器在互聯網中,天天都有些沒事兒乾的人在你的機器端口掃來掃去,讓管理員很是煩惱。本文描述一個方法,利用本文介紹的腳本結合iptables服務一併使用,用來防止公網計算機經過ssh進行用戶口令暴力破解。目前穩重腳本已經在其餘項目的實際運營環境中獲得驗證。
安全

腳本內容:bash

#!/bin/bash
# 防SSH密碼暴力破解腳本
# 經過分析secure日誌文件使用iptables拒絕惡意登入IP
# by WangJun CaoYinSheng 2014.01.27

source /root/.bash_profile     #腳本運行環境變量
FILE_DIR=/opt/security_tools     #程序執行路徑
LOG_FILE=/var/log/secure     #日誌路路徑
SAVE_FILE=$FILE_DIR/belialIP     #保存iptables拒絕IP文件名
SAVE_TEMP_FILE=${SAVE_FILE}.temp      #臨時保存拒絕IP文件名,比較用
IP_REPEAT=15;          #容許嘗試登入次數

#二次正則是考慮日誌文件過大致使sort排序過慢的問題
ip=`cat $LOG_FILE | awk -F":" '{print $1":"$2":"$3":"$4""$7}' |sed -n -e '/.*Failed password.*/p' | sort | uniq -c | awk -v nnm=$IP_REPEAT '{if($1 > num) print $0;}' | sed -n -e 's/.*Failed password.*from[ ]\(.*\)[ ]port.*/\1/p'| awk '{a[$0]++}END{for(i in a){print i}}'`;

backIFS=$IFS;
IFS="\n";

if [ -e $SAVE_FILE ]
then
    echo $ip > $SAVE_TEMP_FILE;
    differ=`comm -13 $SAVE_FILE $SAVE_TEMP_FILE`;
    tmp=`cat $SAVE_FILE`;
    echo -e $differ"\n"$tmp | uniq | sort > $SAVE_FILE;
else
    differ=$ip;
    echo $ip > $SAVE_FILE;
fi

if [ ${differ} ]
then
    IFS=$backIFS;
    ips=`echo $differ | tr "\n" ' ' | tr -s ' '`;
    
    for dip in $ips;
    do
        iptables -A INPUT -s $dip -j DROP
    done;
fi


部署方法:服務器

一、在/opt/security_tools目錄下建立文件killer.sh,並將腳本內容粘貼到文件中;ssh

二、運行killer腳本:測試

#sh -x ./killer.sh網站

找到root運行腳本的環境變量可能以下:spa

########輸出內容   開始############
PATH=/usr/local/ImageMagick-6.8.8-2/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:/root/bin
########輸出內容   結束#############


#crontable -erest

將上述環境變量粘貼到crontable的最頂端一行;

三、建立crontable計劃

#crontable -e

在crontable配置文件中添加以下信息:

########添加內容   開始############
*/10 * * * * /bin/sh /opt/security_tools/killer.sh &               #每隔10分鐘運行一次killer.sh腳本
01 22 * * 2,6 /bin/sh /opt/security_tools/killer.sh &          #沒週二週六晚上22點01分運行一次killer.sh腳本
* 22 * * 2,6 service iptables restart &                                #沒週二週六晚上22點整運行一次iptables服務重啓
########添加內容   結束#############

 四、測試

10分鐘後查看iptables –list 觀察是否已經有被幹掉的地址。



因爲是簡單摘錄,還沒空測試,請慎用

具體功能還未測試請慎用

具體功能還未測試請慎用

具體功能還未測試請慎用

重要的話,說三遍!

相關文章
相關標籤/搜索