久久久久久久性爱潮,国产又粗又猛又爽又黄下载视频,尤物国产在线一区视频,欧美日本国产在线不卡

<sup id="4uqqy"><ol id="4uqqy"></ol></sup>
  • <th id="4uqqy"></th>

      • <strike id="4uqqy"><nobr id="4uqqy"><ins id="4uqqy"></ins></nobr></strike><sup id="4uqqy"></sup><strong id="4uqqy"><u id="4uqqy"></u></strong>
        <sub id="4uqqy"></sub>

          綠色資源網(wǎng):您身邊最放心的安全下載站! 最新軟件|熱門排行|軟件分類|軟件專題|廠商大全

          綠色資源網(wǎng)

          技術教程
          您的位置:首頁服務器類Linux服務器 → linux服務器并webbench攻擊解決方案:封鎖攻擊者ip

          linux服務器并webbench攻擊解決方案:封鎖攻擊者ip

          我要評論 2013/03/29 12:01:23 來源:綠色資源網(wǎng) 編輯:www.kiwanis-srv.org [ ] 評論:0 點擊:377次

          首先我來說一下這個被攻擊的網(wǎng)站的大概部署狀況.這個網(wǎng)站主要是nginx+mysql+php,有兩臺服務器分別放了web和數(shù)據(jù)庫,web只對外開啟了80端口操作系統(tǒng)是centos,而數(shù)據(jù)庫服務器則在內網(wǎng),攻擊者的手段其實很簡單,用webbench網(wǎng)站壓力測試工具發(fā)送大量的請求到服務器,之前的時候發(fā)送每一個請求之后數(shù)據(jù)庫就會相應,然后讀取內容最終顯示,造成數(shù)據(jù)庫和web之間大量的交換數(shù)據(jù),甚至導致mysql達到連接數(shù)上限,請求被拒絕,而且攻擊者時間挺多的,他不停地換浮動ip,因此直接用防火墻封鎖ip沒意義.

          剛開始我的做法是,用php取得攻擊者的agent頭,判斷是不是webbench來訪,如果是就die掉,不在請求數(shù)據(jù)庫,確實挺有效,數(shù)據(jù)庫不會再超出限制了,但是對方頻繁的發(fā)送請求過來,導致網(wǎng)絡帶寬被嚴重消耗,看來得想想其他辦法,最終想到了一個解決方法且實際測試發(fā)現(xiàn)可行,因此分享給大家,其實我的做法原理很簡單:用php取得用戶agent頭判斷是否是webbench來源,如果是的話就在服務器上寫一個shell文件,這個文件的內容就是封鎖IP的規(guī)則,

          然后再用chmod函數(shù)修改一下這個文件讓其可執(zhí)行,再用cron服務讀取這個文件執(zhí)行,把ip封鎖掉,整個過程全部自動化完成不需要人為干預,另外在封鎖的時候給我發(fā)一封email通知我有個倒霉蛋被干掉了,這樣就行了.

          具體實現(xiàn)代碼如下:

          IF(isSet($_SERVER['HTTP_USER_AGENT']) And Trim($_SERVER['HTTP_USER_AGENT'])!='') {

              $_SERVER['HTTP_USER_AGENT']=StrToLower($_SERVER['HTTP_USER_AGENT']);

              IF(StriStr($_SERVER['HTTP_USER_AGENT'],'webbench')!==False) {

                  $p='/home/www/webbench.sh';

                  $_SERVER['REMOTE_ADDR']=isSet($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : 'unknow';

                  <span style="color: #ff0000;">File_Put_Contents($p,"#!/bin/bash\niptables -I INPUT -s {$_SERVER['REMOTE_ADDR']} -j DROP;\n",LOCK_EX);

          </span>     Chmod($p,0755);

                  chown($p,'www');

                  <span style="color: #ff0000;">Function sMail($to,$tit,$msg) {

                      IF(Filter_var($to,FILTER_VALIDATE_EMAIL)==''){

                          throw new Exception('郵箱地址錯誤!');

                      }

                      $tit='=?UTF-8?B?'.Base64_Encode($tit).'?=';

                      $msg = str_replace("\n.","\n..",$msg);      //Windows如果在一行開頭發(fā)現(xiàn)一個句號則會被刪掉,要避免此問題將單個句號替換成兩個句號

                      Return Mail($to,$tit,$msg,'From:No-reply@adm.bossadm.com.tw'."\n".'Content-Type:text/html;charset=utf-8');

                  }

                  sMail('see7di@gmail.com','【W(wǎng)ebBench又開始了t】!',date('Y-m-d H:i:s',time())." {$_SERVER['REMOTE_ADDR']}");</span>

                  Header('Location:http://127.0.0.1');

                  Die();

              }

          }

          后來我又做了一次調整,把發(fā)email的部份寫入了shell文件內,不再用php發(fā)email,因為那會灌爆你的信箱,把上邊的代碼修改成:

          IF(isSet($_SERVER['HTTP_USER_AGENT']) And Trim($_SERVER['HTTP_USER_AGENT'])!='') {

              $_SERVER['HTTP_USER_AGENT']=StrToLower($_SERVER['HTTP_USER_AGENT']);

              IF(StriStr($_SERVER['HTTP_USER_AGENT'],'webbench')!==False) {

                  $p='/home/www/webbench.sh';

                  $_SERVER['REMOTE_ADDR']=isSet($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : 'unknow';

                  File_Put_Contents($p,"#!/bin/bash\niptables -I INPUT -s {$_SERVER['REMOTE_ADDR']} -j DROP;\necho \"{$_SERVER['REMOTE_ADDR']} - `date`\" | mail -s \"WebBench-www.kiwanis-srv.org\" see7di@gmail.com\n",LOCK_EX);

                  Chmod($p,0755);

                  chown($p,'www');

                  Header('Location:http://127.0.0.1');

                  Die();

              }

          }

          關鍵詞:linux服務器

          閱讀本文后您有什么感想? 已有 人給出評價!

          • 0 歡迎喜歡
          • 0 白癡
          • 0 拜托
          • 0 哇
          • 0 加油
          • 0 鄙視