從正確看待DoS與DDoS說(shuō)起
相信大家都一定不會(huì)對(duì)這兩個(gè)這個(gè)詞感到陌生,是的,拒絕服務(wù)攻擊(Denial of Service),以及分布式拒絕服務(wù)攻擊(Distributed Denial of Service)。
所謂拒絕服務(wù),是指在特定攻擊發(fā)生后, 被攻擊的對(duì)象不能及時(shí)提供應(yīng)有的服務(wù),例如本來(lái)應(yīng)提供網(wǎng)站服務(wù)(HTTP Service)而不能提供網(wǎng)站服務(wù),電子郵件服務(wù)器(SMTP,POP3)不能提供收發(fā)信件等等的功能,基本上,阻絕服務(wù)攻擊通常利用大量的網(wǎng)絡(luò)數(shù)據(jù)包,以癱瘓對(duì)方之網(wǎng)絡(luò)及主機(jī),使得正常的使用者無(wú)法獲得主機(jī)及時(shí)的服務(wù)。
分布式拒絕服務(wù),簡(jiǎn)單的說(shuō)就是用遠(yuǎn)超過(guò)目標(biāo)處理能力的海量數(shù)據(jù)包消耗可用系統(tǒng),以及網(wǎng)絡(luò)帶寬,造成網(wǎng)絡(luò)服務(wù)癱瘓。
也許是和媒體的過(guò)分關(guān)注有關(guān),DoS攻擊特別是DDoS攻擊,似乎一夜之間就流行了起來(lái),搞的大大小小的網(wǎng)管們,只要服務(wù)器一有故障,就異常興奮的高呼“我被DDoS了!”,臉上仿佛寫著無(wú)比的光榮和驕傲。
其實(shí)在我們的周圍,真正意義上的DDoS其實(shí)并不多,畢竟發(fā)動(dòng)一次DDoS攻擊所需要的資源非常的多,但實(shí)實(shí)在在的攻擊卻又不停的發(fā)生著,這里面,絕大多數(shù),都是普通的拒絕服務(wù)攻擊。普通級(jí)別的攻擊,如何防護(hù),也成為很多網(wǎng)絡(luò)管理員最頭疼的問(wèn)題,于是到處打聽,結(jié)果往往千篇一律,“購(gòu)買我們的硬件防火墻吧”。硬件防火墻,包括專用抗拒絕服務(wù)攻擊產(chǎn)品的確是好,但基本價(jià)格都十分昂貴,效果雖然好,可從投資以及保護(hù)投資的角度來(lái)說(shuō),未免有些過(guò)火。
其實(shí)從操作系統(tǒng)角度來(lái)說(shuō),本身就藏有很多的功能,只是很多是需要我們慢慢的去挖掘的。這里我給大家簡(jiǎn)單介紹一下如何在Win2000環(huán)境下修改注冊(cè)表,增強(qiáng)系統(tǒng)的抗DoS能力。
細(xì)節(jié):
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters]'關(guān)閉無(wú)效網(wǎng)關(guān)的檢查。當(dāng)服務(wù)器設(shè)置了多個(gè)網(wǎng)關(guān),這樣在網(wǎng)絡(luò)不通暢的時(shí)候系統(tǒng)會(huì)嘗試連接'第二個(gè)網(wǎng)關(guān),通過(guò)關(guān)閉它可以優(yōu)化網(wǎng)絡(luò)。
"EnableDeadGWDetect"=dword:00000000'禁止響應(yīng)ICMP重定向報(bào)文。此類報(bào)文有可能用以攻擊,所以系統(tǒng)應(yīng)該拒絕接受ICMP重定向報(bào)文。"EnableICMPRedirects"=dword:00000000'不允許釋放NETBIOS名。當(dāng)攻擊者發(fā)出查詢服務(wù)器NETBIOS名的請(qǐng)求時(shí),可以使服務(wù)器禁止響應(yīng)。'注意系統(tǒng)必須安裝SP2以上"NoNameReleaseOnDemand"=dword:00000001'發(fā)送驗(yàn)證保持活動(dòng)數(shù)據(jù)包。該選項(xiàng)決定TCP間隔多少時(shí)間來(lái)確定當(dāng)前連接還處于連接狀態(tài),'不設(shè)該值,則系統(tǒng)每隔2小時(shí)對(duì)TCP是否有閑置連接進(jìn)行檢查,這里設(shè)置時(shí)間為5分鐘。"KeepAliveTime"=dword:000493e0'禁止進(jìn)行最大包長(zhǎng)度路徑檢測(cè)。該項(xiàng)值為1時(shí),將自動(dòng)檢測(cè)出可以傳輸?shù)臄?shù)據(jù)包的大小,'可以用來(lái)提高傳輸效率,如出現(xiàn)故障或安全起見,設(shè)項(xiàng)值為0,表示使用固定MTU值576bytes。"EnablePMTUDiscovery"=dword:00000000'啟動(dòng)syn攻擊保護(hù)。缺省項(xiàng)值為0,表示不開啟攻擊保護(hù),項(xiàng)值為1和2表示啟動(dòng)syn攻擊保護(hù),設(shè)成2之后'安全級(jí)別更高,對(duì)何種狀況下認(rèn)為是攻擊,則需要根據(jù)下面的TcpMaxHalfOpen和TcpMaxHalfOpenRetried值'設(shè)定的條件來(lái)觸發(fā)啟動(dòng)了。這里需要注意的是,NT4.0必須設(shè)為1,設(shè)為2后在某種特殊數(shù)據(jù)包下會(huì)導(dǎo)致系統(tǒng)重啟。"SynAttackProtect"=dword:00000002'同時(shí)允許打開的半連接數(shù)量。所謂半連接,表示未完整建立的TCP會(huì)話,用netstat命令可以看到呈SYN_RCVD狀態(tài)'的就是。這里使用微軟建議值,服務(wù)器設(shè)為100,高級(jí)服務(wù)器設(shè)為500。建議可以設(shè)稍微小一點(diǎn)。"TcpMaxHalfOpen"=dword:00000064'判斷是否存在攻擊的觸發(fā)點(diǎn)。這里使用微軟建議值,服務(wù)器為80,高級(jí)服務(wù)器為400。"TcpMaxHalfOpenRetried"=dword:00000050'設(shè)置等待SYN-ACK時(shí)間。缺省項(xiàng)值為3,缺省這一過(guò)程消耗時(shí)間45秒。項(xiàng)值為2,消耗時(shí)間為21秒。'項(xiàng)值為1,消耗時(shí)間為9秒。最低可以設(shè)為0,表示不等待,消耗時(shí)間為3秒。這個(gè)值可以根據(jù)遭受攻擊規(guī)模修改。'微軟站點(diǎn)安全推薦為2。
"TcpMaxConnectResponseRetransmissions"=dword:00000001'設(shè)置TCP重傳單個(gè)數(shù)據(jù)段的次數(shù)。缺省項(xiàng)值為5,缺省這一過(guò)程消耗時(shí)間240秒。微軟站點(diǎn)安全推薦為3。
"TcpMaxDataRetransmissions"=dword:00000003'設(shè)置syn攻擊保護(hù)的臨界點(diǎn)。當(dāng)可用的backlog變?yōu)?時(shí),此參數(shù)用于控制syn攻擊保護(hù)的開啟,微軟站點(diǎn)安全推薦為5。
"TCPMaxPortsExhausted"=dword:00000005'禁止IP源路由。缺省項(xiàng)值為1,表示不轉(zhuǎn)發(fā)源路由包,項(xiàng)值設(shè)為0,表示全部轉(zhuǎn)發(fā),設(shè)置為2,表示丟棄所有接受的'源路由包,微軟站點(diǎn)安全推薦為2。
"DisableIPSourceRouting"=dword:0000002'限制處于TIME_WAIT狀態(tài)的最長(zhǎng)時(shí)間。缺省為240秒,最低為30秒,最高為300秒。建議設(shè)為30秒。
"TcpTimedWaitDelay"=dword:0000001e[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNetBTParameters]'增大NetBT的連接塊增加幅度。缺省為3,范圍1-20,數(shù)值越大在連接越多時(shí)提升性能。每個(gè)連接塊消耗87個(gè)字節(jié)。
"BacklogIncrement"=dword:00000003'最大NetBT的連接快的數(shù)目。范圍1-40000,這里設(shè)置為1000,數(shù)值越大在連接越多時(shí)允許更多連接。
"MaxConnBackLog"=dword:000003e8
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesAfdParameters]'配置激活動(dòng)態(tài)Backlog。對(duì)于網(wǎng)絡(luò)繁忙或者易遭受SYN攻擊的系統(tǒng),建議設(shè)置為1,表示允許動(dòng)態(tài)Backlog。
"EnableDynamicBacklog"=dword:00000001'配置最小動(dòng)態(tài)Backlog。默認(rèn)項(xiàng)值為0,表示動(dòng)態(tài)Backlog分配的自由連接的最小數(shù)目。當(dāng)自由連接數(shù)目'低于此數(shù)目時(shí),將自動(dòng)的分配自由連接。默認(rèn)值為0,對(duì)于網(wǎng)絡(luò)繁忙或者易遭受SYN攻擊的系統(tǒng),建議設(shè)置為20。
"MinimumDynamicBacklog"=dword:00000014'最大動(dòng)態(tài)Backlog。表示定義最大"準(zhǔn)"連接的數(shù)目,主要看內(nèi)存大小,理論每32M內(nèi)存最大可以'增加5000個(gè),這里設(shè)為20000。
"MaximumDynamicBacklog"=dword:00002e20'每次增加的自由連接數(shù)據(jù)。默認(rèn)項(xiàng)值為5,表示定義每次增加的自由連接數(shù)目。對(duì)于網(wǎng)絡(luò)繁忙或者易遭受SYN攻擊'的系統(tǒng),建議設(shè)置為10。
"DynamicBacklogGrowthDelta"=dword:0000000a
以下部分需要根據(jù)實(shí)際情況手動(dòng)修改
'[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters]
'啟用網(wǎng)卡上的安全過(guò)濾
'"EnableSecurityFilters"=dword:00000001
'
'同時(shí)打開的TCP連接數(shù),這里可以根據(jù)情況進(jìn)行控制。
'"TcpNumConnections"=
'
'該參數(shù)控制 TCP 報(bào)頭表的大小限制。在有大量 RAM 的機(jī)器上,增加該設(shè)置可以提高 SYN 攻擊期間的響應(yīng)性能。
'"TcpMaxSendFree"=
'
'[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersInterfaces{自己的網(wǎng)卡接口}]
'禁止路由發(fā)現(xiàn)功能。ICMP路由通告報(bào)文可以被用來(lái)增加路由表紀(jì)錄,可以導(dǎo)致攻擊,所以禁止路由發(fā)現(xiàn)。
"PerformRouterDiscovery "=dword:00000000
寫到這里,我自己都有一點(diǎn)暈乎乎的了。呵呵。
從提高系統(tǒng)安全級(jí)別對(duì)抗DoS的角度來(lái)說(shuō),上面所做的修改注冊(cè)表還僅僅是其中一個(gè)很小的部分。
我還將繼續(xù)整理一些資料和大家分享。當(dāng)然如果大家發(fā)現(xiàn)文章里面存在什么錯(cuò)誤或者有更好的一些配置方法也一定要告訴我哦。