如何加固 TCP 堆棧

Microsoft Corporationapi

目標安全

使用本單元以:服務器

加固服務器的 TCP/IP 堆棧網絡

保護服務器免受拒絕服務和其餘基於網絡的攻擊tcp

在檢測到攻擊時啓用 SYN flood 保護測試

設置用於肯定攻擊構成的閾值大數據

適用於url

本單元適用於下列產品和技術:spa

Microsoft® Windows® 2000 Server 和 Windows 2000 Advanced Server 操做系統操作系統

如何使用本單元

本單元中所引用的項和值可能並不是存在於默認狀況下。如果如此,請建立所需的項、值和數值數據。

有關注冊表用於 Windows 2000 控件的 TCP/IP 網絡設置的詳細信息,請參閱如下站點的白皮書「Windows 2000 TCP/IP Implementation Details」:http://www.microsoft.com/technet/treeview/default.asp?url=/technet/itsolutions/network/deploy/depovg/tcpip2k.asp

 這些設置會修改服務器上 TCP/IP 的工做方式。Web 服務器的特性將肯定觸發拒絕服務對策的最佳閾值。某些值或許對於客戶端的鏈接而言限制性太強。在將本單元所建議內容部署至生產服務器以前,請先對這些建議進行測試。

*
本頁內容
摘要 摘要
須知 須知
預防 SYN 攻擊 預防 SYN 攻擊
預防 ICMP 攻擊 預防 ICMP 攻擊
預防 SNMP 攻擊 預防 SNMP 攻擊
AFD.SYS 保護 AFD.SYS 保護
其餘保護 其餘保護
缺陷 缺陷
其餘資源 其餘資源

摘要

TCP/IP 堆棧負責處理傳入和傳出 IP 數據包,並將數據包的數據路由到要處理這些數據的應用程序。默認狀況下,TCP/IP 位於本質上並不安全的協議中。可是,MicrosoftWindows2000 實現容許配置其操做以反擊大部分網絡級的拒絕服務攻擊。

本單元闡述瞭如何在 Windows 註冊表中加固 TCP/IP 堆棧並配置多種 TCP/IP 參數以預防網絡級的拒絕服務攻擊,其中包括 SYS flood 攻擊、ICMP 攻擊和 SNMP 攻擊。

須知

可在 Windows 註冊表中配置多種 TCP/IP 參數以預防網絡級拒絕服務攻擊,其中包括 SYN flood 攻擊、ICMP 攻擊和 SNMP 攻擊。可配置註冊表項以:

在檢測到攻擊時啓用 SYN flood 保護。

設置用於肯定攻擊構成的閾值。

本「如何……」文檔向管理員說明了必須配置哪些註冊表項和註冊表值以預防基於網絡的拒絕服務攻擊。

 這些設置會修改服務器上 TCP/IP 的工做方式。Web 服務器的特性將肯定觸發拒絕服務對策的最佳閾值。某些值或許對於客戶端鏈接而言限制性太強。在將本文檔所建議的內容部署至生產服務器以前,請先對這些建議進行測試。

TCP/IP 是一個本質上並不安全的協議。可是,Windows 2000 實現容許配置其操做以反擊網絡拒絕服務攻擊。本「如何……」文檔中引用的某些項和值或許並不存在於默認狀況下。如果如此,請建立所需的項、值和數值數據。

有關注冊表用於 Windows 2000 控件的 TCP/IP 網絡設置的詳細信息,請參閱如下站點的白皮書「Windows 2000 TCP/IP Implementation Details」:http://www.microsoft.com/technet/treeview/default.asp?url=/technet/itsolutions/network/deploy/depovg/tcpip2k.asp

預防 SYN 攻擊

SYN 攻擊利用 TCP/IP 鏈接創建機制中的漏洞。爲了進行 SYN flood 攻擊,攻擊者會使用程序來發送大量的 TCP SYN 請求來填充服務器上的掛起鏈接隊列。這會阻止其餘用戶創建網絡鏈接。

要保護網絡免受 SYN 攻擊,請遵循如下步驟,本文稍後會對這些步驟進行解釋:

啓用 SYN 攻擊保護

設置 SYN 保護閾值

設置附加保護

啓用 SYN 攻擊保護

啓用 SYN 攻擊保護的命名值位於註冊表項 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 之下。

值名稱SynAttackProtect

推薦值:2

有效值:0–2

說明:使 TCP 來調整 SYN-ACKS 的重傳。配置該值後,鏈接響應在 SYN 攻擊事件中會更快地超時。在超過 TcpMaxHalfOpen 或 TcpMaxHalfOpenRetried 值時,觸發 SYN 攻擊。

設置 SYN 保護閾值

如下值肯定觸發 SYN 保護的閾值。本部分中的全部項和值均位於註冊表項 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 之下。這些項和值是:

值名稱TcpMaxPortsExhausted

推薦值:5

有效值:0–65535

說明:指定必須在觸發 SYN flood 保護以前超過的 TCP 鏈接請求閾值。

值名稱TcpMaxHalfOpen

推薦值數據:500

有效值:100–65535

說明:啓用 SynAttackProtect 後,該值指定 SYN_RCVD 狀態中的 TCP 鏈接閾值。超過 SynAttackProtect 時,觸發 SYN flood 保護。

值名稱:TcpMaxHalfOpenRetried

推薦值數據:400

有效值: 80–65535

說明:啓用 SynAttackProtect 後,該值指定至少發送了一次重傳的 SYN_RCVD 狀態中的 TCP 鏈接閾值。超過 SynAttackProtect 時,觸發 SYN flood 保護。

設置附加保護

本部分中的全部項和值均位於註冊表項 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 字節的 MTU 不在本地子網上。

值名稱:KeepAliveTime

推薦值數據:300000

有效值:80–4294967295

說明:指定 TCP 隔多久會經過發送保持活動的數據包來嘗試驗證一次閒置鏈接仍然維持原樣。

值名稱:NoNameReleaseOnDemand

推薦值數據:1

有效值:0, 1

說明:指定計算機在收到名稱釋放請求時不釋放其 NetBIOS 名稱。

使用表 1 歸納的值來進行最大限度地保護。

表 1:推薦值
值名稱 值 (REG_DWORD)

SynAttackProtect

2

TcpMaxPortsExhausted

1

TcpMaxHalfOpen

500

TcpMaxHalfOpenRetried

400

TcpMaxConnectResponseRetransmissions

2

TcpMaxDataRetransmissions

2

EnablePMTUDiscovery

KeepAliveTime

300000 (5 minutes)

NoNameReleaseOnDemand

1

預防 ICMP 攻擊

本部分中的命名值位於註冊表項 HKLM\System\CurrentControlSet\Services\AFD\Parameters 之下

值:EnableICMPRedirect

推薦值數據:0

有效值:0(禁用),1(啓用)

說明:將該註冊表值修改成 0,可在收到 ICMP 重定向數據包時阻止建立高成本的主路由。

使用表 2 中歸納的值進行最大限度的保護。

表 2:推薦值
值名稱 值 (REG_DWORD)

EnableICMPRedirect

預防 SNMP 攻擊

本部分中的命名值位於註冊表項 HKLM\System\CurrentControlSet\Services\Tcpip\Parameters 之下。

值:EnableDeadGWDetect

推薦值數據: 0

有效值:0(禁用),1,(啓用)

說明:防止攻擊者強制切換至二級網關

使用表 3 歸納的值進行最大限度的保護。

表 3:推薦值
值名稱 值 (REG_DWORD)

EnableDeadGWDetect

AFD.SYS 保護

如下項指定內核模式驅動程序 Afd.sys 的參數,Afd.sys 用於支持 Windows 套接字應用程序。本部分中的全部項和值均位於註冊表項 HKLM\System\CurrentControlSet\Services\AFD\Parameters 之下。這些項和值是:

值:EnableDynamicBacklog

推薦值數據:1

有效值:0(禁用),1(啓用)

說明:指定 AFD.SYS 功能以有效地承受大量 SYN_RCVD 鏈接。有關詳細信息,請參閱位於 http://support.microsoft.com/default.aspx?scid=kb;en-us;142641的「Internet Server Unavailable Because of Malicious SYN Attacks」。

值名稱:MinimumDynamicBacklog

推薦值數據:20

有效值:0–4294967295

說明:指定監聽終結點上容許的可用鏈接最少數量。若是可用鏈接點的數量低於此值,則會將線程排隊以建立額外的可用鏈接。

值名稱:MaximumDynamicBacklog

推薦值數據:20000

有效值: 0–4294967295

說明:指定可用鏈接與 SYN_RCVD 狀態中的鏈接之和的最大總量。

值名稱:DynamicBacklogGrowthDelta

推薦值數據:10

有效值:0–4294967295

默認顯示:無

說明:指定在須要附加鏈接時要建立的可用鏈接的數量。

使用表 4 歸納的值進行最大限度的保護。

表 4:推薦值
值名稱 值 (REG_DWORD)

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 地址掩碼請求。

使用表 4 歸納的值進行最大限度地保護。

表 5:推薦值
值名稱 值 (REG_DWORD)

DisableIPSourceRouting

1

EnableFragmentChecking

1

EnableMulticastForwarding

IPEnableRouter

EnableAddrMaskReply

缺陷

測試這些值的更改時,請根據您指望在生產中使用的網絡捲進行測試。這些設置會修改被認爲是標準的而且源自測試默認值的閾值。若是客戶端的鏈接速度差別很大,則某些閾值範圍可能會過小以致於不能可靠地支持客戶端。

其餘資源

有關其餘與 TCP/IP 相關的閱讀資料,請參考如下資源:

有關如何加固 TCP/IP 堆棧的詳細信息,請參閱 Microsoft 知識庫文章,315669「How To:Harden the TCP/IP Stack Against Denial of Service Attacks in Windows2000

有關 Windows 2000 TCP/IP 實現的詳細信息,請參閱 Davies、Joseph 以及 Lee、Thomas 的 Windows 2000 TCP/IP Protocols and Services,Microsoft Press,2000。

有關 Windows 2000 TCP/IP 實現的詳細信息,請參閱 TechNet Web 站點上的「Microsoft Windows 2000 TCP/IP Implementation Details」:http://www.microsoft.com/technet/treeview/default.asp?url=/technet/itsolutions/network/deploy/depovg/tcpip2k.asp

相關文章
相關標籤/搜索