调整本机可发起的TCP连接和可接受的TCP连接的方法

 
(刚翻译的,不准确的地方请勿见怪,并请指出)
调整本机可发起的 TCP 连接和可接受的 TCP 连接的方法:

适用的操作系统:
Microsoft Windows NT Workstation versions 3.5, 3.51, 4.0
Microsoft Windows NT Server versions 3.5, 3.51, 4.0
Microsoft Windows 2000 Professional
Microsoft Windows 2000 Server
Microsoft Windows 2000 Advanced Server
方法:
修改 ( 添加 ) 注册表,并重新启动系统:

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services
下面:

TcpNumConnections
Key: Tcpip/Parameters
取值类型: REG_DWORD - Number
取值范围: 0 - 0xfffffe
缺省值: 0xfffffe
描述:本参数限制可以同时打开的 TCP 连接的数量

MaxUserPort
key: Tcpip/Parameters
取值类型: REG_DWORD - Number
取值范围: 5000-65534 ( 十进制 )
缺省值: 0x1388 (5000 十进制 )
描述:控制一个应用程序可以打开的最多端口数量。通常,短命的端口在 1024-5000 之间分配。
当试图发起 5000 以上端口的连接,系统将出现 WSAENOBUFS(10055) 错误:因为队列满或者系统
缺乏足够的缓冲空间。
下面是我的 IOCP TCP 服务器单机测试结果:

15:201 | | | | | | TIOCPServerCore.Dump Begin==================================>
15:201 | | | | | | Socket
线程数量 =2
15:201 | | | | | |
缓冲区尺寸 =4096
15:211 | | | | | |
空闲缓冲区数量 =3
15:211 | | | | | |
使用缓冲区数量 =16275
15:211 | | | | | |
最大空闲缓冲区数量 =500
15:221 | | | | | |
空闲 Socket 数量 =0
15:231 | | | | | |
使用 Socket 数量 =16274
15:231 | | | | | |
最大空闲 Socket 数量 =500
15:241 | | | | | |
业务处理线程数量 =1
15:241 | | | | | |
最大空闲业务处理线程数量 =2

CPU
占用率很低,内存占用 10M 左右
本机发起和接受的 TCP 连接数是 16274 ,好像是最大的可发起连接数了,如果有
别的机器可能可以更多, Microsoft 资料说可以接收 200000 个连接
服务器反应迅速
 
 
 
Windows 2000 Server TCP/IP 利用与对策
更新日期: 2004 03 01
本页内容
目标
使用本模块可以实现:
确定 Microsoft® Windows® 2000 操作系统 TCP/IP 堆栈的可能利用。
配置注册表是解决 Windows 2000 TCP/IP 堆栈利用的对策。
确定 Windows 2000 TCP/IP 堆栈利用的潜在影响和对策。
适用范围
本模块适用于下列产品和技术:
Windows 2000
Windows 2000 TCP/IP 堆栈
Windows 2000 注册表
如何使用本模块
您应通过本模块确保 Windows 2000 TCP/IP 堆栈的安全。还可以使用本模块确定 TCP/IP 堆栈利用的影响和对策。
概要
本模块着重讲述了 Windows 2000 TCP/IP 堆栈的可能利用,并详细描述了可通过配置 HKLM/System/CurrentControlSet/Services/Tcpip/Parameters/ 注册表项来应用的对策。此外,模块还讲述了该配置的潜在影响。
Windows 2000 TCP/IP 堆栈潜在威胁和对策的影响
1 显示了 TCP/IP 堆栈的潜在利用。该表还显示了可能的对策,以及利用与对策的潜在影响。
1 TCP/IP 堆栈的潜在利用
注册表值项
对策潜在影响
潜在利用
EnableICMPRedirect
如果将路由和远程访问服务 (RRAS) 配置为自治系统边界路由器 (ASBR) ,它将无法正确导入连接接口子网路由。相反,该路由器将主机路由插入开放式最短路径优先 (OSPF) 路由中。由于 OSPF 路由器不能用作 ASBR 路由器,导入连接接口子网路由至 OSPF 将导致路由表与陌生的路由路径相互混淆。
Internet 控制消息协议 (ICMP) 重定向将导致堆栈探测主机路由。这些路由将覆盖 OSPF 生成的路由。
这一结果本身是预料中的行为。但问题是,由于 ICMP 重定向探测路由的超时时间是 10 分钟,这便在相关网络中形成黑洞。
SynAttackProtect
该注册表值允许 TCP 调整 SYN-ACK 的重新传输。配置了该值后,一旦发生 SYN 攻击,连接响应的超时时间更短。该值在连接指示中增加了额外的延迟,在发生 SYN 攻击时, TCP 连接请求的超时时间很短。如果配置了该设置,每个适配器(包括初始往返时间 (RTT) 和窗口大小)套接字选项所配置的可伸缩窗口和 TCP 参数将不再起作用。
SYN Flood 攻击中,攻击者向服务器持续发送 SYN 数据包流,服务器使处于半打开状态的连接一直保持打开状态,直至被淹没在庞大的数据流中而无法响应合法的请求。
EnableDeadGWDetect
启用间隔网关检测后,如果有很多连接都存在问题, TCP 可能要求 IP 切换到备份网关,如果该设置的值是 0 Windows 不再检测间隔网关,并自动切换到替换网关。
攻击者可强制服务器切换网关,并极有可能切换到毫无准备的网关。
EnablePMTUDiscovery
如果 EnablePMTUDiscovery 的设置是 1 TCP 将尝试发现远程主机路径中的最大传输单位 (MTU) 或最大数据包大小。 TCP 可通过发现路径的 MTU 并将 TCP 段限制在该值之内来在 MTU 不同的网络连接路径中消除路由器中的碎片。
碎片对 TCP 吞吐量有负面影响。如果值设置是 0 ,所有非本地子网主机的连接都将使用 576 字节的 MTU
如果值非 0 ,攻击者可强制 MTU 为非常小的值,然后强制服务器分割大量的数据包,进而使堆栈超负荷工作。
KeepAliveTime
该值控制了 TCP 尝试通过发送 KeepAlive 数据包确认空闲连接是否依然毫无变化的频率。如果远程计算机仍可访问,说明数据包保持有效 (KeepAlive)
在默认情况下,系统不发送 KeepAlive 数据包。您可通过程序在连接中配置该值。如果减少至 5 分钟(默认值是 2 小时),表示非活动会话将很快断开。
能连接网络应用程序的攻击者可以通过建立大量的连接造成 DoS
DisableIPSourceRouting
IP 源路由这种机制允许发送者确定数据报通过网络的 IP 路由。将该值设置为 2 将导致所有传入的源路由数据包丢失。
攻击者使用源路由数据包隐蔽他们的身份和位置。源路由允许计算机发送数据包来指定自己使用的路由。
TCPMaxConnectResponseRetransmissions
该参数控制了在未明确 SYN 的情况下, SYN-ACK 因响应连接请求而重新传输的次数。
如果值大于或等于 2 ,表示堆栈在内部使用 SYN-ATTACK 保护。如果值小于 2 ,表示堆栈的 SYN-ATTACK 保护根本不读取注册表值。该参数缩短了清理 TCP 连接所需的默认时间。遭受强烈攻击的站点可降低该值至 1 。设置为 0 也有效。但是,如果该参数的设置是 0 SYN-ACK 根本不会重新传输,并在 3 秒钟后超时。如果值非常低,远端客户端的合法连接尝试也将失败。
SYN Flood 攻击中,攻击者向服务器持续发送 SYN 数据包流,服务器使处于半打开状态的连接一直保持打开状态,直至被淹没在庞大的数据流中而无法响应合法的请求。
TCPMaxDataRetransmissions
在每个传出段向下传至 IP 后, TCP 将启动重新传输计时器。如果在计时器到期前未收到数据确认,该段最多可再重新传输三次。
SYN Flood 攻击中,攻击者向服务器持续发送 SYN 数据包流,服务器使处于半打开状态的连接一直保持打开状态,直至被淹没在庞大的数据流中而无法响应合法的请求。
PerformRouterDiscovery
设置该值可阻止 Windows 2000 (支持 Internet 路由器发现协议 (IRDP) )自动检测并配置计算机中的默认网关地址。
有同一网段系统控制权的攻击者可配置网络中的计算机来模拟路由器。
之后,其他启用了 IRDP 的计算机将使自己的数据流通过该受损系统。
TCPMaxPortsExhausted
该参数控制了 SYN-ATTACK 保护的起始运行点。如果系统因连接的有效待办事项是 0 而拒绝了 TCPMaxPortsExhausted 连接请求, SYN-ATTACK 保护便开始运行。这对尝试合法连接的服务器和系统的影响微乎其微。
SYN Flood 攻击中,攻击者向服务器持续发送 SYN 数据包流,服务器使处于半打开状态的连接一直保持打开状态,直至被淹没在庞大的数据流中而无法响应合法的请求。
AFD 设置:
DynamicBacklogGrowthDelta
EnableDynamicBacklog
MinimumDynamicBacklog
MaximumDynamicBacklog
Windows Sockets 应用程序(如 FTP 服务器和 Web 服务器)由 Afd.sys 处理连接尝试。 Afd.sys 已经过修改并支持大量的半打开连接,而且不会拒绝合法客户端的访问。
允许管理员配置动态待办事项可实现这一目标。
DynamicBacklogGrowthDelta
控制了必需其他连接时要创建的自由连接数。设置该值一定要非常小心。如果值过大,将导致自由连接分配剧增。
SYN Flood 攻击中,攻击者向服务器持续发送 SYN 数据包流,服务器使处于半打开状态的连接一直保持打开状态,直至被淹没在庞大的数据流中而无法响应合法的请求。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值