事件背景:

公司服务部署框架因redis瓶颈,cc攻击导致资源全部被占用,APP几乎打不开

处理过程

一、因亚马逊服务就开启了cloudfront服务,结果因cloudfront是国外的CDN服务在国内不兼用,结果打开翻墙才能用,否则不行

二、在nginx上配置
http { limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; server {
#限制每ip每秒不超过20个请求,漏桶数burst为5 #brust的意思就是,如果第1秒、2,3,4秒请求为19个, #第5秒的请求为25个是被允许的。
#但是如果你第1秒就25个请求,第2秒超过20的请求返回503错误。 #nodelay,如果不设置该选项,严格使用平均速率限制请求数,
#第1秒25个请求时,5个请求放到第2秒执行, #设置nodelay,25个请求将在第1秒执行。 limit_req zone=one burst=1
nodelay; } }
上面样本的配置是什么意思呢?

* $binary_remote_addr 表示:客户端IP地址
* zone 表示漏桶的名字
* rate 表示nginx处理请求的速度有多快
* burst 表示峰值
* nodelay 表示是否延迟处理请求,还是直接503返回给客户端,如果超出rate设置的情况下。
 

例子如下:
http { limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; server {
limit_req zone=one burst=1 nodelay; } }
此时可以人工对规定时间内的访问次数的用户进行控制(屏蔽/开放)

三、最终解决的办法是:通过cloudfare来进行攻防

1、登陆https://www.cloudfare.com然后进行注册账号,直接点击下一步输入需要处理的域名,然后再下一步

2、当出现DNS的位置时就需要我们将原有的DNS服务改掉,我们用的是万网,需要将万网的换成下面的



3、在万网上更改DNS这个可以在阿里上找到更改方法

4、将万网上的解析全部迁移到cloudfare

遇到的问题:

更改后后台管理到数据时报一下错误



原因是cloudfare禁用了了cookie,解决办法



5、可是结果还不理想

我们就在firewall上添加配置

选中firewall



将安全等级调高



最后根据日志添加应用规则



最后选择保存

注意:

    当攻击过后我们就要记得将这些配置全部还原,防止继续伤及无辜,因为遭受攻击时我们是牺牲正常用户以换取安全

6、我们还需要提取日志,对日志进行筛选,将IP访问量达到前几的几个IP进行屏蔽



 

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信