这篇文章来源于v2ex的一位站长的个人经历,主机吧觉得不错,就转载给大家参考下,当然其实购买的阿里云的高防IP主机吧认为有点浪费,阿里云高防IP又贵防御又小,不像主机吧提供的防御高价格便宜,哈哈!打个小广告。
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 。
写的不错
学到了不少东西!我的博客,欢迎回访
好文章,谢谢分享,我的博客,欢迎回访
除了阿里外面就没有国内高防服务器了?外面防100G的云服务器4H8G 20M宽带的 才600左右,外面高防很便宜,服务器速度和稳定性不比他们的差
阿里云服务器是可以更换IP的 其实你这个还有更方便的解决办法 1.阿里云封的是IP 不是主机 所以只需要更换IP 加上CDN即可 具体方法则是 进入黑洞后 把服务器的带宽降配 降为0 这时候公网IP会自动释放,然后再去阿里云买弹性公网IP 5M带宽的IP大概就100来块 买了后 再把服务器关机 并绑定弹性公网IP 然后再去第三方买CDN 100G DDOS防御大概就1000以内 还附带CC策略 先把域名解析到CDN上并在CDN指向新的弹性公网IP 过几分钟就能直接访问了