CDN加速與DDOS防御


一、  目的

  實現國外節點的訪問加速,分區域分線路加速,防御來自競爭對手的DDos惡意攻擊,常見的延緩性CC攻擊和致命的大流量攻擊。針對以上的加速策略和兩種攻擊方式進行一些防御方案的簡單介紹。

二、    CDN加速

  利用第三方的DNS智能解析分區域分線路進行,就近原則,例如Cloudxns/DNSpod/51DNS/DNSla 等。

        

        CDN節點選擇:

                    主節點選擇香港VPS,其他節點根據應用部署區域進行優選(馬來、新加坡、柬埔寨、菲律賓等),旁路做流量清洗(遭遇攻擊),可以選擇美國的高仿VPS進行引流。

        自建CDN優勢:

    • 旁路做流量清洗
    • 資源充分利用:無攻擊時,做路由加速,被攻擊時做節點切換
    • 長遠規划,后期可增加節點、硬件配置等,根據需要自由提升防御DDOS攻擊能力

        架構設計:

     我們將CDN節點分解成反向代理+緩存加速+攻擊防御這三個層次的功能結構。

    • 反向代理: 路由加速,隱藏主節點,負載均衡
    • 緩存加速:靜態推送,節省后端主節點帶寬
    • 攻擊防御:快速解析,建立syslog分析日志,匹配過濾惡意攻擊, 多節點CDN可以采用聯動方案,建立syslog系統,采集所有節點訪問日志,編寫腳本分析日志,發現異常請求后通過ansible工具發送命令到節點

三、    攻擊防御

   延緩性CC攻擊:

         這類攻擊的主要特點是,攻擊者借助網絡上提供的大量代理服務器 IP,使用攻擊軟件,生成合法請求指向受害主機。這類攻擊成本低,網上現成能發動攻擊軟件多,其目的是通過漸增的垃圾請求,消耗CPU、內存、網絡資源,造成擁堵,達到網站訪問變慢,直至無法訪問。 

   防御思路:

     這類攻擊有兩個特征比較明顯,第一個特征,由於是人為生成了大量的非法請求,所以會引發網絡的入口異常流量增大(正常情況下出口流量大,入口流量小);

第二個特征,攻擊力度有一個漸增的過程,機器可以充分利用這個時間智能做出反應,調用日志分析腳本,進行引流和IP封殺。 

         具體策略:

    1、采用監控軟件的流量監控來觸發日志分析腳本(zabbix 為例) 

                

 

    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 。                  

          

 

  

 

 

 

          

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM