DDos攻击无法从根本上防御,其基本思路就是拥有足够大的带宽来抵御,常用的方法有:DNS轮询,负载均衡等,也即用分布式的架构来抵御分布式的攻击。对于单个服务器来说,适当的对其进行调增也可以增强单台抗攻击的能力。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
;启动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_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters]
;增大NetBT的连接块增加幅度。
;缺省为3,范围1-20,数值越大在连接越多时提升性能。每个连接块消耗87个字节。
BacklogIncrement=dword:00000003
;最大NetBT的连接快的数目。
;范围1-40000,这里设置为1000,数值越大在连接越多时允许更多连接。
MaxConnBackLog=dword:000003e8
;Backlog相关设置 =================
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Afd\Parameters]
;配置激活动态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_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
;启用网卡上的安全过滤
EnableSecurityFilters=dword:00000001
;同时打开的TCP连接数,这里可以根据情况进行控制。
"TcpNumConnections"=dword:000f4240
;该参数控制 TCP 报头表的大小限制。在有大量 RAM 的机器上,增加该设置可以提高 SYN 攻击期间的响应性能。
TcpMaxSendFree=
;下面注意换成自己的网卡接口,查看哪个是当前使用的接口,一般通过配置的IP就知道了。
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{修改成自己的网卡接口}]
;禁止路由发现功能。ICMP路由通告报文可以被用来增加路由表纪录,可以导致攻击,所以禁止路由发现。
"PerformRouterDiscovery"=dword:00000000
当然,最好的情况下还是使用Linux系统,这样除了系统自身的因素因为,可以选择的方案也比较多。有一篇文章也可以参考下:http://www.80sec.com/ddos-attack-defend.html
参考资料:
如何在 Windows Server 2003 中加固 TCP/IP 堆栈以抵御拒绝服务攻击
windows2003防DDOS攻击设置-修改注册表
强化TCP/IP 堆栈安全
Web网站服务器DDOS安全解决方案