香港服务器CDN加速与DDOS防御方案

蜗牛 美国服务器 2022-08-03 13 0

一、目的

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

二、CDN加速

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

CDN节点选择:

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

自建CDN优势:

旁路做流量清洗

资源充分利用:无攻击时,做路由加速,被攻击时做节点切换

长远规划,后期可增加节点、硬件配置等,根据需要自由提升防御DDOS攻击能力

架构设计:

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

反向代理: 路由加速,隐藏主节点,负载均衡

缓存加速:静态推送,节省后端主节点带宽

攻击防御:快速解析,建立syslog分析日志,匹配过滤恶意攻击, 多节点CDN可以采用联动方案,建立syslog系统,采集所有节点访问日志,编写脚本分析日志,发现异常请求后通过ansible工具发送命令到节点。(天下數据官网idcbest.com)

三、攻击防御

    延缓性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智能解析+轮询+存活监测:

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

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

2.DNS自动轮询+故障监测

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

3.日志分析+攻击防御:

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

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

    某个IP发起大量的并发请求

    大量连续的IP段发起请求

    大量无规则的IP发起请求

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

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

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

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论