记一次公司服务器遭受CC攻击防御的应急记录

事件背景:

公司服务部署框架因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进行屏蔽

 

没有更多推荐了,返回首页