DDoS 记录帖
第三次 May 15, 2024 (Asia/Shanghai)
先是 caddy 挂了,我以为是程序跑飞了,其实不是,查日志看挂掉的原因是 OOM kill,就是被 D 了。
caddy 这个 go 程序挺优质的,基本不会跑飞。
后面我用 Restart=always 运行 caddy,则请求全转发到了 ruby,吃完全部资源,说明了:
discourse 容器里的反代 nginx 的 rate limit 毛用没有 😉
[graphviz]
digraph simple
{
a -> b1 [label=" ✔️"];
b1 -> c -> d;
a -> b2 [ label="❌"];
b2 -> c;
a [label="访客"];
b1 [label="under attack: 经过 CF 清洗后到达不监听公网端口的 cloudflared"];
b2 [label="normally: caddy 0.0.0.0:443"];
c [label="nginx in docker bundled with discourse with rate limit"];
d [label="Unicorn(Ruby App's HTTP server) running backend: Rails"];
}
[/graphviz]











caddy 不抗 d
虽然我中途调整了 xjtu.app 仅仅 respond "交大門正在被网络攻击,攻击流量已结束",这时候攻击流量仅在 caddy,导致 caddy 占用 560% 的 CPU(6 核占满),你甚至连“交大門正在被网络攻击”几个字都看不到。
攻击进行 de 断断续续,让我怀疑应该是有人在后面操作。
我只好关掉了 caddy,换用 CF Argo Tunnel 拉之后,这回轮到 cloudflared 负载达到 260% 了(这让我有点恐慌 😵💫),我只好在控制台打开了Under Attack Mode,这回需要人机验证了:

过了一小会负载正常了,也许是 CF 滤掉了流量,也许是攻击者休息一下打交去了 🐍。
让我们看看这一波攻击的流量有多猛: 

看看 CF 的日志,是哪些 IP 在攻击呢?


对这些 IP 的攻击者,如果听得懂的话,我想说:谢谢你,因为有你让我第一次亲身应对 ddos,欢迎再来打,还是要多打,不要歇。
最后,超级感谢 CloudFlare 公司的网络服务
造福我这样的穷蛆。
服务器厂商除了 OVH 抗打,建站老老实实用 CF,不要抱有侥幸心理。NetCup 性价比虽全球独树一帜,但不抗打。NetCup root server 是杜甫,你要一直打,CPU 占满也不会被停机。所以最好能写个脚本监控状态,自动启停服务/更换线路/切换被 attack 级别。
之前 CloudFlare 公司有小可爱给我发邮件,问我个有空单独联系他们。我虽然没钱换付费套餐,但觉得非常荣幸。
您好,
我是 Cloudflare 的客户顾问 <redacted>,主要负责您的账户事宜。
我有留意到您的账号在 Cloudflare 上已经使用了一段时间,不知道您目前为止的使用体验如何?非常希望有机会跟您聊一下,为您提供一些有帮助的优化信息,可以在账户和相关配置方面以及业务调整方面能帮到您,让您有一个最佳的体验。
您可以添加我签名中的任何联系方式:
<redacted>
如果您方便的话,我真诚希望就账户和相关配置和您做个简单的沟通。如您平日业务繁忙,是否能麻烦您帮忙引荐一下其他负责技术方面的同事跟我对接。
期待您的回复,谢谢!
顺祝商祺!
可能以为我是 XJTU 的雇员,然而我是 one-man :)
美国公司就是会做生意,这种营销邮件不像某些公司那样谈钱,让你买买买、升级,CF 只是说:
我真诚希望就账户和相关配置和您做个简单的沟通。
让人觉得非常温馨,我要有钱了肯定会花钱的。
第一次 May 11, 2024 (Asia/Shanghai)
Fri May 10 2024, 18:58:05 CEST
空心菜 1:04 am
刚才有点诡异
服务器,容器都没有重启,遇到 502 错误,突然高负载甚至 discourse 出现 extreme load 的横幅
第二次 May 13, 2024 (Asia/Shanghai)
Mon May 13 2024, 03:47:59 CEST
空心菜 10:14 pm
我怀疑我们网站刚才是被 DDoS/CC 攻击了
空心菜 10:16 pm
刚才服务器压力巨大,我把唯一暴露在公网的 web 服务器 caddy 给停掉就好了
空心菜 10:18 pm
在我发现这个问题之后,停掉了 caddy,这段时间浏览器应该显示无法连接。我在这段时间配置了使用 cloudflare argo tunnel,通过 CF 网络访问本站,保证公网 443 端口没有东西
我昨天还怀疑可能是 Discourse 程序跑飞了,刚才我测试了重启 caddy 之后立马 cpu 占满,vnstat/iftop 看到异常的流量
好在我的服务器是 6C16G 独服,要是早先的 2C2G 恐怕 SSH 都用不了
空心菜 10:23 pm
从今天开始我将完全依赖 CloudFlare 的保护,至于网速应该没有多大影响,因为原来的服务器在德国,本来就不指望有大陆优化
见证了一段小小网络战斗。
但是好奇这些人为什么要打别人网站。钱太多了,一时兴起?感觉不像是门中仇人。
hoist 从手法上看,攻击者不像非常专业的 cracker,例如他没有扫服务器公网端口的其他服务,只是对 xjtu.app 这个 host 做攻击,攻击过程也是三天打鱼两天晒网,同一次攻击中也是断断续续,且都是半夜/凌晨时分。从 CF 记录的 ip 来看,不像发动某个巨大的僵尸网络来攻击。
所以是打着玩的?😀
年月擦身过,暂且问,会更好吗?
DDoS attacks are illegal. According to the Federal Computer Fraud and Abuse Act, an unauthorized DDoS attack can lead to up to 10 years in prison and a $500,000 fine. Conspiring to do so can lead to 5 years and $250,000. However, these serious consequences are applicable to attacks launched without permission.
搞不好就是某个小学生干的。
更新:第四次被 D
百万级别请求数


Previous 24 hours
| Country / Region | Traffic |
|---|---|
| China | 1,514,981 |
| United States | 978,837 |
| India | 698,209 |
| Hong Kong | 473,961 |
| Singapore | 469,799 |
开 under attack mode 后(负载还是有点大):

弱点分析:
由于开启了强制用户登陆,没有登陆的用户只能访问 /login(访问 / 时 301 自动跳转),Discourse 生成这一页面很耗资源(?)并且没有被 CDN 缓存(?)

自黄药师黄仁勋来,世人皆爱猫。余独爱老鼠之,可爱之态,活泼之动,实为人所难以抗拒。喵~
🐁 🐁 🖱️ 🪤
![]()
IO 牛逼
Soyo34325 举办了,冇用,就填了个表,没有下文了




