你目前正处于脱机状态,正在等待 Internet 重新连接

如何在 Windows Server 2003 中加固 TCP/IP 堆栈以抵御拒绝服务攻击

针对 Windows Server 2003 的支持已于 2015 年 7 月 14 日终止。

Microsoft 已于 2015 年 7 月 14 日终止了对于 Windows Server 2003 的支持。该更改已影响到您的软件更新和安全选项。 了解这一措施对于您的含义以及如何继续保持受保护状态。

有关本文的 Microsoft Windows 2000 版本,请参见 315669
重要说明:本文包含有关如何修改注册表的信息。修改注册表之前,一定要先进行备份,并且一定要知道在出现问题时如何还原注册表。有关如何备份、还原和修改注册表的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
256986 Microsoft Windows 注册表说明

本任务的内容

概要
拒绝服务 (DoS) 攻击是一种网络攻击,其目的是使网络用户无法访问计算机或计算机中的某项服务。拒绝服务攻击很难防御。为了帮助您抵御拒绝服务的攻击,可以使用下列一种或两种方法:
  • 使用最新的安全修补程序更新计算机。安全修补程序位于下面的 Microsoft 网站中:
  • 加固 Windows Server 2003 计算机上的 TCP/IP 协议堆栈。默认的 TCP/IP 堆栈配置能够处理正常的 Intranet 通信量。如果将计算机直接连接到 Internet,Microsoft 建议您加固 TCP/IP 堆栈以抵御拒绝服务攻击。
返回页首

加固 TCP/IP 堆栈的 TCP/IP 注册表值

警告:如果使用注册表编辑器或其他方法错误地修改了注册表,则可能导致严重问题。这些问题可能需要重新安装操作系统才能解决。Microsoft 不能保证您可以解决这些问题。修改注册表需要您自担风险。
以下列表说明了与 TCP/IP 相关的注册表值,您可以在直接连接到 Internet 的计算机上配置这些值,以加固 TCP/IP 堆栈。除非特别指出,否则所有这些值均应在以下注册表项下创建:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
注意:除非特别指出,否则所有值均为十六进制。
  • 数值名称:SynAttackProtect
    项:Tcpip\Parameters
    数值类型:REG_DWORD
    有效范围:0,1
    默认值:0

    该注册表值可使传输控制协议 (TCP) 调整 SYN-ACKS 的重新传输。配置该值后,如果出现 SYN 攻击(拒绝服务攻击的一种),连接响应超时时间将更短。

    下列参数可与该注册表值一起使用:
    • 0(默认值):无 SYN 攻击防护
    • 1:将 SynAttackProtect 设置为 1 可更有效地抵御 SYN 攻击。该参数可使 TCP 调整 SYN-ACKS 的重新传输。将 SynAttackProtect 设置为 1 时,如果系统检测到存在 SYN 攻击,连接响应的超时时间将更短。Windows 使用以下值确定是否存在攻击:
      • TcpMaxPortsExhausted
      • TCPMaxHalfOpen
      • TCPMaxHalfOpenRetried

    注意:在 Windows Server 2003 Service Pack 1 中,SynAttackProtect 注册表项的默认值为 1。
  • 数值名称:EnableDeadGWDetect
    项:Tcpip\Parameters
    数值类型:REG_DWORD
    有效范围:0,1(False,True)
    默认值:1(True)

    下表说明了可以在该注册表值中使用的参数:
    • 1:将 EnableDeadGWDetect 设置为 1 时,将允许 TCP 执行失效网关检测。启用失效网关检测时,如果多个连接出现困难,TCP 可能会要求 Internet 协议 (IP) 切换到备份网关。可以在“TCP/IP 配置”对话框(“控制面板”中的“网络”工具中)的“高级”部分中定义备份网关。
    • 0:Microsoft 建议您将 EnableDeadGWDetect 值设置为 0。如果不将该值设置为 0,攻击可能会强制服务器切换网关,而切换到的新网关可能并不是您打算使用的网关。
  • 数值名称:EnablePMTUDiscovery
    项:Tcpip\Parameters
    数值类型:REG_DWORD
    有效范围:0,1(False,True)
    默认值:1(True)

    下表说明了可以在该注册表值中使用的参数:
    • 1:将 EnablePMTUDiscovery 设置为 1 时,TCP 将尝试发现经由远程主机的路径传输的最大传输单位 (MTU) 或最大数据包大小。通过发现路径的 MTU 并将 TCP 段限制到这一大小,TCP 可以沿着连接具有不同 MTU 的网络的路径删除路由器上的碎片。碎片会对 TCP 的吞吐量产生不利影响。
    • 0:Microsoft 建议将 EnablePMTUDiscovery 设置为 0。如果这样做,576 字节的 MTU 将应用于本地子网中所有非主机的连接。如果不将该值设置为 0,攻击者可能会强制 MTU 值变得非常小,从而导致堆栈的负荷过大。

      重要说明:将 EnablePMTUDiscovery 设置为 0 将对 TCP/IP 性能和吞吐量产生负面影响。尽管 Microsoft 建议使用该设置,也不应使用它,除非您完全清楚这种性能损失。
  • 数值名称:KeepAliveTime
    项:Tcpip\Parameters
    数值类型:REG_DWORD - 时间(以毫秒为单位)
    有效范围:1-0xFFFFFFFF
    默认值:7,200,000(两个小时)

    该值控制 TCP 通过发送“保持活动”的数据包来验证空闲连接仍然完好无损的频率。如果仍能连接到远程计算机,该计算机就会对“保持活动”的数据包作出应答。默认情况下,不发送“保持活动”的数据包。可以使用程序在连接上配置该值。建议将该值设置为 300,000(5 分钟)。
  • 数值名称:NoNameReleaseOnDemand
    项:Netbt\Parameters
    数值类型:REG_DWORD
    有效范围:0,1(False,True)
    默认值:0(False)

    该值确定计算机在收到名称释放请求时是否释放其 NetBIOS 名称。添加该值的目的是让管理员能够保护计算机免受恶意的名称释放攻击。Microsoft 建议您将 NoNameReleaseOnDemand 值设置为 1
返回页首

疑难解答

更改 TCP/IP 注册表值时,可能会影响在基于 Windows Server 2003 的计算机上运行的程序和服务。Microsoft 建议您在非生产用工作站和服务器上测试这些设置,以确认它们是否适合您的业务环境。

返回页首
kbsecurity
属性

文章 ID:324270 - 上次审阅时间:01/05/2011 03:42:00 - 修订版本: 2.0

Microsoft Windows Server 2003 Datacenter Edition, Microsoft Windows Server 2003 Enterprise Edition, Microsoft Windows Server 2003 Standard Edition, Microsoft Windows Server 2003 Web Edition, Microsoft Windows Server 2003, Enterprise x64 Edition, Microsoft Windows Small Business Server 2003 Standard Edition, Microsoft Windows Small Business Server 2003 Premium Edition

  • kbhowtomaster KB324270
反馈