不用防火墻自動(dòng)對(duì)付CC攻擊防范vbs
CC主要是用來(lái)攻擊頁(yè)面的.大家都有這樣的經(jīng)歷,就是在訪問(wèn)論壇時(shí),如果這個(gè)論壇比較大,訪問(wèn)的人比較多,打開(kāi)頁(yè)面的速度會(huì)比較慢,對(duì)不?!一般來(lái)說(shuō),訪問(wèn)的人越多,論壇的頁(yè)面越多,數(shù)據(jù)庫(kù)就越大,被訪問(wèn)的頻率也越高,占用的系統(tǒng)資源也就相當(dāng)可觀,現(xiàn)在知道為什么很多空間服務(wù)商都說(shuō)大家不要上傳論壇,聊天室等東西了吧.
一個(gè)靜態(tài)頁(yè)面不需要服務(wù)器多少資源,甚至可以說(shuō)直接從內(nèi)存中讀出來(lái)發(fā)給你就可以了,但是論壇就不一樣了,我看一個(gè)帖子,系統(tǒng)需要到數(shù)據(jù)庫(kù)中判斷我是否有讀讀帖子的權(quán)限,如果有,就讀出帖子里面的內(nèi)容,顯示出來(lái)——這里至少訪問(wèn)了2次數(shù)據(jù)庫(kù),如果數(shù)據(jù)庫(kù)的體積有200MB大小,系統(tǒng)很可能就要在這200MB大小的數(shù)據(jù)空間搜索一遍,這需要多少的CPU資源和時(shí)間?如果我是查找一個(gè)關(guān)鍵字,那么時(shí)間更加可觀,因?yàn)榍懊娴乃阉骺梢韵薅ㄔ谝粋€(gè)很小的范圍內(nèi),比如用戶(hù)權(quán)限只查用戶(hù)表,帖子內(nèi)容只查帖子表,而且查到就可以馬上停止查詢(xún),而搜索肯定會(huì)對(duì)所有的數(shù)據(jù)進(jìn)行一次判斷,消耗的時(shí)間是相當(dāng)?shù)拇?
CC就是充分利用了這個(gè)特點(diǎn),模擬多個(gè)用戶(hù)(多少線(xiàn)程就是多少用戶(hù))不停的進(jìn)行訪問(wèn)(訪問(wèn)那些需要大量數(shù)據(jù)操作,就是需要大量CPU時(shí)間的頁(yè)面).
攻擊現(xiàn)象:
服務(wù)器的流量瞬間可達(dá)到幾十M以上,網(wǎng)站打不開(kāi)。重啟iis會(huì)發(fā)現(xiàn)流量馬上就降下來(lái)。查看IIS日志會(huì)發(fā)現(xiàn)很多不同的IP都反復(fù)訪問(wèn)一個(gè)相同的文件。查看C:WINDOWSsystem32LogFilesHTTPERR 會(huì)發(fā)現(xiàn)很多出錯(cuò)的IIS日志,如下:
2007-08-22 06:05:28 61.140.127.206 61905 61.139.129.56 80 HTTP/1.1 GET /list.asp?
ProdId=0961 503 30 ConnLimit pool21
2007-08-22 06:05:28 221.8.137.99 3916 61.139.129.56 80 HTTP/1.1 GET /list.asp?ProdId=0961
503 30 ConnLimit pool21
2007-08-22 06:05:28 220.187.143.183 4059 61.139.129.56 80 HTTP/1.1 GET /list.asp?
ProdId=0961 503 30 ConnLimit pool21
2007-08-22 06:05:28 218.18.42.231 1791 61.139.129.56 80 HTTP/1.1 GET /list.asp?
ProdId=0961 503 30 ConnLimit pool21
2007-08-22 06:05:28 125.109.129.32 3030 61.139.129.56 80 HTTP/1.1 GET /list.asp?
ProdId=0961 503 30 ConnLimit pool21
2007-08-22 06:05:28 58.216.2.232 1224 61.139.129.56 80 HTTP/1.1 GET /list.asp?ProdId=0961
503 30 ConnLimit pool21
...
可以看出很多不同的IP都在訪問(wèn)list.asp這個(gè)文件。以上現(xiàn)象就是CC攻擊的特征。根據(jù)發(fā)動(dòng)CC攻擊所使用的肉機(jī)數(shù)量,小的攻擊可以導(dǎo)致網(wǎng)站很慢或者不穩(wěn)定,大的攻擊可以讓網(wǎng)站一直都無(wú)法打開(kāi)。
因這類(lèi)攻擊,是模擬正常用戶(hù)不斷請(qǐng)求一個(gè)網(wǎng)頁(yè)。所以一般的防火墻很難防御。下面我們根據(jù)實(shí)際工作經(jīng)驗(yàn),講一下如何不用防火墻來(lái)解決這個(gè)攻擊問(wèn)題。
因?yàn)镃C攻擊都是使用的肉機(jī)或代理來(lái)訪問(wèn)我們的服務(wù)器的,它跟synflood攻擊不一樣。synfoold一直是不斷變化的虛假I(mǎi)P,而CC攻擊的IP都是真實(shí)的IP而基本上不變化的,只要我們用安全策略把這些IP全部封掉就可以了。
看過(guò)有網(wǎng)友介紹的方法,不過(guò)是手工一條一條地封,而攻擊IP一般都是數(shù)千個(gè)不同的IP。用手工封IP的辦法太麻煩。下面我們用程序來(lái)實(shí)現(xiàn)自動(dòng)封這些IP!
程序主要是讀取這個(gè)網(wǎng)站的iis日志,分析出其中的IP地址,用安全策略自動(dòng)封閉。VBS代碼如下:
'代碼開(kāi)始
Set fileobj=CreateObject("Scripting.filesystemobject")
logfilepath="E:w3logW3SVC237ex070512old.log" '注意指定受攻擊網(wǎng)站的日志路徑。
'如果是虛擬主機(jī),要查是哪個(gè)網(wǎng)站受攻擊,可以查看:C:WINDOWSsystem32LogFilesHTTPERR ,
根據(jù)錯(cuò)誤日志很容易分析出來(lái)。
writelog "netsh ipsec static add policy name=XBLUE"
writelog "netsh ipsec static add filterlist name=denyip"
overip=""
f_name=logfilepath
'指定日志文件
'程序功能:把logfiles中的IP提取成ipsec需要的過(guò)濾格式,導(dǎo)入ipsec中過(guò)濾。適合某個(gè)網(wǎng)站受大量CC攻擊的情況。
set fileobj88=CreateObject("Scripting.FileSystemObject")
Set MYFILE=fileobj88.OpenTextFile(f_name,1,false)
contentover=MYFILE.ReadAll()
contentip=lcase(contentover)
MYFILE.close
set fileobj88=nothing
on error resume next
myline=split(contentip,chr(13))
for i=0 to ubound(myline)-1
myline2=split(myline(i)," ")
newip=myline2(6)
'指定分離的標(biāo)識(shí)字符串!
if instr(overip,newip)=0 then '去除重復(fù)的IP。
overip=overip&newip
dsafasf=split(newip,".")
if ubound(dsafasf)=3 then
writelog "netsh ipsec static add filter filterlist=denyip srcaddr="&newip&" dstaddr=Me
dstport=80 protocol=TCP"
end if
else
wscript.echo newip &" is exits!"
end if
next
writelog "netsh ipsec static add filteraction name=denyact action=block"
writelog "netsh ipsec static add rule name=kill3389 policy=XBLUE filterlist=denyip
filteraction=denyact"
writelog "netsh ipsec static set policy name=XBLUE assign=y"
Sub writelog(errmes) '導(dǎo)出IPsec的策略文件為一個(gè)bat文件。
ipfilename="denyerrorip.bat"
Set logfile=fileobj.opentextfile(ipfilename,8,true)
logfile.writeline errmes
logfile.close
Set logfile=nothing
End Sub
'代碼結(jié)束
把上述代碼存為一個(gè).vbs文件,設(shè)置好其中日志的路徑。雙擊運(yùn)行即可,運(yùn)行完畢后生成一個(gè)denyerrorip.bat文件,這個(gè)是ipsec所需要的策略文件,直接雙擊運(yùn)行即可。
運(yùn)行完畢即可解決CC攻擊問(wèn)題。
相關(guān)文章
windows server 2016 域環(huán)境搭建的方法步驟(圖文)
本文主要介紹了windows server 2016 域環(huán)境搭建的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06Win2003 服務(wù)器安裝及設(shè)置教程 系統(tǒng)設(shè)置篇
Windows2003服務(wù)器安裝及設(shè)置教程 系統(tǒng)設(shè)置篇,提高性能與安全系數(shù)。2010-04-04服務(wù)器遠(yuǎn)程連接提示由于協(xié)議錯(cuò)誤,客戶(hù)端無(wú)法連接到遠(yuǎn)程計(jì)算機(jī)
由于協(xié)議錯(cuò)誤,客戶(hù)端無(wú)法連接到遠(yuǎn)程計(jì)算機(jī)。請(qǐng)請(qǐng)重新連接到遠(yuǎn)程計(jì)算機(jī)。如果客戶(hù)端依舊無(wú)法連接,請(qǐng)跟網(wǎng)絡(luò)管理員聯(lián)系。2012-04-04win2008 iis7設(shè)置取消執(zhí)行純腳本權(quán)限圖文步驟
win2008的iis7與win2003中的iis6在禁止某個(gè)目錄運(yùn)行腳本木馬的設(shè)置上有所不一樣,具體的設(shè)置方法祥看本文希望可以幫助到你2013-04-04win2003 R2升級(jí)提示另一個(gè)應(yīng)用程序要求重新啟動(dòng)的解決方法
windows2003 R2升級(jí)提示另一個(gè)應(yīng)用程序要求重新啟動(dòng)計(jì)算機(jī),您必須重新啟動(dòng)此計(jì)算機(jī)安裝程序才能運(yùn)行的臨時(shí)解決方法2012-06-06關(guān)于Window Server2008 服務(wù)器上無(wú)法播放音頻文件和FLV視頻文件
這篇文章主要介紹了關(guān)于Window Server2008 服務(wù)器上無(wú)法播放音頻文件和FLV視頻文件的相關(guān)資料,需要的朋友可以參考下2015-09-09IIS7 網(wǎng)站發(fā)布常見(jiàn)報(bào)錯(cuò)問(wèn)題解決方案匯總
這篇文章主要為大家詳細(xì)介紹了IIS7網(wǎng)站發(fā)布常見(jiàn)問(wèn)題及解決方案,感興趣的小伙伴們可以參考一下2016-08-08windows server 2008R2系統(tǒng) IIS7.5配置偽靜態(tài)的方法(urlrewrite)
這篇文章主要介紹了windows server 2008R2系統(tǒng) IIS7.5配置偽靜態(tài)頁(yè)面 ,需要的朋友可以參考下2016-06-06Win2008 R2/2012 網(wǎng)絡(luò)負(fù)載平衡NLB相關(guān)內(nèi)容
這篇文章主要介紹了Windows Server 2008 R2/2012 網(wǎng)絡(luò)負(fù)載平衡NLB相關(guān)內(nèi)容,需要的朋友可以參考下2015-01-01