網上看到一篇安全方面的文章,經常使用的網站收藏沒法收藏,因而放這裏先。具體功能還未測試,請慎用。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 觀察是否已經有被幹掉的地址。
因爲是簡單摘錄,還沒空測試,請慎用
具體功能還未測試,請慎用
具體功能還未測試,請慎用
具體功能還未測試,請慎用
重要的話,說三遍!