如何強(qiáng)化TCP/IP 堆棧安全教程
目標(biāo)使用本模塊可以實(shí)現(xiàn):•強(qiáng)化服務(wù)器的TCP/IP堆棧安全•保護(hù)服務(wù)器免遭&ldq...
目標(biāo)
使用本模塊可以實(shí)現(xiàn):
| • |              強(qiáng)化服務(wù)器的 TCP/IP 堆棧安全  |         
| • |              保護(hù)服務(wù)器免遭“拒絕服務(wù)”和其他基于網(wǎng)絡(luò)的攻擊  |         
| • |              在檢測(cè)到攻擊時(shí)啟用 SYN 洪水攻擊保護(hù)  |         
| • |              設(shè)置用于確認(rèn)是什么構(gòu)成攻擊的閾值  |         
適用范圍
本模塊適用于下列產(chǎn)品和技術(shù):
| • |              Microsoft Windows 2000 Server 和 Windows 2000 Advanced Server  |         
如何使用本模塊
默認(rèn)情況下,本模塊中的一些注冊(cè)表項(xiàng)和值可能不存在。在這些情況下,請(qǐng)創(chuàng)建這些注冊(cè)表項(xiàng)、值和數(shù)值數(shù)據(jù)。
注意:這些設(shè)置會(huì)修改服務(wù)器上 TCP/IP 的工作方式。Web 服務(wù)器的特征將確定觸發(fā)拒絕服務(wù)對(duì)策的最佳閾值。對(duì)于客戶端的連接,一些值可能過于嚴(yán)格。在將本模塊的建議部署到產(chǎn)品服務(wù)器之前,要對(duì)這些建議進(jìn)行測(cè)試。
摘要
TCP/IP 堆棧負(fù)責(zé)處理傳入和傳出的 IP 數(shù)據(jù)包,并將數(shù)據(jù)包中的數(shù)據(jù)路由到要處理它們的應(yīng)用程序。默認(rèn)情況下,TCP/IP 天生就是一個(gè)不安全的協(xié)議。但是,Microsoft® Windows® 2000 版本允許您配置其操作,以抵御網(wǎng)絡(luò)級(jí)別的大多數(shù)拒絕服務(wù)攻擊。
本模塊解釋如何強(qiáng)化 TCP/IP 堆棧的安全,以及如何在 Windows 注冊(cè)表內(nèi)配置各種 TCP/IP 參數(shù),以便保護(hù)服務(wù)器免遭網(wǎng)絡(luò)級(jí)別的拒絕服務(wù)攻擊,包括 SYS 洪水攻擊、ICMP 攻擊和 SNMP 攻擊。
必備知識(shí)
可以在 Windows 注冊(cè)表內(nèi)配置各種 TCP/IP 參數(shù),以便保護(hù)服務(wù)器免遭網(wǎng)絡(luò)級(jí)別的拒絕服務(wù)攻擊,包括 SYS 洪水攻擊、ICMP 攻擊和 SNMP 攻擊。可以配置注冊(cè)表項(xiàng),以便:
| • |              在檢測(cè)到攻擊時(shí)啟用 SYN 洪水攻擊保護(hù)機(jī)制。  |         
| • |              設(shè)置用于確認(rèn)構(gòu)成攻擊的閾值。  |         
本“如何”向管理員介紹必須配置哪些注冊(cè)表項(xiàng)和注冊(cè)表值,以抵御基于網(wǎng)絡(luò)的拒絕服務(wù)攻擊。
注意 這些設(shè)置會(huì)修改服務(wù)器上 TCP/IP 的工作方式。Web 服務(wù)器的特征將確定觸發(fā)拒絕服務(wù)對(duì)策的最佳閾值。對(duì)于客戶端的連接,一些值可能過于嚴(yán)格。在將本文檔的建議部署到產(chǎn)品服務(wù)器之前,應(yīng)當(dāng)測(cè)試這些建議。
TCP/IP 天生就是一個(gè)不安全的協(xié)議。但是,Windows 2000 版本允許您配置其操作,以抵御網(wǎng)絡(luò)級(jí)別的拒絕服務(wù)攻擊。默認(rèn)情況下,本“如何”中引用的一些注冊(cè)表項(xiàng)和值可能不存在。在這些情況下,請(qǐng)創(chuàng)建這些注冊(cè)表項(xiàng)、值和值數(shù)據(jù)。
抵御 SYN 攻擊
SYN 攻擊利用了 TCP/IP 連接建立機(jī)制中的安全漏洞。要實(shí)施 SYN 洪水攻擊,攻擊者會(huì)使用程序發(fā)送大量 TCP SYN 請(qǐng)求來填滿服務(wù)器上的掛起連接隊(duì)列。這會(huì)禁止其他用戶建立網(wǎng)絡(luò)連接。
要保護(hù)網(wǎng)絡(luò)抵御 SYN 攻擊,請(qǐng)按照下面這些通用步驟操作(這些步驟將在本文檔的稍后部分進(jìn)行說明):
| • |              啟用 SYN 攻擊保護(hù)  |         
| • |              設(shè)置 SYN 保護(hù)閾值  |         
| • |              設(shè)置其他保護(hù)  |         
啟用 SYN 攻擊保護(hù)
啟用 SYN 攻擊保護(hù)的命名值位于此注冊(cè)表項(xiàng)的下面:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices。
值名稱: SynAttackProtect
建議值: 2
有效值: 0 – 2
說明:使 TCP 調(diào)整 SYN-ACK 的重傳。配置此值后,在遇到 SYN 攻擊時(shí),對(duì)連接超時(shí)的響應(yīng)將更快速。在超過 TcpMaxHalfOpen 或 TcpMaxHalfOpenRetried 的值后,將觸發(fā) SYN 攻擊保護(hù)。
設(shè)置 SYN 保護(hù)閾值
下列值確定觸發(fā) SYN 保護(hù)的閾值。這一部分中的所有注冊(cè)表項(xiàng)和值都位于注冊(cè)表項(xiàng) HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices 的下面。這些注冊(cè)表項(xiàng)和值是:
| • |              值名稱: TcpMaxPortsExhausted  |         
| • |              值名稱: TcpMaxHalfOpen  |         
| • |              值名稱: TcpMaxHalfOpenRetried  |         
設(shè)置其他保護(hù)
這一部分中的所有注冊(cè)表項(xiàng)和值都位于注冊(cè)表項(xiàng) HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices 的下面。這些注冊(cè)表項(xiàng)和值是:
| • |              值名稱: TcpMaxConnectResponseRetransmissions    |         
| • |              值名稱: TcpMaxDataRetransmissions  |         
| • |              值名稱: EnablePMTUDiscovery  |         
| • |              值名稱: KeepAliveTime  |         
| • |              值名稱: NoNameReleaseOnDemand  |         
使用表 1 中匯總的值可獲得最大程度的保護(hù)。
表 1:建議值
| 值名稱 | 值 (REG_Dword) | 
|              SynAttackProtect  |                          2  |         
|              TcpMaxPortsExhausted  |                          1  |         
|              TcpMaxHalfOpen  |                          500  |         
|              TcpMaxHalfOpenRetried  |                          400  |         
|              TcpMaxConnectResponseRetransmissions  |                          2  |         
|              TcpMaxDataRetransmissions  |                          2  |         
|              EnablePMTUDiscovery  |                          0  |         
|              KeepAliveTime  |                          300000(5 分鐘)  |         
|              NoNameReleaseOnDemand  |                          1  |         
抵御 ICMP 攻擊
這一部分的命名值都位于注冊(cè)表項(xiàng) HKLMSystemCurrentControlSetServicesAFDParameters 的下面
值: EnableICMPRedirect
建議的數(shù)值數(shù)據(jù): 0
有效值:0(禁用),1(啟用)
說明:通過將此注冊(cè)表值修改為 0,能夠在收到 ICMP 重定向數(shù)據(jù)包時(shí)禁止創(chuàng)建高成本的主機(jī)路由。
使用表 2 中匯總的值可以獲得最大程度的保護(hù):
表 2:建議值
| 值名稱 | 值 (REG_DWORD) | 
|              EnableICMPRedirect  |                          0  |         
抵御 SNMP 攻擊
這一部分的命名值位于注冊(cè)表項(xiàng) HKLMSystemCurrentControlSetServicesTcpipParameters 的下面。
值: EnableDeadGWDetect
建議的數(shù)值數(shù)據(jù): 0
有效值:0(禁用),1(啟用)
說明:禁止攻擊者強(qiáng)制切換到備用網(wǎng)關(guān)
使用表 3 中匯總的值可以獲得最大程度的保護(hù):
表 3:建議值
| 值名稱 | 值 (REG_DWORD) | 
|              EnableDeadGWDetect  |                          0  |         
AFD.SYS 保護(hù)
下面的注冊(cè)表項(xiàng)指定內(nèi)核模式驅(qū)動(dòng)程序 Afd.sys 的參數(shù)。Afd.sys 用于支持 Windows Sockets 應(yīng)用程序。這一部分的所有注冊(cè)表項(xiàng)和值都位于注冊(cè)表項(xiàng) HKLMSystemCurrentControlSetServicesAFDParameters 的下面。這些注冊(cè)表項(xiàng)和值是:
| • |              值 EnableDynamicBacklog  |         
| • |              值名稱: MinimumDynamicBacklog  |         
| • |              值名稱:MaximumDynamicBacklog  |         
| • |              值名稱: DynamicBacklogGrowthDelta  |         
使用表 4 中匯總的值可以獲得最大程度的保護(hù)。
表 4:建議值
| 值名稱 | 值 (REG_DWORD) | 
|              EnableDynamicBacklog  |                          1  |         
|              MinimumDynamicBacklog  |                          20  |         
|              MaximumDynamicBacklog  |                          20000  |         
|              DynamicBacklogGrowthDelta  |                          10  |         
其他保護(hù)
這一部分的所有注冊(cè)表項(xiàng)和值都位于注冊(cè)表項(xiàng) HKLMSystemCurrentControlSetServicesTcpipParameters 的下面。
保護(hù)屏蔽的網(wǎng)絡(luò)細(xì)節(jié)
網(wǎng)絡(luò)地址轉(zhuǎn)換 (NAT) 用于將網(wǎng)絡(luò)與傳入連接屏蔽開來。攻擊者可能規(guī)避此屏蔽,以便使用 IP 源路由來確定網(wǎng)絡(luò)拓?fù)洹?/p>
值: DisableIPSourceRouting
建議的數(shù)值數(shù)據(jù): 1
有效值:0(轉(zhuǎn)發(fā)所有數(shù)據(jù)包),1(不轉(zhuǎn)發(fā)源路由數(shù)據(jù)包),2(丟棄所有傳入的源路由數(shù)據(jù)包)。
說明:禁用 IP 源路由,后者允許發(fā)送者確認(rèn)數(shù)據(jù)報(bào)在網(wǎng)絡(luò)中應(yīng)采用的路由。
避免接受數(shù)據(jù)包片段
處理數(shù)據(jù)包片段可以是高成本的。雖然拒絕服務(wù)很少來自外圍網(wǎng)絡(luò)內(nèi),但此設(shè)置能防止處理數(shù)據(jù)包片段。
值: EnableFragmentChecking
建議的數(shù)值數(shù)據(jù): 1
有效值:0(禁用),1(啟用)
說明:禁止 IP 堆棧接受數(shù)據(jù)包片段。
切勿轉(zhuǎn)發(fā)去往多臺(tái)主機(jī)的數(shù)據(jù)包
多播數(shù)據(jù)包可能被多臺(tái)主機(jī)響應(yīng),從而導(dǎo)致響應(yīng)淹沒網(wǎng)絡(luò)。
值: EnableMulticastForwarding
建議的數(shù)值數(shù)據(jù): 0
有效范圍:0 (false),1 (true)
說明:路由服務(wù)使用此參數(shù)來控制是否轉(zhuǎn)發(fā) IP 多播。此參數(shù)由路由和遠(yuǎn)程訪問服務(wù)創(chuàng)建。
只有防火墻可以在網(wǎng)絡(luò)間轉(zhuǎn)發(fā)數(shù)據(jù)包
多主機(jī)服務(wù)器切勿在它所連接的網(wǎng)絡(luò)之間轉(zhuǎn)發(fā)數(shù)據(jù)包。明顯的例外是防火墻。
值: IPEnableRouter
建議的數(shù)值數(shù)據(jù): 0
有效范圍:0 (false),1 (true)
說明:將此參數(shù)設(shè)置為 1 (true) 會(huì)使系統(tǒng)在它所連接的網(wǎng)絡(luò)之間路由 IP 數(shù)據(jù)包。
屏蔽網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)細(xì)節(jié)
可以使用 ICMP 數(shù)據(jù)包請(qǐng)求主機(jī)的子網(wǎng)掩碼。只泄漏此信息是無害的;但是,可以利用多臺(tái)主機(jī)的響應(yīng)來了解內(nèi)部網(wǎng)絡(luò)的情況。
值: EnableAddrMaskReply
建議的數(shù)值數(shù)據(jù): 0
有效范圍:0 (false),1 (true)
說明:此參數(shù)控制計(jì)算機(jī)是否響應(yīng) ICMP 地址屏蔽請(qǐng)求。
使用表 5 中匯總的值可以獲得最大程度的保護(hù)。
表 5:建議值
| 值名稱 | 值 (REG_DWORD) | 
|              DisableIPSourceRouting  |                          1  |         
|              EnableFragmentChecking  |                          1  |         
|              EnableMulticastForwarding  |                          0  |         
|              IPEnableRouter  |                          0  |         
|              EnableAddrMaskReply  |                          0  |         
缺陷
在測(cè)試這些值的變化時(shí),請(qǐng)參照在產(chǎn)品中所期望的網(wǎng)絡(luò)流量進(jìn)行測(cè)試。這些設(shè)置會(huì)修改被認(rèn)為正常并偏離了測(cè)試默認(rèn)值的項(xiàng)目的閾值。一些閾值可能由于范圍太小而無法在客戶端的連接速度劇烈變化時(shí)可靠地支持客戶端。
- 
		無相關(guān)信息		
 

