CDN加速与DDOS防御

一、  目的

  实现国外节点的访问加速,分区域分线路加速,防御来自竞争对手的DDos恶意攻击,常见的延缓性CC攻击和致命的大流量攻击。针对以上的加速策略和两种攻击方式进行一些防御方案的简单介绍。

二、    CDN加速

  利用第三方的DNS智能解析分区域分线路进行,就近原则,例如Cloudxns/DNSpod/51DNS/DNSla 等。

        CDN加速与DDOS防御_第1张图片

        CDN节点选择:

                    主节点选择香港VPS,其他节点根据应用部署区域进行优选(马来、新加坡、柬埔寨、菲律宾等),旁路做流量清洗(遭遇攻击),可以选择美国的高仿VPS进行引流。

        自建CDN优势:

    • 旁路做流量清洗
    • 资源充分利用:无攻击时,做路由加速,被攻击时做节点切换
    • 长远规划,后期可增加节点、硬件配置等,根据需要自由提升防御DDOS攻击能力

        架构设计:

     我们将CDN节点分解成反向代理+缓存加速+攻击防御这三个层次的功能结构。

    • 反向代理: 路由加速,隐藏主节点,负载均衡
    • 缓存加速:静态推送,节省后端主节点带宽
    • 攻击防御:快速解析,建立syslog分析日志,匹配过滤恶意攻击, 多节点CDN可以采用联动方案,建立syslog系统,采集所有节点访问日志,编写脚本分析日志,发现异常请求后通过ansible工具发送命令到节点

三、    攻击防御

   延缓性CC攻击:

         这类攻击的主要特点是,攻击者借助网络上提供的大量代理服务器 IP,使用攻击软件,生成合法请求指向受害主机。这类攻击成本低,网上现成能发动攻击软件多,其目的是通过渐增的垃圾请求,消耗CPU、内存、网络资源,造成拥堵,达到网站访问变慢,直至无法访问。 

   防御思路:

     这类攻击有两个特征比较明显,第一个特征,由于是人为生成了大量的非法请求,所以会引发网络的入口异常流量增大(正常情况下出口流量大,入口流量小);

第二个特征,攻击力度有一个渐增的过程,机器可以充分利用这个时间智能做出反应,调用日志分析脚本,进行引流和IP封杀。 

         具体策略:

    1、采用监控软件的流量监控来触发日志分析脚本(zabbix 为例) 

                CDN加速与DDOS防御_第2张图片

 

    2、采用python脚本统计入口流量,发现异常时,调用日志分析脚本,第一时间找出IP、Agent等特征码,利用iptables对恶意IP进行过滤,应用层上利用nginx关键词进行过滤。

  致命的大流量攻击:

        这类攻击主要特点是,通常以 tcp,icmp 和 UDP(尤其是 UDP 包,单 UDP 的数据包可以很大)方式为主,攻击流量可以达到几十GB以上,整个机房都能受到影响,攻击者通常利用大量肉鸡,对目标进行流量打击,此时流量会迅速占满服务器的带宽,导致无法响应任何用户请求。

             这类攻击需要购置大量带宽,对于攻击者来说,成本还挺高,但是下手“快狠准”,让网站在短时间内完全无响应。

由于这类攻击会引起流量剧增,IDC通常采取的措施是丢车保帅,直接

将被攻击IP下线,这无疑是落井下石。

     防御思路:

    架设硬防火墙(成本高)

    租用高仿节点

    租用大流量CDN分散目标流量(引流)

    长久之计,自建CDN

     防御策略:

           HAProxy+Nginx/ Varnish/ATS组合,我们称它为防御型反向代理缓存策略,功能角色如下:

    • HAProxy负责动静资源分离,实现会话粘滞,节点负载均衡,故障转移,开启 HAProxy 的 httplog 功能,做日志记录
    • Nginx负责反向代理缓存

四、    架构细节

      DNS智能解析+轮询+存活监测:

    • 部署智能DNS就近匹配CDN节点

      我们自建CDN其中一个目的是做访问优化,因此当部署完多个CDN节点后,为使这些节点协同运作,同时优化用户的访问路径,使得访客能够根据自己所在的区域和线路类型,就近从CDN节点上获取页面内容,从而优化访客的路由。

      DNS自动轮询+故障监测

    • 利用DNS轮询来为网站进行分流负载。如果条件充裕,后期可以部署冗余的CDN节点,这样既能缓解某个单一节点的负载,同时能为节点作互备,当一个区内的CDN节点因故障失效之后,调度机制要在最快时间内将故障节点的流量牵引至当前可用节点,不影响访客的正常请求。

  日志分析+攻击防御:

    CDN作为网站的前端节点,实时记录着访客的所有访问行为。利用好这些访问日志,对其进行的分析和挖掘,感知业务层面的一些异常活动,当面临DDoS攻击时,能够提供足够的证据来区分恶意的IP。

      区分恶意攻击的主要依据类型有:

    • 某个IP发起大量的并发请求
    • 大量连续的IP段发起请求
    • 大量无规则的IP发起请求

  目前我们对HAProxy的日志分析仅作用于单节点,可以利用下面的CDN图形化管理工具对日志进行统一管理。

  多节点CDN图形化管理工具:

     管理和运维一套CDN系统是一件很麻烦的事,想要实现快速部署、集中管理,我们可以利用软件工具来管理所有CDN节点,这里采用Fikker 。                  

          CDN加速与DDOS防御_第3张图片

 

  

 

 

 

          

 

转载于:https://www.cnblogs.com/Luweiping/p/11044054.html

你可能感兴趣的:(CDN加速与DDOS防御)