如何强化 TCPIP 堆栈安全

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如何:强化TCP/IP 堆栈安全更新日期: 2004年04月12日
本页内容
目标
适用范围
如何使用本模块
摘要
必备知识
抵御SYN 攻击
抵御ICMP 攻击
抵御SNMP 攻击
AFD.SYS 保护
其他保护
缺陷
其他资源
目标
使用本模块可以实现:
•强化服务器的TCP/IP 堆栈安全
•保护服务器免遭“拒绝服务”和其他基于网络的攻击•在检测到攻击时启用SYN 洪水攻击保护
•设置用于确认是什么构成攻击的阈值
返回页首
适用范围
本模块适用于下列产品和技术:
•Microsoft Windows 2000 Server 和Windows 2000 Advanced Server
返回页首
如何使用本模块
默认情况下,本模块中的一些注册表项和值可能不存在。

在这些情况下,请创建这些注册表项、值和数值数据。

有关Windows 2000 控制的TCP/IP 网络设置的注册表的详细信息,请参阅白皮书“Microsoft Windows 2000 TCP/IP Implementation Details”,网址为
/technet/treeview/default.asp?url=/technet/itsolutions/network/deplo y/depovg/tcpip2k.asp(英文)
注意:这些设置会修改服务器上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 版本允许您配置其操作,以抵御网络级别的拒绝服务攻击。

默认情况下,本“如何”中引用的一些注册表项和值可能不存在。

在这些情况下,请创建这些注册表项、值和值数据。

有关Windows 2000 的注册表所控制的TCP/IP 网络设置的详细信息,请参阅白皮书“Microsoft Windows 2000 TCP/IP Implementation Details”,网址为
/technet/treeview/default.asp?url=/technet/itsolutions/network/deplo y/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:建议值
返回页首
抵御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”,网址为
/default.aspx?scid=kb;en-us;142641(英文)。

•值名称:MinimumDynamicBacklog
建议的数值数据:20
有效值:0 – 4294967295
说明:指定在侦听的终结点上所允许的最小空闲连接数。

如果空闲连接的数目低于该值,线程将被排队,以创建更多的空闲连接
•值名称:MaximumDynamicBacklog
建议的数值数据:20000
有效值:0 – 4294967295
说明:指定空闲连接以及处于SYN_RCVD 状态的连接的最大总数。

•值名称:DynamicBacklogGrowthDelta
建议的数值数据:10
有效值:0 – 4294967295
默认情况下是否出现:否
说明:指定在需要增加连接时将要创建的空闲连接数。

使用表 4 中汇总的值可以获得最大程度的保护。

表4:建议值
返回页首
其他保护
这一部分的所有注册表项和值都位于注册表项
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:建议值
返回页首
缺陷
在测试这些值的变化时,请参照在产品中所期望的网络流量进行测试。

这些设置会修改被认为正常并偏离了测试
默认值的项目的阈值。

一些阈值可能由于范围太小而无法在客户端的连接速度剧烈变化时可靠地支持客户端。

返回页首
其他资源
有关TCP/IP 的其他资料,请参考下面的资源:
•有关强化TCP/IP 堆栈的详细信息,请参阅Microsoft 知识库文章315669 How To:Harden the TCP/IP Stack Against Denial of Service Attacks in Windows 2000(英文)。

•有关Windows 2000 TCP/IP 实现的详细信息,请参阅“Windows 2000 TCP/IP Protocols and Services”(英文)(Davies, Joseph 和Lee, Thomas 著,Microsoft Press,2000 年)。

•有关Windows 2000 TCP/IP 实现的详细信息,请参阅TechNet 网站上的“Microsoft Windows 2000 TCP/IP Implementation Details”,网址为
/technet/treeview/default.asp?url=/technet/itsolutions/network/de ploy/depovg/tcpip2k.asp(英文)。

相关文档
最新文档