抵御 SYN 攻擊 SYN 攻擊利用了 TCP/IP 連接建立機制中的安全漏洞。要實施 SYN 洪水攻擊,攻擊者會使用程序發送大量 TCP SYN 請求來填滿服務器上的掛起連接隊列。這會禁止其他用戶建立網絡連接。 要保護網絡抵御 SYN 攻擊,請按照下面這些通用步驟操作(這些步驟將在本文檔的稍后部分進行說明): | ? | 啟用 SYN 攻擊保護 | | ? | 設置 SYN 保護閾值 | | ? | 設置其他保護 | 啟用 SYN 攻擊保護 啟用 SYN 攻擊保護的命名值位于此注冊表項的下面:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services。 值名稱:?SynAttackProtect 建議值: 2 有效值: 0 – 2 說明:使 TCP 調整 SYN-ACK 的重傳。配置此值后,在遇到 SYN 攻擊時,對連接超時的響應將更快速。在超過?TcpMaxHalfOpen?或TcpMaxHalfOpenRetried?的值后,將觸發 SYN 攻擊保護。 設置 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 建議的數值數據: 2 有效值: 0 – 65535 說明:指定在終止連接之前 TCP 重傳一個數據段(不是連接請求段)的次數。 | | ? | 值名稱:?EnablePMTUDiscovery 建議的數值數據: 0 有效值: 0, 1 說明:將該值設置為 1(默認值)可強制 TCP 查找在通向遠程主機的路徑上的最大傳輸單元或最大數據包大小。攻擊者可能將數據包強制分段,這會使堆棧不堪重負。對于不是來自本地子網的主機的連接,將該值指定為 0 可將最大傳輸單元強制設為 576 字節。 | | ? | 值名稱:?KeepAliveTime 建議的數值數據: 300000 有效值: 80 – 4294967295 說明:指定 TCP 嘗試通過發送持續存活的數據包來驗證空閑連接是否仍然未被觸動的頻率。 | | ? | 值名稱:?NoNameReleaseOnDemand 建議的數值數據: 1 有效值: 0, 1 說明:指定計算機在收到名稱發布請求時是否發布其 NetBIOS 名稱。 | 使用表 1 中匯總的值可獲得最大程度的保護。 表 1:建議值 | SynAttackProtect | 2 | | TcpMaxPortsExhausted | 1 | | TcpMaxHalfOpen | 500 | | TcpMaxHalfOpenRetried | 400 | | TcpMaxConnectResponseRetransmissions | 2 | | TcpMaxDataRetransmissions | 2 | | EnablePMTUDiscovery | 0 | | KeepAliveTime | 300000(5 分鐘) | | NoNameReleaseOnDemand | 1 | 返回頁首 抵御 ICMP 攻擊 這一部分的命名值都位于注冊表項?HKLM\System\CurrentControlSet\Services\AFD\Parameters?的下面 值:?EnableICMPRedirect 建議的數值數據: 0 有效值:0(禁用),1(啟用) 說明:通過將此注冊表值修改為 0,能夠在收到 ICMP 重定向數據包時禁止創建高成本的主機路由。 使用表 2 中匯總的值可以獲得最大程度的保護: 表 2:建議值 返回頁首 抵御 SNMP 攻擊 這一部分的命名值位于注冊表項?HKLM\System\CurrentControlSet\Services\Tcpip\Parameters?的下面。 值:?EnableDeadGWDetect 建議的數值數據: 0 有效值:0(禁用),1(啟用) 說明:禁止攻擊者強制切換到備用網關 使用表 3 中匯總的值可以獲得最大程度的保護: 表 3:建議值 返回頁首 AFD.SYS 保護 下面的注冊表項指定內核模式驅動程序 Afd.sys 的參數。Afd.sys 用于支持 Windows Sockets 應用程序。這一部分的所有注冊表項和值都位于注冊表項?HKLM\System\CurrentControlSet\Services\AFD\Parameters?的下面。這些注冊表項和值是: | ? | 值 EnableDynamicBacklog 建議的數值數據: 1 有效值:0(禁用),1(啟用) 說明:指定 AFD.SYS 功能,以有效處理大量的 SYN_RCVD 連接。有關詳細信息,請參閱“Internet Server Unavailable Because of Malicious SYN Attacks”,網址為?http://support.microsoft.com/default.aspx?scid=kb;en-us;142641(英文)。 | | ? | 值名稱:?MinimumDynamicBacklog 建議的數值數據: 20 有效值: 0 – 4294967295 說明:指定在偵聽的終結點上所允許的最小空閑連接數。如果空閑連接的數目低于該值,線程將被排隊,以創建更多的空閑連接 | | ? | 值名稱:MaximumDynamicBacklog 建議的數值數據: 20000 有效值: 0 – 4294967295 說明:指定空閑連接以及處于 SYN_RCVD 狀態的連接的最大總數。 | | ? | 值名稱:?DynamicBacklogGrowthDelta 建議的數值數據: 10 有效值: 0 – 4294967295 默認情況下是否出現:否 說明:指定在需要增加連接時將要創建的空閑連接數。 | 使用表 4 中匯總的值可以獲得最大程度的保護。 表 4:建議值 | EnableDynamicBacklog | 1 | | MinimumDynamicBacklog | 20 | | MaximumDynamicBacklog | 20000 | | DynamicBacklogGrowthDelta | 10 | 返回頁首 其他保護 這一部分的所有注冊表項和值都位于注冊表項?HKLM\System\CurrentControlSet\Services\Tcpip\Parameters?的下面。 保護屏蔽的網絡細節 網絡地址轉換 (NAT) 用于將網絡與傳入連接屏蔽開來。攻擊者可能規避此屏蔽,以便使用 IP 源路由來確定網絡拓撲。 值:?DisableIPSourceRouting 建議的數值數據: 1 有效值:0(轉發所有數據包),1(不轉發源路由數據包),2(丟棄所有傳入的源路由數據包)。 說明:禁用 IP 源路由,后者允許發送者確認數據報在網絡中應采用的路由。 避免接受數據包片段 處理數據包片段可以是高成本的。雖然拒絕服務很少來自外圍網絡內,但此設置能防止處理數據包片段。 值:?EnableFragmentChecking 建議的數值數據: 1 有效值:0(禁用),1(啟用) 說明:禁止 IP 堆棧接受數據包片段。 切勿轉發去往多臺主機的數據包 多播數據包可能被多臺主機響應,從而導致響應淹沒網絡。 值:?EnableMulticastForwarding? 建議的數值數據: 0 有效范圍:0 (false),1 (true) 說明:路由服務使用此參數來控制是否轉發 IP 多播。此參數由路由和遠程訪問服務創建。 只有防火墻可以在網絡間轉發數據包 多主機服務器切勿在它所連接的網絡之間轉發數據包。明顯的例外是防火墻。 值:?IPEnableRouter 建議的數值數據: 0 有效范圍:0 (false),1 (true) 說明:將此參數設置為 1 (true) 會使系統在它所連接的網絡之間路由 IP 數據包。 屏蔽網絡拓撲結構細節 可以使用 ICMP 數據包請求主機的子網掩碼。只泄漏此信息是無害的;但是,可以利用多臺主機的響應來了解內部網絡的情況。 值:?EnableAddrMaskReply 建議的數值數據: 0 有效范圍:0 (false),1 (true) 說明:此參數控制計算機是否響應 ICMP 地址屏蔽請求。 使用表 5 中匯總的值可以獲得最大程度的保護。 表 5:建議值 | DisableIPSourceRouting | 1 | | EnableFragmentChecking | 1 | | EnableMulticastForwarding | 0 | | IPEnableRouter | 0 | | EnableAddrMaskReply | 0 | |