Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何简单的防止网站被CC攻击

如何简单的防止网站被CC攻击

作者头像
小柒吃地瓜
发布于 2020-04-21 08:00:25
发布于 2020-04-21 08:00:25
2.7K00
代码可运行
举报
文章被收录于专栏:梦在深巷梦在深巷
运行总次数:0
代码可运行

前言

CC攻击(Challenge Collapsar)CC攻击的本名叫做HTTP-flood,是一种专门针对于Web的应用层flood攻击,攻击者操纵网络上的肉鸡,对目标Web服务器进行海量http request攻击,造成对方服务器资源耗尽,一直到宕机崩溃。

本站情况

  • 今天晚上本站遭受到大量的CC攻击,峰值在3GB左右;持续了十几二十分钟!
  • 但是本站用了CDN,抗下了大量的数据请求;但是回源的数据达到17Mbps
  • 但是本站还是安全的抗下了这次CC的全部流量,并且服务器无任何波动.
  • 那么我们就谈谈本站是如何防御这场CC

攻击流量图

  • 攻击时常有十几分钟,CDN全部扛下来了但是部分流量回源到服务器!
  • 攻击源在广东,分析部分日志得出是一共2台服务器进行发包.
  • 防御过程如下

设置CDN防御CC

1.设置每秒QPS数量

2.带宽封顶配置

  • 由于CDN抗下大部分流量导致回源访问的链接不多日志少!

设置Nginx防御CC

  1. 设置worker_processes 8根据自己的机器设置多个进程!
  2. 设置worker_connections 5120根据自己的机器设置每个进程处理的连接数
  3. 使用ngx_http_limit_conn_module模块使用方法:官方文档
  4. 使用ngx_http_limit_req_module模块使用方法:官方文档
  5. 使用ngx_http_referer_module模块使用方法:官方文档
  6. 还有很多模块可以进行防止CC,不一一举例使用!
ngx_http_limit_conn_module模块的使用
  • 这个模块主要是限制连接数.
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http {
    limit_conn_zone $ binary_remote_addr zone = addr:10m;
    server {
        location /admin/ {
             limit_conn addr 1;//设置只能一个IP连接
            }
        }
    }

  • 具体设置根据你的需求,我的设置比较严谨!详细设置访问nginx官网查看官方文档!
ngx_http_limit_req_module模块的使用
  • 这个模块主要是设置每秒的请求数.
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=80r/s;
    server {
        location ~* /handsome/usr/\.(js|jpg|json) {
             limit_req zone=one burst=5 nodelay;//设置超过的请求丢弃
            }
        }
    }
配置文件的部分讲解

$binary_remote_addr 远程地址. zone=one:10m 为one分配10m内存,用来储存连接. rate=80r/s 限制频率每秒80个请求. burst=5 允许超过频率设置的请求书不能超过5个,超过的就丢弃. nodelay 设置超过的请求不延时处理.

  • 详细解释参考nginx官方文档!
ngx_http_referer_module模块的使用
  • referer模块是防止referer头字段中没有请求来源则丢弃该请求
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    location ~* /handsome/usr/\.(js|jpg|png|css) 
    {
        valid_referers none blocked *.i7dom.cn server_names ~\.badu\. ~\.google\.;
        if ($invalid_referer)
        {
            return 403;
        }
    }
  • 防止不是从主站或者百度,google的链接则之家返回404;

防止数据库耗尽资源

  • 本站之所以能再二十多万的链接中存活下来是用了nosql;
  • 在CC发起到结束可以正常访问,无任何延迟;
  • 如果资源允许的情况下可以用redis或者memcache

本站采用了redis防止读库导致资源耗尽!

攻击前后的使用率

  • 以上是服务器的使用率,波动不大!

攻击前后CDN的情况

攻击源分析

  • 我下载了CDN的日子分析分析得到结果如下!

第一波CC攻击持续6分钟 ​

第二波CC工具持续二十分钟,流量虽然低但是触发了我设置的阈值后全部返回404页面 而后我分析出攻击的主页没有在redis设置缓存,虽然CDN全部扛下了流量但是一部分回源到主机上;但是波动不大,第一次回源触发了nginx设置的阈值全部丢弃该IP的所有数据包. 紧接着CDN线路负载挂了,腾讯云关闭了我域名的线路进行被动防御! 至此,防御结束;服务器波动可以忽略!CDN流量卒,插件在读redis的缓存时负载过高出现debug信息!

得出结论

  1. 减少静态资源的读取
  2. 限制CDN的流量阈值
  3. 限制CDN的IP访问阈值
  4. 减少回源次数,减少服务端的读库数量;使用缓存进行防御CC!
  5. 单IP访问数量超过200QPS时可以写策略进行跳转到其他网站;比如阿里,腾讯,或者政府网站,尽量不要跳转到zf网站不要搞事情!
  6. 情况允许的情况下可以接入某盾,某宝进行防御;但是价钱嘛!略高
  7. 以上抗不下来就硬抗吧!

版权属于:龙之介大人

本文链接:https://cloud.tencent.com/developer/article/1618131

本站所有原创文章采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 您可以自由的转载和修改,但请务必注明文章来源和作者署名并说明文章非原创且不可用于商业目的。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019 年 01 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
nginx防止DDOS攻击配置(一)
防御DDOS是一个系统工程,攻击花样多,防御的成本高瓶颈多,防御起来即被动又无奈。DDOS的特点是分布式,针对带宽和服务攻击,也就是四层流量攻击和七层应用攻击,相应的防御瓶颈四层在带宽,七层的多在架构的吞吐量。对于七层的应用攻击,我们还是可以做一些配置来防御的,例如前端是Nginx,主要使用nginx的http_limit_conn和http_limit_req模块来防御。ngx_http_limit_conn_module 可以限制单个IP的连接数,ngx_http_limit_req_module 可以限制单个IP每秒请求数,通过限制连接数和请求数能相对有效的防御CC攻击。下面是配置方法:
后端技术探索
2018/08/09
6.9K0
网站遭遇CC攻击怎么破?
这里用一个段子做引,顾客点了份鱼香肉丝没有肉丝,找店家理论,店家矢口否认,于是第二天顾客找了 N 多闲杂人等把小饭馆全部坐满,还不消费,正常顾客无法消费就餐,店主损失巨大。
天存信息
2021/08/25
1.4K0
网站遭遇CC攻击怎么破?
nginx通过配置防止DDoS攻击
DDoS攻击是Distributed Denial of Service的缩写,翻译成中文就是分布式拒绝服务。即不法黑客组织通过控制服务器等资源,发动对包括国家骨干网络、重要网络设施、政企或个人网站在内的互联网上任一目标的攻击,致使目标服务器断网,最终停止提供服务。
我的小熊不见了丶
2019/05/22
3.6K0
nginx关于限制请求数和连接数
nginx轻巧功能强大,能承受几百并发量,ddos攻击几乎没有影响到nginx自身的工作,但是,太多的请求就开始影响后端服务了。所以必须要在nginx做相应的限制,让攻击没有到后端的服务器。这里阐述的是能在单位时间内限制请求数的ngx_http_limit_req_module模块和nginx限制连接数的ngx_http_limit_conn_module模块。安装模块这些简单的步骤这里就不介绍了,就介绍一下配置的参数,希望对大家有用。
一夕如环
2018/08/08
1.9K0
Nginx限制某个IP同一时间段的连接次数和请求数
nginx可以通过ngx_http_limit_conn_module和ngx_http_limit_req_module配置来限制ip在同一时间段的访问次数.
拓荒者
2019/03/15
3.6K0
《面试补习》- 你来说说什么是限流?
停更了很久的《面试补习》 ,随着最近的校招来临,也要提上日程了,在梳理八股文的同时,也能加深自己的理解,希望对各位童鞋有所帮助~
九灵
2021/06/29
6200
《面试补习》- 你来说说什么是限流?
nginx限速,带宽,IP;
限制向客户端传送响应数据的速度,可以用来限制客户端的下载速度。参数rate的单位是字节/秒,0为关闭限速。
拓荒者
2019/03/15
7.6K0
nginx限速,带宽,IP;
Nginx 限流模块
【转载请注明出处】:https://cloud.tencent.com/developer/article/1623156
后端老鸟
2020/05/02
1.5K0
Nginx 限流模块
CDN NGINX防止CC攻击 防采集 宝塔面板可用 及识别CDN真实访问者IP并屏蔽思路
CC 攻击和采集都是同个IP发起大量访问请求,这个会造成大量请求拥堵,导致服务器资源耗尽,CC攻击主要针对特定服务接口,属于实现 DoS 攻击的一种方式。
Qicloud
2022/01/21
1.7K0
『学习笔记』配置 Nginx 实现站点限流与防止 DDOS 攻击
🎈今日推荐——https://cloud.tencent.com/developer/article/2472492
二一年冬末
2024/12/01
3870
Nginx学习之如何防止流量攻击
使用场景 最近,报告查询系统负载均衡集群相关配置已经完成,两种实现方式分别是基于Ehcache和Redis的session管理策略。 大家都知道服务器资源有限的,但是客户端来的请求是无限的(不排除恶意攻击), 为了保证大部分的请求能够正常响应,不得不放弃一些客户端来的请求,所以我们会采用Nginx的限流操作, 这种操作可以很大程度上缓解服务器的压力, 使其他正常的请求能够得到正常响应。 如何使用Nginx实现基本的限流,比如单个IP限制每秒访问50次。通过Nginx限流模块,我们可以设置一旦并发连接数超过我
小柒2012
2018/04/13
3K0
【NGINX入门】11.Nginx限流算法及配置实践
限流的目的是通过对并发访问/请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务(定向到错误页)、排队等待(秒杀)、降级(返回兜底数据或默认数据)。 高并发系统常见的限流有:限制总并发数(数据库连接池)、限制瞬时并发数(如nginx的limit_conn模块,用来限制瞬时并发连接数)、限制时间窗口内的平均速率(nginx的limit_req模块,用来限制每秒的平均速率)。 另外还可以根据网络连接数、网络流量、CPU或内存负载等来限流。
辉哥
2021/02/05
2.8K0
【NGINX入门】11.Nginx限流算法及配置实践
Nginx面试三连问:Nginx如何工作?负载均衡策略有哪些?如何限流?
Nginx ,是一个 Web 服务器和反向代理服务器用于 HTTP、HTTPS、SMTP、POP3 和 IMAP 协议。
HaC
2020/12/09
1.5K0
Nginx 限流配置详解
从作用上来说,漏桶和令牌桶算法最明显的区别就是是否允许突发流量(burst)的处理,漏桶算法能够强行限制数据的实时传输(处理)速率,对突发流量不做额外处理;而令牌桶算法能够在限制数据的平均传输速率的同时允许某种程度的突发传输。
星哥玩云
2022/07/27
4.8K0
Nginx 限流配置详解
通过Nginx对API进行限速
API 限速的主要目的是控制对 API 的访问频率和数据使用量,以保护 API 和后端服务的稳定性和可靠性。当接收到大量请求时,可能导致服务器过载或响应时间变慢,限制 API 的访问速率可以避免这种情况的发生。此外,API 限速还可以保护 API 免受恶意攻击,如 DDoS 攻击和暴力攻击。另一个原因是,API 提供者可能想要限制 API 的数据使用量,以确保他们的 API 不被滥用或过度使用。可以通过限制每个用户可以请求的数据量,达到该目的,以便 API 提供者可以控制服务的成本和资源使用率。综上所述,API 限速是一种有效的措施,可以确保 API 的稳定性和可靠性,防止 API 被恶意攻击和滥用。Nginx 是当前非常受欢迎的 Web 服务器和反向代理服务器。在高并发、高负载的 Web 场景中,Nginx 的高性能、稳定性和可扩展性优势得到了广泛认可,因此 Nginx 在这些场景下往往是最佳选择。Nginx 也支持 HTTP、HTTPS、SMTP、POP3 等多种协议,以及负载均衡、缓存、反向代理、安全控制等多种功能,使得它可以适用于各种不同的 Web 代理场景。
小阑本阑
2023/07/27
5430
通过Nginx对API进行限速
Nginx 防御CC攻击的两种方法 原
CC攻击可以归为DDoS攻击的一种。他们之间都原理都是一样的,即发送大量的请求数据来导致服务器拒绝服务,是一种连接攻击。CC攻击又可分为代理CC攻击,和肉鸡CC攻击。代理CC攻击是黑客借助代理服务器生成指向受害主机的合法网页请求,实现DOS,和伪装就叫:cc(ChallengeCollapsar)。而肉鸡CC攻击是黑客使用CC攻击软件,控制大量肉鸡,发动攻击,相比来后者比前者更难防御。因为肉鸡可以模拟正常用户访问网站的请求。伪造成合法数据包。防御CC攻击可以通过多种方法,禁止网站代理访问,尽量将网站做成静态页面,限制连接数量等。
拓荒者
2019/03/11
2.5K0
nginx做cache服务器与nginx限流配置详解
分析nginx缓存过程 第一步:访问了两个URL:http://192.168.56.101/index.html,http://192.168.56.101/b.jpg。
菲宇
2019/06/12
1.4K0
nginx做cache服务器与nginx限流配置详解
Tengine/Nginx限速简介及配置
Nginx主要有两种限速方式:按连接数限速(ngx_http_limit_conn_module)、按请求速率限速(ngx_http_limit_req_module)。超出限制的请求会直接拒绝,可防御简单的cc攻击
4xx.me
2022/06/09
8790
Tengine/Nginx限速简介及配置
DDoS 攻击的本质与防御体系构建
分布式拒绝服务(DDoS)攻击是网络安全领域最具破坏力的威胁之一。攻击者通过控制海量被入侵设备(僵尸网络)或滥用云资源,向目标系统发起持续性、大规模的流量冲击,旨在耗尽其带宽、CPU、内存等核心资源,导致正常用户无法访问服务。根据《快快网络 2025 年 DDoS 攻击趋势白皮书》,全球日均攻击峰值已突破 7.2Tbps,混合型攻击(如 UDP Flood 叠加 HTTP CC 攻击)占比超 65%,金融、电商等高价值行业成为主要目标。
用户10637826
2025/06/20
820
通过nginx配置文件抵御攻击,防御CC攻击的经典思路!
其实很多时候,各种防攻击的思路我们都明白,比如限制IP啊,过滤攻击字符串啊,识别攻击指纹啦。可是要如何去实现它呢?用守护脚本吗?用PHP在外面包 一层过滤?还是直接加防火墙吗?这些都是防御手段。不过本文将要介绍的是直接通过nginx的普通模块和配置文件的组合来达到一定的防御效果。
黄啊码
2020/05/29
3.2K0
相关推荐
nginx防止DDOS攻击配置(一)
更多 >
交个朋友
加入HAI高性能应用服务器交流群
探索HAI应用新境界 共享实践心得
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验