DoS與DDoS
相信大家都一定不會對這兩個這個詞感到陌生,是的,拒絕服務的攻擊(Denial of Service),以及分散式阻斷服務攻擊(Distributed Denial of Service)。
所謂拒絕服務,是指在特定攻擊發生後, 被攻擊的對象不能及時提供應有的服務,例如本來應提供網站服務(HTTP Service)而
不能提供網站服務,電子郵件伺服器(SMTP,POP3)不能提供收發信件等等的功能,基本上,阻絕服務攻擊通常利用大量的網路資料包,以癱瘓對方之網路及主機,使得正常的使用者無法獲得主機及時的服務。
分散式阻斷服務,簡單的說就是用遠超過目標處理能力的海量資料包消耗可用系統,以及網路頻寬,造成網路服務癱瘓。
也許是和媒體的過分關注有關,DoS攻擊特別是DDoS攻擊,似乎一夜之間就流行了起來,搞的大大小小的網管們,只要伺服器一有故障,就異常興奮的高呼“我被DDoS了!”,臉上彷彿寫著無比的光榮和驕傲。
其實在我們的周圍,真正意義上的DDoS其實並不多,畢竟發動一次DDoS攻擊所需要的資源非常的多,但實實在在的攻擊卻又不停的發生著,這裡面,絕大多數,都是普通的拒絕服務的攻擊。普通層級的攻擊,如何防護,也成為很多網路系統管理員最頭疼的問題,於是到處打聽,結果往往千篇一律,“購買我們的硬體防火牆吧”。
硬體防火牆,包括專用抗拒絕服務的攻擊產品的確是好,但基本價格都十分昂貴,效果雖然好,可從投資以及保護投資的角度來說,未免有些過火。
其實從作業系統角度來說,本身就藏有很多的功能,只是很多是需要我們慢慢的去挖掘的。這裡我給大家簡單介紹一下如何在Win2000環境下修改註冊表,增強系統的抗DoS能力。
細節:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
關閉無效網關的檢查。當伺服器設定了多個網關,這樣在網路不通暢的時候系統會嘗試串連第二個網關,通過關閉它可以最佳化網路。
"EnableDeadGWDetect"=dword:00000000
禁止響應ICMP重新導向報文。此類報文有可能用以攻擊,所以系統應該拒絕接受ICMP重新導向報文。
"EnableICMPRedirects"=dword:00000000
不允許釋放NETBIOS名。當攻擊者發出查詢服務器NETBIOS名的請求時,可以使伺服器禁止響應。
注意系統必須安裝SP2以上
"NoNameReleaseOnDemand"=dword:00000001
發送驗證保持活動資料包。該選項決定TCP間隔多少時間來確定當前串連還處於串連狀態,不設該值,則系統每隔2小時對TCP是否有閑置串連進行檢查,這裡設定時間為5分鐘。
"KeepAliveTime"=dword:000493e0
禁止進行最大包長度路徑檢測。該項值為1時,將自動檢測出可以傳輸的資料包的大小,可以用來提高傳輸效率,如出現故障或安全起見,設項值為0,表示使用固定MTU值576bytes。
"EnablePMTUDiscovery"=dword:00000000
啟動syn攻擊保護。預設項值為0,表示不開啟攻擊保護,項值為1和2表示啟動syn攻擊保護,設成2之後安全層級更高,對何種狀況下認為是攻擊,則需要根據下面的TcpMaxHalfOpen和TcpMaxHalfOpenRetried值設定的條件來觸發啟動了。這裡需要注意的是,NT4.0必須設為1,設為2後在某種特殊資料包下會導致系統重啟。
"SynAttackProtect"=dword:00000002
同時允許開啟的半串連數量。所謂半串連,表示未完整建立的TCP會話,用netstat命令可以看到呈SYN_RCVD狀態的就是。這裡使用微軟建議值,伺服器設為100,進階伺服器設為500。建議可以設稍微小一點。
"TcpMaxHalfOpen"=dword:00000064
判斷是否存在攻擊的觸發點。這裡使用微軟建議值,伺服器為80,進階伺服器為400。
"TcpMaxHalfOpenRetried"=dword:00000050
設定等待SYN-ACK時間。預設項值為3,預設這一過程消耗時間45秒。項值為2,消耗時間為21秒。項值為1,消耗時間為9秒。最低可以設為0,表示不等待,消耗時間為3秒。這個值可以根據遭受攻擊規模修改。微軟網站安全推薦為2。
"TcpMaxConnectResponseRetransmissions"=dword:00000001
設定TCP重傳單個資料區段的次數。預設項值為5,預設這一過程消耗時間240秒。微軟網站安全推薦為3。
"TcpMaxDataRetransmissions"=dword:00000003
設定syn攻擊保護的臨界點。當可用的backlog變為0時,此參數用於控制syn攻擊保護的開啟,微軟網站安全推薦為5。
"TCPMaxPortsExhausted"=dword:00000005
禁止IP源路由。預設項值為1,表示不轉寄源路由包,項值設為0,表示全部轉寄,設定為2,表示丟棄所有接受的源路由包,微軟網站安全推薦為2。
"DisableIPSourceRouting"=dword:0000002
限制處於TIME_WAIT狀態的最長時間。預設為240秒,最低為30秒,最高為300秒。建議設為30秒。
"TcpTimedWaitDelay"=dword:0000001e
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters]
增大NetBT的串連塊增加幅度。預設為3,範圍1-20,數值越大在串連越多時提升效能。每個串連塊消耗87個位元組。
"BacklogIncrement"=dword:00000003
最大NetBT的串連快的數目。範圍1-40000,這裡設定為1000,數值越大在串連越多時允許更多串連。
"MaxConnBackLog"=dword:000003e8
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Afd\Parameters]
配置啟用動態Backlog。對於網路繁忙或者易遭受SYN攻擊的系統,建議設定為1,表示允許動態Backlog。
"EnableDynamicBacklog"=dword:00000001
配置最小動態Backlog。預設項值為0,表示動態Backlog分配的自由串連的最小數目。當自由串連數目低於此數目時,將自動的分配自由串連。預設值為0,對於網路繁忙或者易遭受SYN攻擊的系統,建議設定為20。
"MinimumDynamicBacklog"=dword:00000014
最大動態Backlog。表示定義最大"准"串連的數目,主要看記憶體大小,理論每32M記憶體最大可以增加5000個,這裡設為20000。
"MaximumDynamicBacklog"=dword:00002e20
每次增加的自由串連資料。預設項值為5,表示定義每次增加的自由串連數目。對於網路繁忙或者易遭受SYN攻擊的系統,建議設定為10。
"DynamicBacklogGrowthDelta"=dword:0000000a
以下部分需要根據實際情況手動修改
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
啟用網卡上的安全過濾
"EnableSecurityFilters"=dword:00000001
同時開啟的TCP串連數,這裡可以根據情況進行控制。
"TcpNumConnections"= 該參數控制 TCP 前序表的大小限制。在有大量 RAM 的機器上,增加該設定可以提高 SYN 攻擊期間的響應效能。
"TcpMaxSendFree"= [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\
Interfaces\]
禁止路由發現功能。ICMP路由通告報文可以被用來增加路由表紀錄,可以導致攻擊,所以禁止路由發現。
"PerformRouterDiscovery "=dword:00000000