更新日期: 2004年04月12日
<a href="http://www.microsoft.com/china/technet/security/guidance/secmod109.mspx#E1">目标</a>
<a href="http://www.microsoft.com/china/technet/security/guidance/secmod109.mspx#EGB">适用範圍</a>
<a href="http://www.microsoft.com/china/technet/security/guidance/secmod109.mspx#EMB">如何使用本子產品</a>
<a href="http://www.microsoft.com/china/technet/security/guidance/secmod109.mspx#EYB">摘要</a>
<a href="http://www.microsoft.com/china/technet/security/guidance/secmod109.mspx#E3B">必備知識</a>
<a href="http://www.microsoft.com/china/technet/security/guidance/secmod109.mspx#EPC">抵禦 SYN 攻擊</a>
<a href="http://www.microsoft.com/china/technet/security/guidance/secmod109.mspx#ECEAC">抵禦 ICMP 攻擊</a>
<a href="http://www.microsoft.com/china/technet/security/guidance/secmod109.mspx#ERFAC">抵禦 SNMP 攻擊</a>
<a href="http://www.microsoft.com/china/technet/security/guidance/secmod109.mspx#EAHAC">AFD.SYS 保護</a>
<a href="http://www.microsoft.com/china/technet/security/guidance/secmod109.mspx#EBLAC">其他保護</a>
<a href="http://www.microsoft.com/china/technet/security/guidance/secmod109.mspx#EEAAE">缺陷</a>
<a href="http://www.microsoft.com/china/technet/security/guidance/secmod109.mspx#EHAAE">其他資源</a>
<a></a>
使用本子產品可以實作:
•
強化伺服器的 TCP/IP 堆棧安全
保護伺服器免遭“拒絕服務”和其他基于網絡的攻擊
在檢測到攻擊時啟用 SYN 洪水攻擊保護
設定用于确認是什麼構成攻擊的門檻值
本子產品适用于下列産品和技術:
Microsoft Windows 2000 Server 和 Windows 2000 Advanced Server
預設情況下,本子產品中的一些系統資料庫項和值可能不存在。在這些情況下,請建立這些系統資料庫項、值和數值資料。
注意:這些設定會修改伺服器上 TCP/IP 的工作方式。Web 伺服器的特征将确定觸發拒絕服務對策的最佳門檻值。對于用戶端的連接配接,一些值可能過于嚴格。在将本子產品的建議部署到産品伺服器之前,要對這些建議進行測試。
TCP/IP 堆棧負責處理傳入和傳出的 IP 資料包,并将資料包中的資料路由到要處理它們的應用程式。預設情況下,TCP/IP 天生就是一個不安全的協定。但是,Microsoft® Windows® 2000 版本允許您配置其操作,以抵禦網絡級别的大多數拒絕服務攻擊。
本子產品解釋如何強化 TCP/IP 堆棧的安全,以及如何在 Windows 系統資料庫内配置各種 TCP/IP 參數,以便保護伺服器免遭網絡級别的拒絕服務攻擊,包括 SYS 洪水攻擊、ICMP 攻擊和 SNMP 攻擊。
可以在 Windows 系統資料庫内配置各種 TCP/IP 參數,以便保護伺服器免遭網絡級别的拒絕服務攻擊,包括 SYS 洪水攻擊、ICMP 攻擊和 SNMP 攻擊。可以配置系統資料庫項,以便:
在檢測到攻擊時啟用 SYN 洪水攻擊保護機制。
設定用于确認構成攻擊的門檻值。
本“如何”向管理者介紹必須配置哪些系統資料庫項和系統資料庫值,以抵禦基于網絡的拒絕服務攻擊。
注意 這些設定會修改伺服器上 TCP/IP 的工作方式。Web 伺服器的特征将确定觸發拒絕服務對策的最佳門檻值。對于用戶端的連接配接,一些值可能過于嚴格。在将本文檔的建議部署到産品伺服器之前,應當測試這些建議。
TCP/IP 天生就是一個不安全的協定。但是,Windows 2000 版本允許您配置其操作,以抵禦網絡級别的拒絕服務攻擊。預設情況下,本“如何”中引用的一些系統資料庫項和值可能不存在。在這些情況下,請建立這些系統資料庫項、值和值資料。
SYN 攻擊利用了 TCP/IP 連接配接建立機制中的安全漏洞。要實施 SYN 洪水攻擊,攻擊者會使用程式發送大量 TCP SYN 請求來填滿伺服器上的挂起連接配接隊列。這會禁止其他使用者建立網絡連接配接。
要保護網絡抵禦 SYN 攻擊,請按照下面這些通用步驟操作(這些步驟将在本文檔的稍後部分進行說明):
啟用 SYN 攻擊保護
設定 SYN 保護門檻值
設定其他保護
啟用 SYN 攻擊保護的命名值位于此系統資料庫項的下面:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services。
值名稱: SynAttackProtect
建議值: 2
有效值: 0 – 2
說明:使 TCP 調整 SYN-ACK 的重傳。配置此值後,在遇到 SYN 攻擊時,對連接配接逾時的響應将更快速。在超過 TcpMaxHalfOpen 或 TcpMaxHalfOpenRetried 的值後,将觸發 SYN 攻擊保護。
下列值确定觸發 SYN 保護的門檻值。這一部分中的所有系統資料庫項和值都位于系統資料庫項 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 的下面。這些系統資料庫項和值是:
值名稱: TcpMaxPortsExhausted
建議值: 5
有效值: 0 – 65535
說明:指定觸發 SYN 洪水攻擊保護所必須超過的 TCP 連接配接請求數的門檻值。
值名稱: TcpMaxHalfOpen
建議的數值資料: 500
有效值: 100 – 65535
說明:在啟用 SynAttackProtect 後,該值指定處于 SYN_RCVD 狀态的 TCP 連接配接數的門檻值。在超過 SynAttackProtect 後,将觸發 SYN 洪水攻擊保護。
值名稱: TcpMaxHalfOpenRetried
建議的數值資料: 400
有效值: 80 – 65535
說明:在啟用 SynAttackProtect 後,該值指定處于至少已發送一次重傳的 SYN_RCVD 狀态中的 TCP 連接配接數的門檻值。在超過 SynAttackProtect 後,将觸發 SYN 洪水攻擊保護。
這一部分中的所有系統資料庫項和值都位于系統資料庫項 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 的下面。這些系統資料庫項和值是:
值名稱: TcpMaxConnectResponseRetransmissions
建議的數值資料: 2
有效值: 0 – 255
說明:控制在響應一次 SYN 請求之後、在取消重傳嘗試之前 SYN-ACK 的重傳次數。
值名稱: TcpMaxDataRetransmissions
說明:指定在終止連接配接之前 TCP 重傳一個資料段(不是連接配接請求段)的次數。
值名稱: EnablePMTUDiscovery
建議的數值資料: 0
有效值: 0, 1
說明:将該值設定為 1(預設值)可強制 TCP 查找在通向遠端主機的路徑上的最大傳輸單元或最大資料包大小。攻擊者可能将資料包強制分段,這會使堆棧不堪重負。對于不是來自本地子網的主機的連接配接,将該值指定為 0 可将最大傳輸單元強制設為 576 位元組。
值名稱: KeepAliveTime
建議的數值資料: 300000
有效值: 80 – 4294967295
說明:指定 TCP 嘗試通過發送持續存活的資料包來驗證空閑連接配接是否仍然未被觸動的頻率。
值名稱: NoNameReleaseOnDemand
建議的數值資料: 1
說明:指定計算機在收到名稱釋出請求時是否釋出其 NetBIOS 名稱。
使用表 1 中彙總的值可獲得最大程度的保護。
表 1:建議值
值名稱
值 (REG_DWORD)
SynAttackProtect
2
TcpMaxPortsExhausted
1
TcpMaxHalfOpen
500
TcpMaxHalfOpenRetried
400
TcpMaxConnectResponseRetransmissions
TcpMaxDataRetransmissions
EnablePMTUDiscovery
KeepAliveTime
300000(5 分鐘)
NoNameReleaseOnDemand
這一部分的命名值都位于系統資料庫項 HKLM\System\CurrentControlSet\Services\AFD\Parameters 的下面
值: EnableICMPRedirect
有效值:0(禁用),1(啟用)
說明:通過将此系統資料庫值修改為 0,能夠在收到 ICMP 重定向資料包時禁止建立高成本的主機路由。
使用表 2 中彙總的值可以獲得最大程度的保護:
表 2:建議值
EnableICMPRedirect
這一部分的命名值位于系統資料庫項 HKLM\System\CurrentControlSet\Services\Tcpip\Parameters 的下面。
值: EnableDeadGWDetect
說明:禁止攻擊者強制切換到備用網關
使用表 3 中彙總的值可以獲得最大程度的保護:
表 3:建議值
EnableDeadGWDetect
下面的系統資料庫項指定核心模式驅動程式 Afd.sys 的參數。Afd.sys 用于支援 Windows Sockets 應用程式。這一部分的所有系統資料庫項和值都位于系統資料庫項 HKLM\System\CurrentControlSet\Services\AFD\Parameters 的下面。這些系統資料庫項和值是:
值 EnableDynamicBacklog
值名稱: MinimumDynamicBacklog
建議的數值資料: 20
有效值: 0 – 4294967295
說明:指定在偵聽的終結點上所允許的最小空閑連接配接數。如果空閑連接配接的數目低于該值,線程将被排隊,以建立更多的空閑連接配接
值名稱:MaximumDynamicBacklog
建議的數值資料: 20000
說明:指定空閑連接配接以及處于 SYN_RCVD 狀态的連接配接的最大總數。
值名稱: DynamicBacklogGrowthDelta
建議的數值資料: 10
預設情況下是否出現:否
說明:指定在需要增加連接配接時将要建立的空閑連接配接數。
使用表 4 中彙總的值可以獲得最大程度的保護。
表 4:建議值
EnableDynamicBacklog
MinimumDynamicBacklog
20
MaximumDynamicBacklog
20000
DynamicBacklogGrowthDelta
10
這一部分的所有系統資料庫項和值都位于系統資料庫項 HKLM\System\CurrentControlSet\Services\Tcpip\Parameters 的下面。
網絡位址轉換 (NAT) 用于将網絡與傳入連接配接屏蔽開來。攻擊者可能規避此屏蔽,以便使用 IP 源路由來确定網絡拓撲。
值: DisableIPSourceRouting
有效值:0(轉發所有資料包),1(不轉發源路由資料包),2(丢棄所有傳入的源路由資料包)。
說明:禁用 IP 源路由,後者允許發送者确認資料報在網絡中應采用的路由。
處理資料包片段可以是高成本的。雖然拒絕服務很少來自外圍網絡内,但此設定能防止處理資料包片段。
值: EnableFragmentChecking
說明:禁止 IP 堆棧接受資料包片段。
多點傳播資料包可能被多台主機響應,進而導緻響應淹沒網絡。
值: EnableMulticastForwarding
有效範圍:0 (false),1 (true)
說明:路由服務使用此參數來控制是否轉發 IP 多點傳播。此參數由路由和遠端通路服務建立。
多主機伺服器切勿在它所連接配接的網絡之間轉發資料包。明顯的例外是防火牆。
值: IPEnableRouter
說明:将此參數設定為 1 (true) 會使系統在它所連接配接的網絡之間路由 IP 資料包。
可以使用 ICMP 資料包請求主機的子網路遮罩。隻洩漏此資訊是無害的;但是,可以利用多台主機的響應來了解内部網絡的情況。
值: EnableAddrMaskReply
說明:此參數控制計算機是否響應 ICMP 位址屏蔽請求。
使用表 5 中彙總的值可以獲得最大程度的保護。
表 5:建議值
DisableIPSourceRouting
EnableFragmentChecking
EnableMulticastForwarding
IPEnableRouter
EnableAddrMaskReply
在測試這些值的變化時,請參照在産品中所期望的網絡流量進行測試。這些設定會修改被認為正常并偏離了測試預設值的項目的門檻值。一些門檻值可能由于範圍太小而無法在用戶端的連接配接速度劇烈變化時可靠地支援用戶端。