论坛: 网站建设 标题: 中小型网站如何对付DoS攻击[转载] 复制本贴地址    
作者: Aoming [aoming]    版主   登录
来源: CNCERT/CC编辑整理       2004-05-28   

 
发布日期:2004年5月28日
最新修订:2004年5月28日

  DoS(Denial of Service)是一种利用合理的服务请求占用过多的服务资源,从而使合法用户无法得到服务响应的网络攻击行为。

  被DoS攻击时的现象大致有:
  * 被攻击主机上有大量等待的TCP连接;
  * 被攻击主机的系统资源被大量占用,造成系统停顿;
  * 网络中充斥着大量的无用的数据包,源地址为假地址;
  * 高流量无用数据使得网络拥塞,受害主机无法正常与外界通讯;
  * 利用受害主机提供的服务或传输协议上的缺陷,反复高速地发出特定的服务请求,使受害主机无法及时处理所有正常请求;
  * 严重时会造成系统死机。

  到目前为止,防范DoS特别是DDoS攻击仍比较困难,但仍然可以采取一些措施以降低其产生的危害。对于中小型网站来说,可以从以下几个方面进行防范:

主机设置:

  即加固操作系统,对各种操作系统参数进行设置以加强系统的稳固性。重新编译或设置Linux以及各种BSD系统、Solaris和Windows等操作系统内核中的某些参数,可在一定程度上提高系统的抗攻击能力。

  例如,对于DoS攻击的典型种类―SYN Flood,它利用TCP/IP协议漏洞发送大量伪造的TCP连接请求,以造成网络无法连接用户服务或使操作系统瘫痪。该攻击过程涉及到系统的一些参数:可等待的数据包的链接数和超时等待数据包的时间长度。因此,可进行如下设置:

  * 关闭不必要的服务;
  * 将数据包的连接数从缺省值128或512修改为2048或更大,以加长每次处理数据包队列的长度,以缓解和消化更多数据包的连接;
  * 将连接超时时间设置得较短,以保证正常数据包的连接,屏蔽非法攻击包;
  * 及时更新系统、安装补丁。

  如需了解更详细的方法,可参考本站提供的另一篇指南《 修改注册表提高Win2000抗拒绝服务攻击能力 》(说明:此文在跟帖中给出)。

防火墙设置:

  仍以SYN Flood为例,可在防火墙上进行如下设置:

  * 禁止对主机非开放服务的访问;
  * 限制同时打开的数据包最大连接数;
  * 限制特定IP地址的访问;
  * 启用防火墙的防DDoS的属性;
  * 严格限制对外开放的服务器的向外访问,以防止自己的服务器被当做工具攻击他人。

  此外,还可以采取如下方法:

  * Random Drop算法。当流量达到一定的阀值时,按照算法规则丢弃后续报文,以保持主机的处理能力。其不足是会误丢正常的数据包,特别是在大流量数据包的攻击下,正常数据包犹如九牛一毛,容易随非法数据包被拒之网外;
  * SYN Cookie算法,采用6次握手技术以降低受攻击率。其不足是依据列表查询,当数据流量增大时,列表急剧膨胀,计算量随之提升,容易造成响应延迟乃至系统瘫痪。

  由于DoS攻击种类较多,而防火墙只能抵挡有限的几种。

路由器设置:

  以Cisco路由器为例,可采取如下方法:

  * Cisco Express Forwarding(CEF);
  * 使用Unicast reverse-path;
  * 访问控制列表(ACL)过滤;
  * 设置数据包流量速率;
  * 升级版本过低的IOS;
  * 为路由器建立log server。

  其中,使用CEF和Unicast设置时要特别注意,使用不当会造成路由器工作效率严重下降。升级IOS也应谨慎。
  
  路由器是网络的核心设备,需要慎重设置,最好修改后,先不保存,以观成效。Cisco路由器有两种配置,startup config和running config,修改的时候改变的是running config,可以让这个配置先运行一段时间,认为可行后再保存配置到startup config;如果不满意想恢复到原来的配置,用copy start run即可。

  不论防火墙还是路由器都是到外界的接口设备,在进行防DDoS设置的同时,要权衡可能相应牺牲的正常业务的代价,谨慎行事。

利用负载均衡技术:

  就是把应用业务分布到几台不同的服务器上,甚至不同的地点。采用循环DNS服务或者硬件路由器技术,将进入系统的请求分流到多台服务器上。这种方法要求投资比较大,相应的维护费用也高,中型网站如果有条件可以考虑。

  以上方法对流量小、针对性强、结构简单的DoS攻击进行防范还是很有效的。而对于DDoS攻击,则需要能够应对大流量的防范措施和技术,需要能够综合多种算法、集多种网络设备功能的集成技术。

  近年来,国内外也出现了一些运用此类集成技术的产品,如Captus IPS 4000、Mazu Enforcer、Top Layer Attack Mitigator以及国内的绿盟黑洞、东方龙马终结者等,能够有效地抵挡SYN Flood、UDP Flood、ICMP Flood和Stream Flood等大流量DDoS的攻击,个别还具有路由和交换的网络功能。对于有能力的网站来说,直接采用这些产品是防范DDoS攻击较为便利的方法。但不论国外还是国内的产品,其技术应用的可靠性、可用性等仍有待于进一步提高,如提高设备自身的高可用性、处理速率和效率以及功能的集成性等。

  最后,介绍两个当网站遭受DoS攻击导致系统无响应后快速恢复服务的应急办法:

  * 如有富余的IP资源,可以更换一个新的IP地址,将网站域名指向该新IP;
  * 停用80端口,使用如81或其它端口提供HTTP服务,将网站域名指向IP:81。


[此贴被 Aoming(aoming) 在 08月04日23时18分 编辑过]

地主 发表时间: 04-08-04 23:14

回复: Aoming [aoming]   版主   登录
  修改注册表提高Win2000抗拒绝服务攻击能力   
  来源:转载      2004-05-28   

 
前言

  相信大家都一定不会对这两个这个词感到陌生,是的,拒绝服务攻击(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_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]


  关闭无效网关的检查。当服务器设置了多个网关,这样在网络不通畅的时候系统会尝试连接第二个网关,通过关闭它可以优化网络。
  "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_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters]
  增大NetBT的连接块增加幅度。缺省为3,范围1-20,数值越大在连接越多时提升性能。每个连接块消耗87个字节。
  "BacklogIncrement"=dword:00000003

  最大NetBT的连接快的数目。范围1-40000,这里设置为1000,数值越大在连接越多时允许更多连接。
  "MaxConnBackLog"=dword:000003e8


  [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
 

以下部分需要根据实际情况手动修改

  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
  启用网卡上的安全过滤
  "EnableSecurityFilters"=dword:00000001

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

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

  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{自己的网卡接口}]
  禁止路由发现功能。ICMP路由通告报文可以被用来增加路由表纪录,可以导致攻击,所以禁止路由发现。
  "PerformRouterDiscovery "=dword:00000000 


B1层 发表时间: 04-08-04 23:17

回复: q70213526 [q70213526]   版主   登录
我已经收藏。。

B2层 发表时间: 04-08-05 09:59

论坛: 网站建设

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号