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

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

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

    qileilove

    blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

    Shell腳本防攻擊一例

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

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

      #tail -f access.log

      貌似全是像這樣的狀態(tài)。

      我先緊急手動封了幾個訪問量比較大的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后,負(fù)載降了一些了,網(wǎng)站訪問速度有所提升了,但是不一會,又來了一批新的Ip, 受不了了,看來要出絕招了。寫了shell腳本,讓他逮著了,就封。發(fā)現(xiàn)他攻擊的狀態(tài)都相同,每一個攻擊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

      腳本寫好了。如圖

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

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

      一直讓他運行著,晚上應(yīng)該能睡個好覺了。

      下來我們來對腳本進(jìn)行解釋一下。

    1. #vim fengip.sh 
    2.  
    3. #! /bin/bash 
    4. Touch all    #建立all文件,后面有用到 
    5. for i in `seq 1 32400` #循環(huán)32400次,預(yù)計到早上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并排序,去重復(fù) 
    10. if [ -z "$x" ];then 
    11. echo "kong" >>/dev/null #如果$x是空值的話,就不執(zhí)行操作,說明500行內(nèi),沒有帶 '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的話,說明防火墻已經(jīng)封過了。 
    16. if [ $? -eq 1 ];then #如果上面執(zhí)行不成功的話,也就是在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

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

      有什么不明白話,歡迎一起探討學(xué)習(xí)。

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

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

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久久久久亚洲av无码蜜芽| 亚洲愉拍一区二区三区| 国产亚洲人成A在线V网站| 亚洲va中文字幕无码| 国产精品99久久免费| 国产精品va无码免费麻豆| 国产在线a不卡免费视频| 全黄a免费一级毛片人人爱| 四虎永久免费观看| 亚洲成a人片在线观看久| 无码不卡亚洲成?人片| 在线亚洲精品自拍| 亚洲日韩乱码中文无码蜜桃臀网站| 亚洲午夜久久久影院伊人 | 九九全国免费视频| 国产精品1024在线永久免费| 最新亚洲成av人免费看| 日韩精品久久久久久免费| 永久免费在线观看视频| 国产精品无码免费播放| 国产青草视频在线观看免费影院| 国产又大又粗又硬又长免费| 亚洲精品国产自在久久| 伊人久久大香线蕉亚洲五月天| 亚洲日本精品一区二区| 久久精品国产亚洲AV蜜臀色欲| 亚洲中文字幕AV每天更新| 美女的胸又黄又www网站免费| 一级做α爱过程免费视频| 在线免费观看伊人三级电影| 最近中文字幕完整版免费高清| 国产免费不卡v片在线观看| 日韩免费视频一区| 亚洲一区二区三区无码中文字幕| 亚洲色欲色欲综合网站| 在线观看亚洲AV日韩A∨| 一级做a爰性色毛片免费| 日韩电影免费观看| 24小时免费直播在线观看| 亚洲精品老司机在线观看| 亚洲av丰满熟妇在线播放|