目標
使用本模塊可以實現:
•強化服務器的 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 攻擊
SYN 攻擊利用了 TCP/IP 連接建立機制中的安全漏洞。要實施 SYN 洪水攻擊,攻擊者會使用程序發送大量 TCP SYN 請求來填滿服務器上的掛起連接隊列。這會禁止其他用戶建立網絡連接。
要保護網絡抵御 SYN 攻擊,請按照下面這些通用步驟操作(這些步驟將在本文檔的稍後部分進行說明):
•啟用 SYN 攻擊保護
•設置 SYN 保護阈值
•設置其他保護
啟用 SYN 攻擊保護
啟用 SYN 攻擊保護的命名值位於此注冊表項的下面:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices。
值名稱: SynAttackProtect
建議值: 2
有效值: 0 – 2
說明:使 TCP 調整 SYN-ACK 的重傳。配置此值後,在遇到 SYN 攻擊時,對連接超時的響應將更快速。在超過 TcpMaxHalfOpen 或 TcpMaxHalfOpenRetried 的值後,將觸發 SYN 攻擊保護。
設置 SYN 保護阈值
下列值確定觸發 SYN 保護的阈值。這一部分中的所有注冊表項和值都位於注冊表項 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices 的下面。這些注冊表項和值是:
•值名稱: 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_MACHINESYSTEMCurrentControlSetServices 的下面。這些注冊表項和值是:
•值名稱: 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:建議值
值名稱 值 (REG_DWORD)SynAttackProtect
2
TcpMaxPortsExhausted
1
TcpMaxHalfOpen