一个笨拙的抵挡 DDoS 的方法

2018-08-19 14:06:37 +08:00
 kongque2016
我的 vps 上架设的是论坛,我想到一个方法来抵挡 DDoS 攻击,下面是步骤:

1,事先给 TCP 连接数设一个上限,发现被突破了,就认定为有人在 DDoS。
2,检查当前所有 http 连接,如果是注册会员,则把相应 IP 送入紧急白名单。否则,断开连接。
3, 接收到新的 http 访问时,核对其 IP 是否在白名单里。如果不是,转向一个登录(或注册)页面,要求他 3 分钟必须登录进来,否则禁掉这个 IP。

这个方法的 bug,我现在想到有两个:
1,DDoS 的攻击者是不是能轻易伪造自己的 IP 呢,如果这样的话,这个方法就没意义了。
2,我 VPS 的防火墙禁了这些 DDoS 的 IP,是不是照样的产生流量。就是说,禁 IP 虽然能保全 VPS 自己,但网络端口照样有大量 IP 包涌过来(虽然我不收),网络照样被堵住?

我对 DDoS 不熟悉,这个方法是凭空想出来的。请大家轻拍~
13882 次点击
所在节点    Linux
105 条回复
isCyan
2018-08-19 14:11:42 +08:00
由于 bug 2 这个方法无效
chinvo
2018-08-19 14:13:03 +08:00
DDoS 攻击者无法伪造 IP
但是 DDoS 可以堵死母鸡和 IDC 路由
CESAFE
2018-08-19 14:14:15 +08:00
除了硬抗,或者拉近黑名单 没其他办法~
lhx2008
2018-08-19 14:17:30 +08:00
没用,HTTP 的 TCP timeout 就几十秒
t6attack
2018-08-19 14:19:00 +08:00
独立服务器勉强能采取一点措施。VPS 和防 DDOS 基本沾不上边。

你的网站是一间屋子,而大规模 DDOS,是直接堵门。你在屋里任何防御措施都没用。
防范 DDOS,是机房的事。你防的,其实是小规模 CC 攻击。
loqixh
2018-08-19 14:19:59 +08:00
分清 CC 攻击和 DDoS
DDoS 是直接发包的, 根本不会达到应用层
了解一下常用的 dns 反射放大攻击
http://www.freebuf.com/articles/network/76021.html
kongque2016
2018-08-19 14:38:44 +08:00
@所有人 谢谢大家,我在往上搜了不少文章,还是各位说得明白。
但我看到网上有文章里说 DDoS 时用封 IP 来应对,例如这儿: https://www.cnblogs.com/xuepython/p/6780789.html
是为什么呢?
kongque2016
2018-08-19 14:40:43 +08:00
@CESAFE 感谢回复!“拉近黑名单”,是什么黑名单呢?我看大家都说封 IP 无效啊。
webjin1
2018-08-19 14:50:05 +08:00
ddos 打带宽流量,cc 打 cpu 内存资源
vazo
2018-08-19 14:51:52 +08:00
@t6attack 补充一下,机房就相当于你家物业安保,对方人少你自己能对付,人多了的就要找安保帮忙。
realpg
2018-08-19 14:56:02 +08:00
DDoS 能挡?
笑……
just1
2018-08-19 14:56:46 +08:00
你在一个孤岛,只有一条公路可以跟外面连通,ddos 就是洪水把路摧毁了,进也进不去出也出不来。cc 就是派好多车过来,塞车了。
gamexg
2018-08-19 14:57:46 +08:00
@kongque2016 #7 那个作者可能弄混了概念,把 cc 当作 ddos 了。

按我的理解, 一般 ddos 是通过放大攻击搞的,例如:攻击者控制 100 台肉鸡,肉鸡向互联网上的 1w 台 dns 服务器发出 dns 请求,但是源地址伪装成被攻击者 ip。dns 服务器就会向着 被攻击者发出 dns 响应。通过专门构建的 dns 请求,可以做肉鸡发出很小的包,但是 dns 服务器回应一个巨大的包来放大攻击流量,大量的流量直接占满服务器宽带来做到拒绝服务攻击。
一些其他服务也能做到这种放大。

被攻击的主要目的是宽带,比如服务器只有 100M 的宽带,但是 ddos 的流量达到了 1g,直接宽带满了,服务器再防御也没用。
换算到现实类似于到工厂的路只能跑 100 辆车,但是攻击者做了 1w 辆车去,道路直接堵死,工厂内怎么优化也没用。这时候只能联系公路局扩路(升级宽带)或者联系交警提前在主干道、高速公路设卡,发现目的地是工厂的就直接检查是否是正常请求,不是直接在主干道拦截(中国电信云堤))。


cc 是发出少量大资源消耗的请求来攻击,例如搜索等请求有高数据库 cpu 占用,那么专门发出少量的搜索请求就足够让数据库卡顿。
realpg
2018-08-19 15:15:57 +08:00
@chinvo #2
啥?不能伪造 IP ?
kongque2016
2018-08-19 15:16:05 +08:00
@gamexg 谢谢,说得好明白。不过我又有一个问题,这样一来,我的 VPS 托管厂商难道检测不到?它攻击我的 VPS,必然要经过 VPS 厂商的物理网卡进来,对 VPS 所在的整个物理主机都有冲击吧? VPS 厂商为了不影响其它 VPS,会不会帮我做点儿什么?
realpg
2018-08-19 15:17:24 +08:00
@just1 #12

CC 其实是在收费站缴通行费五万时候 你给的全是 1 分钱硬币 让窗口数……
lscho
2018-08-19 15:17:29 +08:00
ddos 是什么了解一下?不是 cc。。ddos 意思就是你服务器只有 100m 带宽,我就每秒给你发大于 100m 的数据,根本不需要到达应用层,直接网络就堵死了。

你说的是 cc
kongque2016
2018-08-19 15:18:14 +08:00
@realpg 我写过网卡驱动,发送 IP 包时,自己的 IP 字段可以任意填,不过你填错了,应答包回不来。好像是这样。
gamexg
2018-08-19 15:19:17 +08:00
@kongque2016 会做点什么,例如停机外加联系运营商将 ip 加到黑洞,骨干网所有路由器直接丢弃目的地是 vps 的数据。
lscho
2018-08-19 15:20:57 +08:00
@kongque2016 当然有这样的服务,黑洞清洗了解一下,高防 ip 了解一下价格。。。流量是你带来的,所以要么你交钱,要么流量到达一定程度后关停你的服务器

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/481157

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX