亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

Linux VPS下簡單解決CC攻擊

添加時間:2011-2-26  添加: admin 

一:什么是CC攻擊?
CC攻擊就是利用大量代理服務器對目標計算機發起大量連接,導致目標服務器資源枯竭造成拒絕服務。
攻擊原理:CC主要是用來攻擊頁面的。大家都有這樣的經歷,就是在訪問論壇時,如果這個論壇比較大,訪問的人比較多,打開頁面的速度會比較慢,對不?!一般來說,訪問的人越多,論壇的頁面越多,數據庫就越大,被訪問的頻率也越高,占用的系統資源也就相當可觀,現在知道為什么很多空間服務商都說大家不要上傳論壇,聊天室等東西了吧。

 

一個靜態頁面不需要服務器多少資源,甚至可以說直接從內存中讀出來發給你就可以了,但是論壇就不一樣了,我看一個帖子,系統需要到數據庫中判斷我是否有讀讀帖子的權限,如果有,就讀出帖子里面的內容,顯示出來——這里至少訪問了2次數據庫,如果數據庫的體積有200MB大小,系統很可能就要在這200MB 大小的數據空間搜索一遍,這需要多少的CPU資源和時間?如果我是查找一個關鍵字,那么時間更加可觀,因為前面的搜索可以限定在一個很小的范圍內,比如用戶權限只查用戶表,帖子內容只查帖子表,而且查到就可以馬上停止查詢,而搜索肯定會對所有的數據進行一次判斷,消耗的時間是相當的大。

CC就是充分利用了這個特點,模擬多個用戶(多少線程就是多少用戶)不停的進行訪問(訪問那些需要大量數據操作,就是需要大量CPU時間的頁面)。很多朋友問到,為什么要使用代理呢?因為代理可以有效地隱藏自己的身份,也可以繞開所有的防火墻,因為基本上所有的防火墻都會檢測并發的TCP/IP連接數目,超過一定數目一定頻率就會被認為是Connection-Flood。

使用代理攻擊還能很好的保持連接,我們這里發送了數據,代理幫我們轉發給對方服務器,我們就可以馬上斷開,代理還會繼續保持著和對方連接(我知道的記錄是有人利用2000個代理產生了35萬并發連接)。

二:怎么防范?
一,準備工作
1,登錄進VPS控制面板,準備好隨時重啟VPS。
2,關閉Web Server先,過高的負載會導致后面的操作很難進行,甚至直接無法登錄SSH。
3,以防萬一,把設置的Web Server系統啟動后自動運行去掉。
(如果已經無法登錄進系統,并且重啟后負載過高導致剛剛開機就已經無法登錄,idc.com">www.linuxidc.com可聯系管理員在母機上封掉VPS的IP或80端口,在母機上用虛擬控制臺登錄進系統,然后進行2&3的操作,之后解封)

二,找出攻擊者IP
1,在網站根目錄建立文件ip.php,寫入下面的內容。

<?php
$real_ip = getenv(‘HTTP_X_FORWARDED_FOR’);
if(isset($real_ip)){
shell_exec(“echo $real_ip >> real_ip.txt”);
shell_exec(“echo $_SERVER['REMOTE_ADDR'] >> proxy.txt”);
}else{
shell_exec(“echo $_SERVER['REMOTE_ADDR'] >> ips.txt”);
}   echo ‘服務器受到攻擊,正在收集攻擊源,請在數分鐘后訪問本站,5分鐘內多次訪問本站有可能會被當作攻擊源封IP。謝謝合作!’;
?>2,設置偽靜態,將網站下的所有訪問都rewrite到ip.php。
Nginx規則:

rewrite (.*) /ip.php;Lighttpd規則:

url.rewrite = (
“^/(.+)/?$” => “/ip.php”
)3,啟動Web Server開始收集IP
進行完1和2的設置后,啟動Web Server,開始記錄IP信息。
收集時間建議為3到5分鐘,然后再次關閉Web Server。
real_ip.txt,這個文件中保存的IP有80%以上都相同的,這個IP就是攻擊者實施攻擊的平臺的IP。
proxy.txt,這個文件中保存的是攻擊者調用的代理服務器的IP,需要封掉。
ips.txt,這里記錄的是未表現出代理服務器特征的IP,根據訪問次數判斷是否為攻擊源。

三,對上一段的補充
如果VPS上啟用了WEB日志,可以查看日志文件的增長速度來判斷是哪個站點被攻擊。
如果沒有啟用日志,并且站點數量很少,臨時啟用日志也很方便 。
如果沒有啟用日志,并且站點數量過多,可以使用臨時的Web Server配置文件,不綁定虛擬主機,設置一個默認的站點。然后在ip.php里加入下面一行

shell_exec(“echo $_SERVER['HTTP_HOST'] >> domain.txt”);四,開始封堵IP

 

建立文件ban.php
$num){
if($num > $threshold){
$ip = trim($ip);
$cmd = “iptables -I INPUT -p tcp –dport 80 -s $ip -j DROP”;
shell_exec($cmd);
echo “$ip baned!\n”;
$ban_num ++;
}
}   $proxy_arr = array_unique(file(‘ips.txt’));
foreach($proxy_arr as $proxy){
$proxy = trim($proxy);
$cmd = “iptables -I INPUT -p tcp –dport 80 -s $ip -j DROP”;
shell_exec($cmd);
echo “$ip baned!\n”;
$ban_num ++;
}   echo “total: $ban_num ips\n”;
?>用下面的命令執行腳本(確保php命令在PATH中)

php ban.php這個腳本依賴于第二段中ips.txt里保存的結果,當其中記錄的IP訪問次數超過10次,就被當作攻擊源給屏蔽掉。如果是代理服務器,則不判斷次數直接封掉。
封完IP之后,把所有的網站設置恢復正常,站點可以繼續正常運行了。

五,一些細節
為保持對操作過程的描述盡量簡潔,沒有在上面的內容中加入過多的解釋,留在這段統一講述。
1,關于“代理服務器”的一些本質
兩個與TCP&HTTP協議相關的值,REMOTE_ADDR和HTTP_X_FORWARDED_FOR。
(1)REMOTE_ADDR總是取離Web服務器最接近的一臺主機的IP,如果沒有使用代理,這個值就是訪問者本身的IP,如果使用了代理,這個值就是代理服務器的IP,如果通過多個代理服務器進行的連接,這個值就是到達Web服務器前最后一臺代理服務器的IP。
REMOTE_ADDR是由TCP/IP層決定的,不能修改不能偽造。
(2)HTTP_X_FORWARDED_FOR,因為這個值是屬于HTTP部分,而不是TCP/IP,所以這個值不管是什么,都不影響數據的傳輸。事實上,一般情況下,如果是訪問者直接訪問Web服務器,這個值為空;通過透明代理的時候,這個值會被代理服務器設置為訪問者的IP;通過匿名代理連接時,這個值可能為代理服務器的IP也可能是空的也有可能是隨機的。
HTTP_X_FORWARDED_FOR可以被任意修改。大多數代理服務器都是透明代理,也就是說,會把這個值設置為最原始訪問者的IP。

2,關于解決CC攻擊的層面問題
按處理效率從高到低排列。
(由于本文是針對VPS服務器所寫,而VPS簡單來說就是服務器的低端替代品,內存和CPU等資源普遍偏低,當然是處理效率越高越好。)
(1)網絡傳輸層。也就是本文所用的iptables,這個工具本身是工作于系統內核,在建立網絡連接時直接把攻擊者的連接給否了。在這一層面上將攻擊源處理掉后,消耗掉的資源幾乎可以忽略不計。
(2)Web Server層,大多數Web Server都可以設置禁止訪問的IP。在這一層上解決的意義和上面的差不多,但是效率要差些。
(3)腳本層,從腳本程序上制定適合于本身的策略過濾掉攻擊源。網絡上有很多流傳的在這一層面的解決方案,但是不太適用于VPS,而且設置難度可能要增加幾倍或者幾十倍。

3,為什么不是從日志收集IP?
主要是考慮兩點,一是大多數VPS使用者都因為硬盤空間過小,經常清除日志很麻煩,而直接禁止了日志。
二是如果從日志收集IP,腳本復雜程度要高很多,而且可能要根據情況做些調整,考慮到將要讀到本文的人大多數都未必掌握更多的技術,本文的目的就是按部就班的依本文進行操作,即可解決問題。

關健詞:Linux VPS

分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站