1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

[转帖]中小型网站如何对付DoS攻击

本帖由 笑笑而飞2005-11-22 发布。版面名称:网站运营

  1. 笑笑而飞

    笑笑而飞 New Member

    注册:
    2005-11-22
    帖子:
    1,501
    赞:
    11
    中小型网站如何对付DoS攻击

    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