被DDOS/CC攻击后总结如何选择最低成本的防护方案
一、行业现象
1.1 为什么要攻击?
常见的,一个是同行恶意竞争,一个是敲诈勒索。
无论是传统行业的线下门店,还是互联网行业的门户网站、APP产品,都存在着竞争关系,争相获得更多客源,究其目的,无非是为了赚钱。
1.2 被攻击有什么症状?
传统行业线下门店来讲,你开了一家饭店,正正经经做生意,生意也还不错。这两天经常有一大堆人进饭店,但是不点菜就占着位置不消费,或者动不动有乞丐在门口守着,有人在饭菜里面吃到虫子等等,这就是传统行业的恶意竞争。
互联网行业同理,你的门户网站或者APP产品一直正常运行,也没有做推广导流大量用户,但是系统突然无法访问,或者卡的要死,技术检查说是服务器流量暴增,导致服务器崩溃,阿里云ECS被拉入黑洞,无法访问。
用户无法正常使用你的产品,自然会觉得你的系统不稳定,导致用户流失。
1.3 恶意竞争的对手一般是不会攻击,那他是怎么做到的?
- “发单者”,发起恶意竞争的对手,或者是敲诈勒索的主,即“老板”;
- “攻击者”,收到发单者的订单,通过专业技术手段对目标进行攻击操作,即“项目经理”;
- “肉鸡供应商”,即给攻击者提供资源的供应商,资源即“捣乱者”;
另,本图只是简单介绍攻击产业链,还有其他角色此处就不做详细介绍,后续我们再出专题讨论。
1.4 哪些行业更有可能被攻击?
- 游戏(棋牌、网游私服)类
- 某颜色类网站类
- 金融类
- 虚拟货币类
简单分析下上述类行业,他们至少有一个非常关键的共同点:有钱!
二、常见攻击方式
2.1 DDoS攻击
DDoS攻击是利用网络上被攻陷的电脑作为“肉鸡”,通过一定方式组合形成数量庞大的“僵尸网络”,采用一对多的方式进行控制,向目标系统同时提出服务请求,超出服务器的承载量,导致服务器崩溃的攻击技术。
简单的说,就是你的饭馆最多承载100个客人在店里面消费,当被人家恶意攻击时,突然有很多人往店里挤,不光是从大门进,还有后门,爬窗,各式各样的,导致店里没办法控制,并且人满为患,真正的消费者无法进入饭店消费,最后歇菜。
一般DDoS攻击有 NTP Flood、ICMP Flood、UDP Flood、SYN Flood、DNS Query Flood 等,由于专业描述过于复杂,此处不做详细介绍。
2.2 cc攻击
cc攻击主要分代理cc和肉鸡cc,其目的都是通过控制大量的请求,访问受害主机的合法网页或接口,导致服务端应用层(如java的tomcat)无法正常响应,服务器CPU长时间处于100%状态,网络带宽被占满,数据库被拖死等情况。
简单的说,当你的饭馆被恶意cc攻击时,突然来了很多客人,他们虽然不爬窗不抄后门,但是仍然把你的大门给挤满堵死,真正的客人无法进入,人又多,饭馆的服务员忙不过来,最后歇菜。
这种攻击技术性含量高,见不到真实源IP,见不到特别大的异常流量,但服务器就是无法进行正常连接。所以cc攻击成本也相对高一些,如果不是真的有什么深仇大恨,一般不会持续多久。
三、DDoS攻击防护
3.1 理解DDoS攻击原理
首先我们要知道,最基础的网站部署是怎么实现的,用户通过浏览器访问域名,域名再转发到你的源服务器。
然后我们要了解DDoS攻击原理,他们攻击的,是你的源服务器,也就是你的饭馆门店。因为一般域名都是显示指向服务器的ip,也就是你的门店定位是暴露给客户的,所以攻击者是可以直接找到门店进行攻击。
3.2 前置路由服务器,保护源服务器
所以要防护DDoS攻击第一步,是要保护好我们的源服务器,不让对方知道我们的源服务器地址,即加一个前置路由服务器,一般我们是使用NGINX、Apache等软路由,部署如下图。
3.3 路由服务器被打死怎么办
上述架构图中,只是保证了源服务器不被影响,但是前置路由服务器被打死,用户依然访问不了,所以有的朋友已经想到了,我们再换一个路由服务器,部署如下图。
但这种方式,必须要人工将域名转发配置重新改成新的路由服务器,并且域名转发最慢可能要10分钟,所以存在部分用户短时间内无法正常访问的弊端。
3.4 高富帅的完美做法
前面讲到的多路由服务器的方式,存在明显的体验差的弊端,那么有没有更好的方式呢?当然有,就是费点钱。比如阿里云,就有他们自己的高防服务,20000元包月,打底30G流量,超出的流量按量付费。 举个例子,这个月,你被攻击了5次,每次平均流量时100G,那么也就是说,你要额外再出 70G * 5 * 平均小时 的额外流量费用。(我一个搞游戏的朋友被同行恶意攻击,一个晚上的功夫,就是1万多的超额费用。。。),部署架构图如下。
3.5 想要有阿里云高防IP的服务又想节省成本
阿里云高防IP的做法,其实就是自己做了一套清洗规则,我们百度阿里云高防可以看到,很多竞价排名在前面的都是一些机房,他们的做法跟阿里云的做法原理也是差不多的,并且价格要比阿里云便宜不少,那么靠谱吗?
竞价排名嘛,羊毛出在羊身上,所以对于他们的同行来说,价格肯定也是偏高的,稳不稳定得看口碑了。我们之前做互联网金融的时候,被别人敲诈勒索,最后也是找到一个比较靠谱的机房做的防护,他们24小时在线查处问题,后面也一直处于比较清静的状态。
四、cc攻击防护
4.1 理解cc攻击原理
cc攻击不同于普通的DDoS攻击,玩的是合法的网络请求,也就是说他就是通过域名网页请求过去的,也是因为他本身就不需要绕过门面直接攻击源服务器,那么即使加上普通的前置路由服务器,也是没用的。
既然不需要隐式保护源服务器,那要怎么处理呢?
一般cc攻击都是有策略的,通过识别出当时攻击的策略,防护修改对应的应对策略即可。(当然,没点专业技术能力的,这个应对策略也是做不到的)
4.2 如何找到专业的cc攻击策略防护
同样,也是使用类阿里云的高防IP,当服务器被攻击时,会提示你的服务器当前在被什么策略的cc攻击,对应的人为在高防管理后台修改防护策略即可应对。
另一个就是前面说的机房,他们也是同样的方式,只是因为接入了机房,被攻击的对象就是他们的服务器,所以就让他们机房自己修改策略应对就好了,你只需要观察你的客户是否可以正常访问即可。
五、防护方式用户体验与成本对照表
防护方式 | 用户体验 | 价格成本 | 人工成本 | 稳定程度 |
---|---|---|---|---|
多前置路由服务器 | 部分用户短时间内无法访问,体验差 | 主备模式,备用可以需要时再临时适用,成本较低 | 略高 | 一般 |
阿里云高防IP | 用户体验基本没有感知 | 2万保底30G,成本非常高 | 较少 | 稳定 |
靠谱IDC机房 | 用户体验基本没有影响 | 3千左右保底50G,免费弹性到100G,成本较低 | 较少 | 稳定 |
My Blog
技术交流
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
阿姆达尔Law对系统性能的提升的定义
阿姆达尔定律 = Amdahl's Law,本篇重点是介绍该定律。 背景 系统架构中对系统性能设计的解决方案之一:“阿姆达尔方案”。书中还有个完全看不懂的公式,理解起来脑仁痛(不懂...)但发现很有价值,便系统的学习一下。 例题试先做一下,带着疑问点再看定律。 例题:假设某一功能的处理时间为整体系统运行时间的60%,若使该功能的处理速度提高至原来的5倍,则根据阿姆达尔定律,整个系统的处理速度可提高至原来的多少倍? 定理公式 优化前系统总耗时To(old),优化后系统总耗时Tn(new),加速比S=To/Tn。 Speedup = timeOld / timeNew 详细公式: S = 1 / ((1-C) + C/S) S(speedup),加速比。 C,原系统中能够改进的部分占总部分的比例,也可以说能够改进部分运行时间占总系统运行时间的比例,比如:75%。 S,改进后系统的提升比例,比如:5倍。 举例分解 上面的例子细化一下:程序A中子程序B的运行时间占A的60%,子程序B优化提升了5倍速度,那么程序A将多少? 程序A初始假设速度可为1,如下: 1/((1-0.6)+0.6/5) =...
- 下一篇
开普勒云平台:9个示例解析如何安装依赖
本文介绍开普勒云平台如何安装依赖。 Kplcloud是什么? kplcloud是一个基于Kubernetes的轻量级PaaS平台,通过可视化的界面对应用进行管理,降低应用容器化的对度,从而减少应用容器化的时间成本。 Kplcloud已在宜信服务于宜人财富等多个团队,稳定运行了近两年,目前平台已在生产环境跑着上百个应用,近千个容器。 一、Namespace 建议将与开普勒相关的服务独立到一个专有的 Namespace下,在Kubernetes创建新的空间。您可以执行以下命令创建该空间 $ kubectl create namespace kpaas 或执行以下命令 : $ kubectl apply -f install/kubernetes/namespace.yaml 二、配置持久化存储 2.1 持久化存储的相关配置 这里使用的是NFS的方式进行持久化,如果您有自己的持久化方案可以不使用改方案。 $ kubectl apply -f install/kubernetes/storage/serviceaccount.yaml $ kubectl apply -f install/ku...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8编译安装MySQL8.0.19
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7