一次阿里云服务器 DDoS 经历

2016-05-20 23:22:21 +08:00
 vimrus
1. 网站是放在阿里云 ECS 上的, DDoS 攻击后网站不能访问。从阿里云的后台看到流量在 15G 左右,网站服务器进入了阿里云的黑洞。

40 分钟后网站从黑洞里出来,瞬间又遭受攻击并打入黑洞。接下来的 3 个小时一直重复这个过程...

2. 因为已经严重影响业务了,所以购买了阿里云的高防 IP 。 DNS 解析到高防 IP 后,通知客服更换源 IP 。本以为高枕无忧,结果刚过了 10 分钟,网站又被打入黑洞。

攻击者应该是找到了新的源 IP ,直接攻击源服务器。因为高防 IP 到源 IP 走的是外网,所以源服务器进入黑洞后,高防 IP 无法连接源 IP ,导致网站又不能访问。

3. 发工单咨询了阿里云客服,答复是 使用负载均衡 ELB ,即 高防 IP->负载均衡->源 IP 。负载均衡作为桥梁,与高防 IP 走外网,与源 IP 走内网,这样即便源服务在黑洞中也可以访问了。

4. 对方发现 DDos 无效后,开始了 CC 攻击,网站又陷入了瘫痪中。检查以后发现 Mysql 连接数过多,而且连接状态绝大多数是 Sleep 。查看 php 的 slowlog ,找到了原因:源服务器某些页面需要对外请求微信服务器,因为不能访问外网, php 程序阻塞住了,对 Mysql 的连接不能释放。

5. 修改代码将微信和 QQ 相关的连接做了一个代理,对方是无法找到这个代理并打入黑洞的。

6. 攻击者开始变本加厉,最高时流量在 30G , QPS 有 2 万多,网站大量出现 502 错误,看来我蹩脚的 PHP 代码已经扛不住了。 nginx 日志显示其请求的网址比较固定,于是将这些页面做了静态化处理,并将非法的 POST 请求 ban 掉。哈哈!网站正常了。


有一些经验教训,供大家参考:

黑洞有一个触发值,默认是 5G ( 5GB 的阈值可以根据安全信用增加)。因为之前网站的安全信用很好,以经提高到 12G 了。黑洞的时间最短 40 分钟,最长 2 个半小时。整个攻防过程中,网站的信用评级直线下降,阈值降到 5G ,黑洞时间也延长到两个小时。

阿里云 ECS 是不能更换 IP 地址的,除非购买他们的高防 IP ,可以免费更换一次(后来发现实际可以更换多次)。

DDoS 在自己的服务器端是无法防御的,无论是设置安全组还是防火墙,只能去购买高防 IP 或者 CDN 。不过根据这两天的攻击来看,无论是阿里云高防还是 CDN ,在大流量的攻击下,源 IP 还是会暴露的。

DDoS 确定是竞争对手所为,但不想 DDoS 回去。不能助长这些黑产,也不能像别人一样 Low 。
36415 次点击
所在节点    DevOps
69 条回复
wql
2016-05-20 23:39:54 +08:00
> DDoS 确定是竞争对手所为,但不想 DDoS 回去。不能助长这些黑产,也不能像别人一样 Low 。
点赞。
kofip
2016-05-20 23:53:36 +08:00
攻击者应该是找到了新的源 IP

不懂怎么找到的,怎么个逻辑?
vimrus
2016-05-20 23:59:40 +08:00
@kofip 当攻击流量到达一定值,这些云盾会暴露源 IP
sparanoid
2016-05-21 00:03:46 +08:00
yunhui
2016-05-21 00:07:34 +08:00
其实我想说,这个攻击量好小。。。。
testisitok
2016-05-21 00:13:21 +08:00
@yunhui +10086

要是在隔壁 LOC ,随便几百 G

我试过,那酸爽……
xia0ta0
2016-05-21 00:17:15 +08:00
@testisitok 真的试过?

每秒 453G !阿里云抵御史上最大 DDoS 攻击
goodryb
2016-05-21 00:28:53 +08:00
“源服务器某些页面需要对外请求微信服务器,因为不能访问外网, php 程序阻塞住了,对 Mysql 的连接不能释放。”

既然用了 SLB ,那么 ECS 这边安全组规则设置为只允许出站,不允许入站,这样就可以了。外面流量是无法通过公网 IP 进来,而业务可以访问出去。
UnisandK
2016-05-21 00:32:40 +08:00
@testisitok 随便几百 G ?说话前要不要打一下草稿。 DD 的攻防都是在烧钱,百 G 的要多少钱,不涉及到利益谁会砸钱打你

@vimrus 阿里云这种高防结构和 CDN 流量耗尽回源是两个概念吧,楼主估计是网站有对外进行网络请求的地方被人利用了,还有找回密码的邮件也可能暴露源站 IP ,之前有帖子讨论的
vimrus
2016-05-21 00:33:35 +08:00
@goodryb 源网站一直在黑洞里,是不能访问外网的
likuku
2016-05-21 00:51:28 +08:00
[ DDoS 确定是竞争对手所为,但不想 DDoS 回去。不能助长这些黑产,也不能像别人一样 Low 。]

能确定,那就报警啊,让阿里云客服和技术支持给你出证据。
wisdom
2016-05-21 01:01:32 +08:00
@UnisandK
@xia0ta0
真的不开玩笑 隔壁 loc 全是国内做 idc 的,几百 G 很正常
UnisandK
2016-05-21 01:22:01 +08:00
@wisdom 我孤陋寡闻了,混这么久都还没见过谁随便一下几百 G 的,特别是没侵犯到自身利益的情况下
Austing
2016-05-21 01:25:58 +08:00
如果不是你的業務系統主動暴露源或允許了所有地址訪問你的源那麼誰都可以掃的到。首先在源上做策略防止查源 IP 吧。 CC 這塊就是拼配置的,說起來阿里高防 IP 不是有 CC 防護嗎,實在不行開個驗證碼驗證。
Austing
2016-05-21 01:27:05 +08:00
順便為什麼不開專有網絡實例?外網可以隨時換的。
ayaseangle
2016-05-21 02:17:01 +08:00
说不定是贼喊捉贼呢
mytsing520
2016-05-21 02:26:19 +08:00
@Austing 专有实例的公网为弹性 IP ,按小时和流量或带宽计费,每天产生账单一次。不过对于有钱的主来说,这个不算什么大的问题。
Austing
2016-05-21 02:37:12 +08:00
@mytsing520 和經典算起來價錢沒差多少。。外套一層 SLB 然後高防 IP 直接回源 SLB...(或者其實乾脆買內網實例好了 233 )
mytsing520
2016-05-21 02:41:46 +08:00
@Austing 嗯,其实 VPC 内的机器直接内网即可,外套一个 SLB 。至于 CDN ,我的选择是访问量不大的话尽可能不用。再说了我有 CDN 代金卷,杭州某大厂出品,质量可以说的上信任。
WO31400
2016-05-21 03:40:44 +08:00
没几百 G 那么夸张,救我自己而言,最高 DDOS 能力在 20G 左右

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/280157

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX