| 
                                     可以在 Windows 
                                    注册表内配置各种 TCP/IP 
                                    参数,以便保护服务器免遭网络级别的拒绝服务攻击,包括 
                                    SYS 洪水攻击、ICMP 
                                    攻击和 SNMP 
                                    攻击。可以配置注册表项,以便: 
                                    
                                      
                                        
                                          | • | 
                                          
                                             在检测到攻击时启用 SYN 
                                            洪水攻击保护机制。 
                                           | 
                                         
                                        
                                          | • | 
                                          
                                             设置用于确认构成攻击的阈值。 
                                           | 
                                         
                                      
                                     
                                    本“如何”向管理员介绍必须配置哪些注册表项和注册表值,以抵御基于网络的拒绝服务攻击。 
                                    注意 
                                    这些设置会修改服务器上 TCP/IP 
                                    的工作方式。Web 
                                    服务器的特征将确定触发拒绝服务对策的最佳阈值。对于客户端的连接,一些值可能过于严格。在将本文档的建议部署到产品服务器之前,应当测试这些建议。 
                                    TCP/IP 
                                    天生就是一个不安全的协议。但是,Windows 
                                    2000 
                                    版本允许您配置其操作,以抵御网络级别的拒绝服务攻击。默认情况下,本“如何”中引用的一些注册表项和值可能不存在。在这些情况下,请创建这些注册表项、值和值数据。 
                                    有关 Windows 2000 的注册表所控制的 TCP/IP 网络设置的详细信息,请参阅白皮书“Microsoft 
                                      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 
                                    洪水攻击,攻击者会使用程序发送大量 
                                    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 
                                           | 
                                         
                                      
                                     
                                    
                                    
                                    
                                    缺陷
                                    在测试这些值的变化时,请参照在产品中所期望的网络流量进行测试。这些设置会修改被认为正常并偏离了测试默认值的项目的阈值。一些阈值可能由于范围太小而无法在客户端的连接速度剧烈变化时可靠地支持客户端。 
                                    
                                   |