<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經轉移至github,大家請訪問 http://qaseven.github.io/

    Shell腳本防攻擊一例

      不知道得罪了哪路神仙,收到nagios報警,發現有個網站有CC攻擊。看樣子,量還不小,把服務器的負載都弄到40+了,雖然網站還能打開,但打開也是非常的緩慢。如果不是配置高點,估計服務器早就掛掉了。看來又是不一個不眠之夜了。

      迅速查看一下nginx的訪問日志

      #tail -f access.log

      貌似全是像這樣的狀態。

      我先緊急手動封了幾個訪問量比較大的Ip。

    1. #iptables -A INPUT -s 83.187.133.58 -j DROP 
    2. #iptables -A INPUT -s 80.171.24.172 -j DROP 
    3. ......

      緊急封了幾個ip后,負載降了一些了,網站訪問速度有所提升了,但是不一會,又來了一批新的Ip, 受不了了,看來要出絕招了。寫了shell腳本,讓他逮著了,就封。發現他攻擊的狀態都相同,每一個攻擊ip后面都有 HTTP/1.1" 499 0 "-" "Opera/9.02 (Windows NT 5.1; U; ru) 的字段,那我們就來搜這個字段。

    1. #vim fengip.sh 

    2. #! /bin/bash 
    3. for i in `seq 1 32400` 
    4. do 
    5. sleep 1 
    6. x=`tail -500 access.log |grep 'HTTP/1.1" 499 0 "-" "Opera/9.02'|awk '{print $1}'|sort -n|uniq` 
    7. if [ -z "$x" ];then 
    8. echo "kong" >>/dev/null 
    9. else 
    10. for ip in `echo $x` 
    11. do 
    12. real=`grep -l ^$ip$ all` 
    13. if [ $? -eq 1 ];then 
    14. echo iptables -A INPUT -s $ip -p tcp --dport 80 -j DROP 
    15. iptables -A INPUT -s $ip -p tcp --dport 80 -j DROP 
    16. echo $ip >>all 
    17. fi 
    18. done 
    19. fi 
    20. done

      腳本寫好了。如圖

    我們來運行一下,運行幾分鐘后,如下圖所示

      經過半個小時的觀察,服務器負載也降到0.幾了,腳本也不斷在封一些CC攻擊的ip。

      一直讓他運行著,晚上應該能睡個好覺了。

      下來我們來對腳本進行解釋一下。

    1. #vim fengip.sh 
    2.  
    3. #! /bin/bash 
    4. Touch all    #建立all文件,后面有用到 
    5. for i in `seq 1 32400` #循環32400次,預計到早上9點的時間 
    6. do 
    7. sleep 1 
    8.  
    9. x=`tail -500 access.log |grep 'HTTP/1.1" 499 0 "-" "Opera /9.02'|awk '{print $1}'|sort -n|uniq` #查看最后500行的訪問日志,取出包含 'HTTP /1.1" 499 0 "-" "Opera/9.02' 的行的ip并排序,去重復 
    10. if [ -z "$x" ];then 
    11. echo "kong" >>/dev/null #如果$x是空值的話,就不執行操作,說明500行內,沒有帶 'HTTP/1.1" 499 0 "-" "Opera/9.02' 的行 
    12. else 
    13. for ip in `echo $x` #如果有的話,我們就遍歷這些ip 
    14. do 
    15. real=`grep -l ^$ip$ all` #查看all文件里有沒有這個ip,因為每封一次,后面都會把這個ip寫入all文件,如果all文件里面有這個ip的話,說明防火墻已經封過了。 
    16. if [ $? -eq 1 ];then #如果上面執行不成功的話,也就是在all文件里沒找到,就用下面的防火墻語句把ip封掉,并把ip寫入all文件 
    17. echo iptables -A INPUT -s $ip -p tcp --dport 80 -j DROP 
    18. iptables -A INPUT -s $ip -p tcp --dport 80 -j DROP 
    19. echo $ip >>all 
    20. fi 
    21. done 
    22. fi 
    23. done

      腳本很簡單,大牛略過啊。。。

      有什么不明白話,歡迎一起探討學習。

    posted on 2012-06-01 09:49 順其自然EVO 閱讀(333) 評論(0)  編輯  收藏 所屬分類: linux

    <2012年6月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    1234567

    導航

    統計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲理论精品午夜电影| 久久亚洲AV无码精品色午夜麻| 久久99热精品免费观看牛牛| 狠狠综合久久综合88亚洲| 一级做a爰性色毛片免费| 一本色道久久综合亚洲精品高清| 成人免费视频一区二区| 亚洲人AV永久一区二区三区久久| 青青视频免费在线| 国产AV无码专区亚洲AV手机麻豆| 中国好声音第二季免费播放| 亚洲AV无一区二区三区久久| 最近免费中文字幕大全高清大全1 最近免费中文字幕mv在线电影 | 国产精品久久香蕉免费播放| 亚洲小说区图片区另类春色| 国产综合免费精品久久久| 亚洲精品字幕在线观看| baoyu777永久免费视频| 亚洲视频免费观看| a级片免费在线观看| 久久99亚洲网美利坚合众国 | 国产在线精品免费aaa片| 亚洲欧洲日产国码久在线观看 | 爱情岛论坛亚洲品质自拍视频网站| 四虎影视精品永久免费| 热久久这里是精品6免费观看| 77777_亚洲午夜久久多人| 在线免费观看一级毛片| 国产免费内射又粗又爽密桃视频| 亚洲人成电影在在线观看网色| 免费A级毛片无码免费视| 亚洲精品午夜在线观看| 德国女人一级毛片免费| 国产高潮久久免费观看| 337p日本欧洲亚洲大胆精品555588| 67194熟妇在线永久免费观看| 美女视频黄a视频全免费网站一区| 亚洲成色WWW久久网站| 女性自慰aⅴ片高清免费| 99久久成人国产精品免费| 亚洲一区二区三区精品视频|