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

DDOS攻击的简单防范

作者头像
javascript.shop
发布于 2019-09-04 08:33:30
发布于 2019-09-04 08:33:30
1.5K00
代码可运行
举报
文章被收录于专栏:杰的记事本杰的记事本
运行总次数:0
代码可运行

一、DDOS 是什么?

首先,我来解释一下,DDOS 是什么。

举例来说,我开了一家餐厅,正常情况下,最多可以容纳30个人同时进餐。你直接走进餐厅,找一张桌子坐下点餐,马上就可以吃到东西。

很不幸,我得罪了一个流氓。他派出300个人同时涌进餐厅。这些人看上去跟正常的顾客一样,每个都说”赶快上餐”。但是,餐厅的容量只有30个人,根本不可能同时满足这么多的点餐需求,加上他们把门口都堵死了,里三层外三层,正常用餐的客人根本进不来,实际上就把餐厅瘫痪了。

这就是 DDOS 攻击,它在短时间内发起大量请求,耗尽服务器的资源,无法响应正常的访问,造成网站实质下线。

DDOS 里面的 DOS 是 denial of service(停止服务)的缩写,表示这种攻击的目的,就是使得服务中断。最前面的那个 D 是 distributed (分布式),表示攻击不是来自一个地方,而是来自四面八方,因此更难防。你关了前门,他从后门进来;你关了后门,他从窗口跳起来。

二、DDOS 的种类

DDOS 不是一种攻击,而是一大类攻击的总称。它有几十种类型,新的攻击方法还在不断发明出来。网站运行的各个环节,都可以是攻击目标。只要把一个环节攻破,使得整个流程跑不起来,就达到了瘫痪服务的目的。

其中,比较常见的一种攻击是 cc 攻击。它就是简单粗暴地送来大量正常的请求,超出服务器的最大承受量,导致宕机。我遭遇的就是 cc 攻击,最多的时候全世界大概20多个 IP 地址轮流发出请求,每个地址的请求量在每秒200次~300次。我看访问日志的时候,就觉得那些请求像洪水一样涌来,一眨眼就是一大堆,几分钟的时间,日志文件的体积就大了100MB。说实话,这只能算小攻击,但是我的个人网站没有任何防护,服务器还是跟其他人共享的,这种流量一来立刻就下线了。

本文以下的内容都是针对 cc 攻击。

三、备份网站

防范 DDOS 的第一步,就是你要有一个备份网站,或者最低限度有一个临时主页。生产服务器万一下线了,可以立刻切换到备份网站,不至于毫无办法。

备份网站不一定是全功能的,如果能做到全静态浏览,就能满足需求。最低限度应该可以显示公告,告诉用户,网站出了问题,正在全力抢修。

这种临时主页建议放到 Github Pages 或者 Netlify,它们的带宽大,可以应对攻击,而且都支持绑定域名,还能从源码自动构建。

四、HTTP 请求的拦截

如果恶意请求有特征,对付起来很简单:直接拦截它就行了。

HTTP 请求的特征一般有两种:IP 地址和 User Agent 字段。比如,恶意请求都是从某个 IP 段发出的,那么把这个 IP 段封掉就行了。或者,它们的 User Agent 字段有特征(包含某个特定的词语),那就把带有这个词语的请求拦截。

拦截可以在三个层次做。

(1)专用硬件

Web 服务器的前面可以架设硬件防火墙,专门过滤请求。这种效果最好,但是价格也最贵。

(2)本机防火墙

操作系统都带有软件防火墙,Linux 服务器一般使用 iptables。比如,拦截 IP 地址1.2.3.4的请求,可以执行下面的命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ iptables -A INPUT -s 1.2.3.4 -j DROP

iptables 比较复杂,我也不太会用。它对服务器性能有一定影响,也防不住大型攻击。

(3)Web 服务器

Web 服务器也可以过滤请求。拦截 IP 地址1.2.3.4,nginx 的写法如下。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
location / {
  deny 1.2.3.4;
}

Apache 的写法是在.htaccess文件里面,加上下面一段。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<RequireAll>
    Require all granted
    Require not ip 1.2.3.4
</RequireAll>

如果想要更精确的控制(比如自动识别并拦截那些频繁请求的 IP 地址),就要用到 WAF。这里就不详细介绍了,nginx 这方面的设置可以参考这里这里

Web 服务器的拦截非常消耗性能,尤其是 Apache。稍微大一点的攻击,这种方法就没用了。

五、带宽扩容

上一节的 HTTP 拦截有一个前提,就是请求必须有特征。但是,真正的 DDOS 攻击是没有特征的,它的请求看上去跟正常请求一样,而且来自不同的 IP 地址,所以没法拦截。这就是为什么 DDOS 特别难防的原因。

当然,这样的 DDOS 攻击的成本不低,普通的网站不会有这种待遇。不过,真要遇到了该怎么办呢,有没有根本性的防范方法呢?

答案很简单,就是设法把这些请求都消化掉。30个人的餐厅来了300人,那就想办法把餐厅扩大(比如临时再租一个门面,并请一些厨师),让300个人都能坐下,那么就不影响正常的用户了。对于网站来说,就是在短时间内急剧扩容,提供几倍或几十倍的带宽,顶住大流量的请求。这就是为什么云服务商可以提供防护产品,因为他们有大量冗余带宽,可以用来消化 DDOS 攻击。

一个朋友传授了一个方法,给我留下深刻印象。某云服务商承诺,每个主机保 5G 流量以下的攻击,他们就一口气买了5个。网站架设在其中一个主机上面,但是不暴露给用户,其他主机都是镜像,用来面对用户,DNS 会把访问量均匀分配到这四台镜像服务器。一旦出现攻击,这种架构就可以防住 20G 的流量,如果有更大的攻击,那就买更多的临时主机,不断扩容镜像。

六、CDN

CDN 指的是网站的静态内容分发到多个服务器,用户就近访问,提高速度。因此,CDN 也是带宽扩容的一种方法,可以用来防御 DDOS 攻击。

网站内容存放在源服务器,CDN 上面是内容的缓存。用户只允许访问 CDN,如果内容不在 CDN 上,CDN 再向源服务器发出请求。这样的话,只要 CDN 够大,就可以抵御很大的攻击。不过,这种方法有一个前提,网站的大部分内容必须可以静态缓存。对于动态内容为主的网站(比如论坛),就要想别的办法,尽量减少用户对动态数据的请求。

上一节提到的镜像服务器,本质就是自己搭建一个微型 CDN。各大云服务商提供的高防 IP,背后也是这样做的:网站域名指向高防 IP,它提供一个缓冲层,清洗流量,并对源服务器的内容进行缓存。

这里有一个关键点,一旦上了 CDN,千万不要泄露源服务器的 IP 地址,否则攻击者可以绕过 CDN 直接攻击源服务器,前面的努力都白费。搜一下”绕过 CDN 获取真实 IP 地址“,你就会知道国内的黑产行业有多猖獗。

cloudflare 是一个免费 CDN 服务,并提供防火墙,高度推荐。

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
DDOS 攻击的防范教程
一个多月前,我的个人网站遭受 DDOS 攻击,下线了50多个小时。这篇文章就来谈谈,如何应对这种攻击。 需要说明的是,我对 DDOS 并不精通,从没想过自己会成为攻击目标。攻击发生以后,很多素昧平生的
ruanyf
2018/07/04
2.7K0
防御DDOS攻击
首先要保证网络设备不能成为瓶颈,因此选择路由器、交换机、硬件防火墙等设备的时候要尽量选用知名度高、口碑好的产品。再就是假如和网络提供商有特殊关系或协议的话就更好了,当大量攻击发生的时候请他们在网络接点处做一下流量限制来对抗某些种类的DDoS攻击是非常有效的。
误入歧途
2024/05/08
1K0
dos/ddos攻击与防范_ddos和dos
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
9970
CDN能防ddos攻击吗?CDN 面对DDoS能够做什么?
面对日益复杂的DDoS攻击环境,CDN像是一块安全防御盾牌!那么cdn能防ddos攻击吗?CDN 面对DDoS能够做什么?
超级科技
2021/03/24
5.5K0
如何解决ddos攻击?
容量耗尽型DDoS攻击(volumetric DDoS attacks)来说,它并不需多大规模即可造成影响,它只需要与你的网络管道一样大。换言之,发动一次容量耗尽型DDoS攻击要比想象中容易的多。
拾光博客
2023/05/16
1.5K0
互联网创业公司如何防御ddos攻击风险_怎么防止ddos
DDoS(Distributed Denial of Service,分布式拒绝服务)主要通过大量合法的请求占用大量网络资源,从而使合法用户无法得到服务的响应,是目前最强大、最难防御的攻击之一。
全栈程序员站长
2022/11/16
1.9K0
互联网创业公司如何防御ddos攻击风险_怎么防止ddos
什么是DDOS攻击?它的原理是什么?它的目的是什么?
网站最头痛的就是被攻击,常见的服务器攻击方式主要有这几种:端口渗透、端口渗透、密码破解、DDOS攻击。其中,DDOS是目前最强大,也是最难防御的攻击方式之一。
拾光博客
2023/05/16
1.2K0
服务器经常被ddos攻击怎么办?
DDOS攻击全称分布式拒绝服务(Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。
拾光博客
2023/05/16
2.5K0
服务器经常被ddos攻击怎么办?
如何检测DDoS攻击?
DDoS检测需结合流量分析、协议检测、行为建模、资源监控,并借助自动化工具(如WAF、IDS/IPS、云防护)实现快速响应。
西里网
2025/07/10
1940
防御DDOS攻击方法
那么什么是拒绝服务(Denial of Service)呢?可以怎么理解,凡是能导致合法用户不能正常访问网络服务的行为都算是拒绝服务攻击。也就是说拒绝服务攻击的目的非常明确,就是要阻止合法用户对正常网络的访问,从而达成攻击者不可告人的目的。
紫禁玄科
2022/03/24
5.8K0
防御DDOS攻击方法
DDOS攻击来袭?这份免费防御秘籍助你轻松应对!
我相信你在技术探索的过程中,你一定遇到过DDOS攻击。服务器黑洞或者导致你项目不能正常请求,这都是DDOS攻击导致的。DDOS攻击通过大量虚假流量淹没目标服务器,使其瘫痪,导致正常用户无法访问服务。这种攻击不仅会给企业/个人带来巨大的经济损失,还会带来名誉上的损害。可能各位觉得面对攻击我们会束手无策,那么这篇文章可能会改变你的想法。
VyrnSynx
2025/01/23
4272
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
7K0
浅析高防云服务器是如何防御DDoS攻击?
作为当前一种最常见的网络攻击方式,DDoS攻击导致很多企业用户的网站业务或主机/服务器深受其害。DDoS攻击也因其“破坏性较大、难以防范,且无法彻底根除”等特点,成为云计算服务、IDC、游戏、电商等多个行业的“公敌”。
用户7261497
2020/06/05
9.1K0
浅析高防云服务器是如何防御DDoS攻击?
渗透测试培训之 网络协议详解
OSI七层参考模型分层包括物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
释然IT杂谈
2022/10/27
1.6K0
渗透测试培训之 网络协议详解
攻击科普:DDos (下)
选IDC或者云主机时,要查看是否有临时增加带宽,高防服务,冗余等等。这些信息的了解有助于在遇到攻击时帮助解决一部分问题。
陈不成i
2021/05/26
3.9K0
应对DDoS攻击的深度防御实践
在互联网空间中,分布式拒绝服务(DDoS)攻击是一种严重的网络安全威胁,它能够瞬间耗尽目标系统的处理能力或网络带宽,导致服务中断。本文将深入探讨DDoS攻击的本质及其防范机制,并辅以代码实例展示如何在实际场景中实施有效防御。
群联云安全小杜
2024/04/26
6320
应对DDoS攻击的深度防御实践
认识和了解DDoS攻击[DDoS]
在当今数字化的世界中,网络安全已经成为企业和个人必须高度关注的问题之一。DDoS攻击(分布式拒绝服务攻击)是网络安全领域的一项严重威胁,它可以瘫痪甚至关闭您的在线服务,对业务运营造成重大损害。本系列博客将为您提供有关DDoS攻击的深入了解,并提供防护策略,以确保您的网络安全。
九笙
2025/07/14
3690
如何防御大流量例如cc和ddos这种攻击
最近看见一些我的朋友遭受了各种网站攻击,于是就有了这篇博文,主要讲解如何防御大流量消耗资源的方案。
乔千
2020/04/16
3.4K0
一文了解如何有效的防护DDoS攻击
想象一下有人使用不同的电话号码一遍又一遍地打电话给你,而你也无法将他们列入黑名单。最终你可能会选择关闭手机,从而避免骚扰。这个场景就是常见的分布式拒绝服务(DDoS)攻击的样子。
网络工程师笔记
2021/05/17
5.3K0
一文了解如何有效的防护DDoS攻击
网站被攻击了该怎么办?如何恢复网站,如何避免网站被攻击?
如果要发起ARP欺骗攻击,首先要与网站为同一个机房、同一个IP段、同一个VLAN的服务器的控制权,采用入侵别的服务器的方式。拿到控制权后利用程序伪装被控制的机器为网关欺骗目标服务器。这种攻击一般在网页中潜入代码或者拦截一些用户名和密码。对付这类攻击比较容易,直接通知机房处理相应的被控制的机器就可以了。
德迅云安全--陈琦琦
2023/11/29
1.2K0
相关推荐
DDOS 攻击的防范教程
更多 >
交个朋友
加入架构与运维学习入门群
系统架构设计入门 运维体系构建指南
加入[架构及运维] 腾讯云技术交流站
云架构设计 云运维最佳实践
加入架构与运维工作实战群
高并发系统设计 运维自动化实践
换一批
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档