如何加固 TCP 堆栈

Microsoft Corporationapi

目标安全

使用本单元以:服务器

加固服务器的 TCP/IP 堆栈网络

保护服务器免受拒绝服务和其余基于网络的攻击tcp

在检测到攻击时启用 SYN flood 保护测试

设置用于肯定攻击构成的阈值大数据

适用于url

本单元适用于下列产品和技术:spa

Microsoft® Windows® 2000 Server 和 Windows 2000 Advanced Server 操做系统操作系统

如何使用本单元

本单元中所引用的项和值可能并不是存在于默认状况下。如果如此,请建立所需的项、值和数值数据。

有关注册表用于 Windows 2000 控件的 TCP/IP 网络设置的详细信息,请参阅如下站点的白皮书“Windows 2000 TCP/IP Implementation Details”:http://www.microsoft.com/technet/treeview/default.asp?url=/technet/itsolutions/network/deploy/depovg/tcpip2k.asp

 这些设置会修改服务器上 TCP/IP 的工做方式。Web 服务器的特性将肯定触发拒绝服务对策的最佳阈值。某些值或许对于客户端的链接而言限制性太强。在将本单元所建议内容部署至生产服务器以前,请先对这些建议进行测试。

*
本页内容
摘要 摘要
须知 须知
预防 SYN 攻击 预防 SYN 攻击
预防 ICMP 攻击 预防 ICMP 攻击
预防 SNMP 攻击 预防 SNMP 攻击
AFD.SYS 保护 AFD.SYS 保护
其余保护 其余保护
缺陷 缺陷
其余资源 其余资源

摘要

TCP/IP 堆栈负责处理传入和传出 IP 数据包,并将数据包的数据路由到要处理这些数据的应用程序。默认状况下,TCP/IP 位于本质上并不安全的协议中。可是,MicrosoftWindows2000 实现容许配置其操做以反击大部分网络级的拒绝服务攻击。

本单元阐述了如何在 Windows 注册表中加固 TCP/IP 堆栈并配置多种 TCP/IP 参数以预防网络级的拒绝服务攻击,其中包括 SYS flood 攻击、ICMP 攻击和 SNMP 攻击。

须知

可在 Windows 注册表中配置多种 TCP/IP 参数以预防网络级拒绝服务攻击,其中包括 SYN flood 攻击、ICMP 攻击和 SNMP 攻击。可配置注册表项以:

在检测到攻击时启用 SYN flood 保护。

设置用于肯定攻击构成的阈值。

本“如何……”文档向管理员说明了必须配置哪些注册表项和注册表值以预防基于网络的拒绝服务攻击。

 这些设置会修改服务器上 TCP/IP 的工做方式。Web 服务器的特性将肯定触发拒绝服务对策的最佳阈值。某些值或许对于客户端链接而言限制性太强。在将本文档所建议的内容部署至生产服务器以前,请先对这些建议进行测试。

TCP/IP 是一个本质上并不安全的协议。可是,Windows 2000 实现容许配置其操做以反击网络拒绝服务攻击。本“如何……”文档中引用的某些项和值或许并不存在于默认状况下。如果如此,请建立所需的项、值和数值数据。

有关注册表用于 Windows 2000 控件的 TCP/IP 网络设置的详细信息,请参阅如下站点的白皮书“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 flood 攻击,攻击者会使用程序来发送大量的 TCP SYN 请求来填充服务器上的挂起链接队列。这会阻止其余用户创建网络链接。

要保护网络免受 SYN 攻击,请遵循如下步骤,本文稍后会对这些步骤进行解释:

启用 SYN 攻击保护

设置 SYN 保护阈值

设置附加保护

启用 SYN 攻击保护

启用 SYN 攻击保护的命名值位于注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 之下。

值名称SynAttackProtect

推荐值:2

有效值:0–2

说明:使 TCP 来调整 SYN-ACKS 的重传。配置该值后,链接响应在 SYN 攻击事件中会更快地超时。在超过 TcpMaxHalfOpen 或 TcpMaxHalfOpenRetried 值时,触发 SYN 攻击。

设置 SYN 保护阈值

如下值肯定触发 SYN 保护的阈值。本部分中的全部项和值均位于注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 之下。这些项和值是:

值名称TcpMaxPortsExhausted

推荐值:5

有效值:0–65535

说明:指定必须在触发 SYN flood 保护以前超过的 TCP 链接请求阈值。

值名称TcpMaxHalfOpen

推荐值数据:500

有效值:100–65535

说明:启用 SynAttackProtect 后,该值指定 SYN_RCVD 状态中的 TCP 链接阈值。超过 SynAttackProtect 时,触发 SYN flood 保护。

值名称:TcpMaxHalfOpenRetried

推荐值数据:400

有效值: 80–65535

说明:启用 SynAttackProtect 后,该值指定至少发送了一次重传的 SYN_RCVD 状态中的 TCP 链接阈值。超过 SynAttackProtect 时,触发 SYN flood 保护。

设置附加保护

本部分中的全部项和值均位于注册表项 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 字节的 MTU 不在本地子网上。

值名称:KeepAliveTime

推荐值数据:300000

有效值:80–4294967295

说明:指定 TCP 隔多久会经过发送保持活动的数据包来尝试验证一次闲置链接仍然维持原样。

值名称:NoNameReleaseOnDemand

推荐值数据:1

有效值:0, 1

说明:指定计算机在收到名称释放请求时不释放其 NetBIOS 名称。

使用表 1 归纳的值来进行最大限度地保护。

表 1:推荐值
值名称 值 (REG_DWORD)

SynAttackProtect

2

TcpMaxPortsExhausted

1

TcpMaxHalfOpen

500

TcpMaxHalfOpenRetried

400

TcpMaxConnectResponseRetransmissions

2

TcpMaxDataRetransmissions

2

EnablePMTUDiscovery

KeepAliveTime

300000 (5 minutes)

NoNameReleaseOnDemand

1

预防 ICMP 攻击

本部分中的命名值位于注册表项 HKLM\System\CurrentControlSet\Services\AFD\Parameters 之下

值:EnableICMPRedirect

推荐值数据:0

有效值:0(禁用),1(启用)

说明:将该注册表值修改成 0,可在收到 ICMP 重定向数据包时阻止建立高成本的主路由。

使用表 2 中归纳的值进行最大限度的保护。

表 2:推荐值
值名称 值 (REG_DWORD)

EnableICMPRedirect

预防 SNMP 攻击

本部分中的命名值位于注册表项 HKLM\System\CurrentControlSet\Services\Tcpip\Parameters 之下。

值:EnableDeadGWDetect

推荐值数据: 0

有效值:0(禁用),1,(启用)

说明:防止攻击者强制切换至二级网关

使用表 3 归纳的值进行最大限度的保护。

表 3:推荐值
值名称 值 (REG_DWORD)

EnableDeadGWDetect

AFD.SYS 保护

如下项指定内核模式驱动程序 Afd.sys 的参数,Afd.sys 用于支持 Windows 套接字应用程序。本部分中的全部项和值均位于注册表项 HKLM\System\CurrentControlSet\Services\AFD\Parameters 之下。这些项和值是:

值:EnableDynamicBacklog

推荐值数据:1

有效值:0(禁用),1(启用)

说明:指定 AFD.SYS 功能以有效地承受大量 SYN_RCVD 链接。有关详细信息,请参阅位于 http://support.microsoft.com/default.aspx?scid=kb;en-us;142641的“Internet Server Unavailable Because of Malicious SYN Attacks”。

值名称:MinimumDynamicBacklog

推荐值数据:20

有效值:0–4294967295

说明:指定监听终结点上容许的可用链接最少数量。若是可用链接点的数量低于此值,则会将线程排队以建立额外的可用链接。

值名称:MaximumDynamicBacklog

推荐值数据:20000

有效值: 0–4294967295

说明:指定可用链接与 SYN_RCVD 状态中的链接之和的最大总量。

值名称:DynamicBacklogGrowthDelta

推荐值数据:10

有效值:0–4294967295

默认显示:无

说明:指定在须要附加链接时要建立的可用链接的数量。

使用表 4 归纳的值进行最大限度的保护。

表 4:推荐值
值名称 值 (REG_DWORD)

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 地址掩码请求。

使用表 4 归纳的值进行最大限度地保护。

表 5:推荐值
值名称 值 (REG_DWORD)

DisableIPSourceRouting

1

EnableFragmentChecking

1

EnableMulticastForwarding

IPEnableRouter

EnableAddrMaskReply

缺陷

测试这些值的更改时,请根据您指望在生产中使用的网络卷进行测试。这些设置会修改被认为是标准的而且源自测试默认值的阈值。若是客户端的链接速度差别很大,则某些阈值范围可能会过小以致于不能可靠地支持客户端。

其余资源

有关其余与 TCP/IP 相关的阅读资料,请参考如下资源:

有关如何加固 TCP/IP 堆栈的详细信息,请参阅 Microsoft 知识库文章,315669“How To:Harden the TCP/IP Stack Against Denial of Service Attacks in Windows2000

有关 Windows 2000 TCP/IP 实现的详细信息,请参阅 Davies、Joseph 以及 Lee、Thomas 的 Windows 2000 TCP/IP Protocols and Services,Microsoft Press,2000。

有关 Windows 2000 TCP/IP 实现的详细信息,请参阅 TechNet Web 站点上的“Microsoft Windows 2000 TCP/IP Implementation Details”:http://www.microsoft.com/technet/treeview/default.asp?url=/technet/itsolutions/network/deploy/depovg/tcpip2k.asp

相关文章
相关标签/搜索