一聚教程网:一个值得你收藏的教程网站

热门教程

Windows2003下预防DDos攻击的注册表设置简单教程

时间:2022-11-14 22:06:11 编辑:袖梨 来源:一聚教程网

Windows Registry Editor Version 5.00

代码如下 复制代码
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters]


;启动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



;网关相关设置 =================
;关闭无效网关的检查。
;当服务器设置了多个网关,这样在网络不通畅的时候系统会尝试连接第二个网关,通过关闭它可以优化网络。

代码如下 复制代码
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


;禁止IP源路由。缺省项值为1,表示不转发源路由包。
;项值设为0,表示全部转发,设置为2,表示丢弃所有接受的源路由包,微软站点安全推荐为2。

代码如下 复制代码
DisableIPSourceRouting=dword:0000002


;限制处于TIME_WAIT状态的最长时间。
;缺省为240秒,最低为30秒,最高为300秒。建议设为30秒。

代码如下 复制代码
TcpTimedWaitDelay=dword:0000001e



;NetBT相关设置 =================

代码如下 复制代码
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNetBTParameters]


;增大NetBT的连接块增加幅度。
;缺省为3,范围1-20,数值越大在连接越多时提升性能。每个连接块消耗87个字节。

代码如下 复制代码
BacklogIncrement=dword:00000003


;最大NetBT的连接快的数目。
;范围1-40000,这里设置为1000,数值越大在连接越多时允许更多连接。

代码如下 复制代码
MaxConnBackLog=dword:000003e8



;Backlog相关设置 =================

代码如下 复制代码
[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

以下部分需要根据实际情况手动修改,请不要直接执行下面的reg文件

Windows Registry Editor Version 5.00

代码如下 复制代码
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters]


;启用网卡上的安全过滤

代码如下 复制代码
EnableSecurityFilters=dword:00000001


;同时打开的TCP连接数,这里可以根据情况进行控制。
"

代码如下 复制代码
TcpNumConnections"=dword:000f4240


;该参数控制 TCP 报头表的大小限制。在有大量 RAM 的机器上,增加该设置可以提高 SYN 攻击期间的响应性能。

代码如下 复制代码
TcpMaxSendFree=



;下面注意换成自己的网卡接口,查看哪个是当前使用的接口,一般通过配置的IP就知道了。

代码如下 复制代码
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersInterfaces{修改成自己的网卡接口}]


;禁止路由发现功能。ICMP路由通告报文可以被用来增加路由表纪录,可以导致攻击,所以禁止路由发现。

代码如下 复制代码
"PerformRouterDiscovery"=dword:00000000

当然,最好的情况下还是使用Linux系统,这样除了系统自身的因素因为,可以选择的方案也比较多

常见ddos攻击及防御

继续秉承80sec的”Know it then hack it”,这里简单谈一下ddos攻击和防御方面的问题。ddos的全称是分布式拒绝服务攻击,既然是拒绝服务一定是因为某些原因而停止服务的,其中最重要的也是最常用的原因就是利用服务端方面资源的有限性,这种服务端的资源范围很广,可以简单的梳理一个请求正常完成的过程:

1 用户在客户端浏览器输入请求的地址
2 浏览器解析该请求,包括分析其中的dns以明确需要到达的远程服务器地址
3 明确地址后浏览器和服务器的服务尝试建立连接,尝试建立连接的数据包通过本地网络,中间路由最终艰苦到达目标网络再到达目标服务器
4 网络连接建立完成之后浏览器根据请求建立不同的数据包并且将数据包发送到服务器某个端口
5 端口映射到进程,进程接受到数据包之后进行内部的解析
6 请求服务器内部的各种不同的资源,包括后端的API以及一些数据库或者文件等
7 在逻辑处理完成之后数据包按照之前建立的通道返回到用户浏览器,浏览器完成解析,请求完成。

上面各个点都可以被用来进行ddos攻击,包括:

1 某些著名的客户端劫持病毒,还记得访问百度跳搜狗的事情么?:)
2 某个大型互联网公司发生的dns劫持事件,或者直接大量的dns请求直接攻击dns服务器,这里可以使用一些专业的第三方dns服务来缓解这个问题,如Dnspod
3 利用建立网络连接需要的网络资源攻击服务器带宽使得正常数据包无法到达如udp的洪水攻击,消耗前端设备的cpu资源以使得数据包不能有效转发如icmp和一些碎片包的洪水攻击,消耗服务器方建立正常连接需要的资源如syn flood或者就是占用大量的连接使得正常的连接无法发起,譬如这次的TCP flood
4 利用webserver的一些特点进行攻击,相比nginx来说,apache处理一个请求的过程就比较笨重。
5 利用应用程序内部的一些特性攻击程序内部的资源如mysql,后端消耗资源大的接口等等,这也就是传统意义上的CC攻击。

这里涉及到攻防的概念,但是实际上如果了解对方的攻击点和攻击手法,防御会变成简单的一个拼资源的过程,不要用你最弱的地方去抗人家最强的地方,应该从最合适的地方入手把问题解决掉,譬如在路由器等设备上解决应用层攻击就不是一个好的办法,同理,在应用层尝试解决网络层的问题也是不可能的,简单来说,目标是只让正常的数据和请求进入到我们的服务,一个完善的防御体系应该考虑如下几个层面:

1 作为用户请求的入口,必须有良好的dns防御
2 与你的价值相匹配的带宽资源,并且在核心节点上布置好应用层的防御策略,只允许你的正常应用的网络数据包能够进入,譬如封杀除了80以外的所有数据包
3 有支持你的服务价值的机器集群来抵抗应用层的压力,有必要的话需要将一个http请求继续分解,将连接建立的过程压力分解到其他的集群里,这里似乎已经有一般的硬件防火墙能做这个事情,甚至将正常的http请求解析过程都进行分解,保证到达后端的是正常的请求,剔除掉畸形的请求,将正常的请求的请求频度等行为进行记录和监控,一旦发生异常就在这里进行应用层的封杀

每个公司都有自己对自己价值的评估从而决定安全投入上的大小,每一次攻击也会涉及到利益的存在,正如防御因为种种原因譬如投入上的不足和实施过程中的不完美,有着天生的弱点一样,攻击也是有着天生的弱点的,因为每一次攻击涉及到不同的环节,每个环节都可能由不同水平的人完成,他所拥有的资源,他使用的工具和技术都不会是完美的,所以才有可能进行防御,另外,我相信进行DDOS攻击的人是一个固定的行业,会有一些固定的人群,对于其中使用的技术,工具,资源和利益链都是比较固定的,与之相对的是各个企业却缺乏相应的沟通,以个人企业对抗一个产业自然是比较困难,而如果每一个企业都能将自己遭受攻击时的经验分享出来,包括僵尸网络的大小及IP分布,攻击工具的特征,甚至有能力的可以去分析背后的利益点及操作者,那么每一次攻击都能让大家的整体防御能力上升,让攻击者的攻击能力有损失,我们很愿意来做这个事情。

热门栏目