修改Win2k注册表抵抗拒绝服务


从正确看待Dos与DDoS说起
相信大家都一定不会对这两个这个词感到陌生 , 是的 , 拒绝服务攻击(Denial of Service) , 以及分布式拒绝服务攻击(Distributed Denial of Service) 。
所谓拒绝服务 , 是指在特定攻击发生后 , 被攻击的对象不能及时提供应有的服务 , 例如本来应提供网站服务(HTTP Service)而不能提供网站服务 , 电子邮件服务器(SMTP , POP3)不能提供收发信件等等的功能 , 基本上 , 阻绝服务攻击通常利用大量的网络数据包 , 以瘫痪对方之网络及主机 , 使得正常的使用者无法获得主机及时的服务 。
分布式拒绝服务 , 简单的说就是用远超过目标处理能力的海量数据包消耗可用系统 , 以及网络带宽 , 造成网络服务瘫痪 。
也许是和媒体的过分关注有关 , DoS攻击特别是DDoS攻击 , 似乎一夜之间就流行了起来 , 搞的大大小小的网管们 , 只要服务器一有故障 , 就异常兴奋的高呼“我被DDoS了!” , 脸上仿佛写着无比的光荣和骄傲 。
其实在我们的周围 , 真正意义上的DDoS其实并不多 , 毕竟发动一次DDoS攻击所需要的资源非常的多 , 但实实在在的攻击却又不停的发生着 , 这里面 , 绝大多数 , 都是普通的拒绝服务攻击 。普通级别的攻击 , 如何防护 , 也成为很多网络管理员最头疼的问题 , 于是到处打听 , 结果往往千篇一律 , “购买我们的硬件防火墙吧” 。
硬件防火墙 , 包括专用抗拒绝服务攻击产品的确是好 , 但基本价格都十分昂贵 , 效果虽然好 , 可从投资以及保护投资的角度来说 , 未免有些过火 。
其实从操作系统角度来说 , 本身就藏有很多的功能 , 只是很多是需要我们慢慢的去挖掘的 。这里我给大家简单介绍一下如何在Win2000环境下修改注册表 , 增强系统的抗DoS能力 。
细节:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MacHINESYSTEMCurrentControlSetServicesTcpipParameters]
关闭无效网关的检查 。当服务器设置了多个网关 , 这样在网络不通畅的时候系统会尝试连接第二个网关 , 通过关闭它可以优化网络 。
"EnableDeadGWDetect"=dWord:00000000
禁止响应ICMP重定向报文 。此类报文有可能用以攻击 , 所以系统应该拒绝接受ICMP重定向报文 。
"EnableICMPRedirects"=dword:00000000
不允许释放NETBIOS名 。当攻击者发出查询服务器NETBIOS名的请求时 , 可以使服务器禁止响应 。
注意系统必须安装SP2以上
"NoNameReleaseOnDemand"=dword:00000001
发送验证保持活动数据包 。该选项决定TCP间隔多少时间来确定当前连接还处于连接状态 , 不设该值 , 则系统每隔2小时对TCP是否有闲置连接进行检查 , 这里设置时间为5分钟 。
"KeepAliveTime"=dword:000493e0
禁止进行最大包长度路径检测 。该项值为1时 , 将自动检测出可以传输的数据包的大小 , 可以用来提高传输效率 , 如出现故障或安全起见 , 设项值为0 , 表示使用固定MTU值576bytes 。
"EnablePMTUDiscovery"=dword:00000000
启动syn攻击保护 。缺省项值为0 , 表示不开启攻击保护 , 项值为1和2表示启动syn攻击保护 , 设成2之后安全级别更高 , 对何种状况下认为是攻击 , 则需要根据下面的TcpMaxHalfOpen和TcpMaxHalfOpenRetrIEd值设定的条件来触发启动了 。这里需要注意的是 , NT4.0必须设为1 , 设为2后在某种特殊数据包下会导致系统重启 。
"SynAttackProtect"=dword:00000002
同时允许打开的半连接数量 。所谓半连接 , 表示未完整建立的TCP会话 , 用netstat命令可以看到呈SYN_RCVD状态的就是 。这里使用微软建议值 , 服务器设为100 , 高级服务器设为500 。建议可以设稍微小一点 。
"TcpMaxHalfOpen"=dword:00000064
判断是否存在攻击的触发点 。这里使用微软建议值 , 服务器为80 , 高级服务器为400 。
"TcpMaxHalfOpenRetried"=dword:00000050
设置等待SYN-ACK时间 。缺省项值为3 , 缺省这一过程消耗时间45秒 。项值为2 , 消耗时间为21秒 。项值为1 , 消耗时间为9秒 。最低可以设为0 , 表示不等待 , 消耗时间为3秒 。这个值可以根据遭受攻击规模修改 。微软站点安全推荐为2 。
"TcpMaxConnectResponseRetransmissions"=dword:00000001
设置TCP重传单个数据段的次数 。缺省项值为5 , 缺省这一过程消耗时间240秒 。微软站点安全推荐为3 。
"TcpMaxDataRetransmissions"=dWord:00000003
设置syn攻击保护的临界点 。当可用的backlog变为0时 , 此参数用于控制syn攻击保护的开启 , 微软站点安全推荐为5 。
"TCPMaxPortsExhausted"=dword:00000005
禁止IP源路由 。缺省项值为1 , 表示不转发源路由包 , 项值设为0 , 表示全部转发 , 设置为2 , 表示丢弃所有接受的源路由包 , 微软站点安全推荐为2 。
"DisableIPSourceRouting"=dword:0000002
限制处于TIME_WAIT状态的最长时间 。缺省为240秒 , 最低为30秒 , 最高为300秒 。建议设为30秒 。
"TcpTimedWaitDelay"=dword:0000001e
[HKEY_LOCAL_MacHINESYSTEMCurrentControlSetServicesNetBTParameters]
增大NetBT的连接块增加幅度 。缺省为3 , 范围1-20 , 数值越大在连接越多时提升性能 。每个连接块消耗87个字节 。
"BacklogIncrement"=dword:00000003
最大NetBT的连接快的数目 。范围1-40000 , 这里设置为1000 , 数值越大在连接越多时允许更多连接 。
"MaxConnBackLog"=dword:000003e8
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesAfdParameters]
配置激活动态Backlog 。对于网络繁忙或者易遭受SYN攻击的系统 , 建议设置为1 , 表示允许动态Backlog 。
"EnableDynamicBacklog"=dword:00000001
配置最小动态Backlog 。默认项值为0 , 表示动态Backlog分配的自由连接的最小数目 。当自由连接数目低于此数目时 , 将自动的分配自由连接 。默认值为0 , 对于网络繁忙或者易遭受SYN攻击的系统 , 建议设置为20 。
"MinimumDynamicBacklog"=dword:00000014
最大动态Backlog 。表示定义最大"准"连接的数目 , 主要看内存大小 , 理论每32M内存最大可以增加5000个 , 这里设为20000 。
"MaximumDynamicBacklog"=dword:00002e20
每次增加的自由连接数据 。默认项值为5 , 表示定义每次增加的自由连接数目 。对于网络繁忙或者易遭受SYN攻击的系统 , 建议设置为10 。
"DynamicBacklogGrowthDelta"=dword:0000000a
以下部分需要根据实际情况手动修改
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters]
启用网卡上的安全过滤
"EnableSecurityFilters"=dword:00000001
同时打开的TCP连接数 , 这里可以根据情况进行控制 。
"TcpNumConnections"=
该参数控制 TCP 报头表的大小限制 。在有大量 RAM 的机器上 , 增加该设置可以提高 SYN 攻击期间的响应性能 。
"TcpMaxSendFree"=
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters
Interfaces{自己的网卡接口}]
禁止路由发现功能 。ICMP路由通告报文可以被用来增加路由表纪录 , 可以导致攻击 , 所以禁止路由发现 。
【修改Win2k注册表抵抗拒绝服务】"PerformRouterDiscovery "=dword:00000000