服务器被攻击了,第一次,有点无所适从

216 天前
 nnegier

服务器是阿里云买的一个 2 核 2G 的 ECS ,没有开通什么高防,因为收费和不知道其原理的原因(怕超量扣很多钱),所以我现在连什么情况都不知道,我估计是大量的接口请求导致的,因为 CPU 飙升 100%,之前都是 2%到 3%。

我目前是关掉了域名解析,服务器重启,暂避锋芒,不关掉解析 CPU 掉不下来。然后现在正常了。

我目前主要倒不是生气,倒有点觉得技不如人,可能是没有对我造成太大的损失,那产品就没几个用户,真不知道攻击者想啥,但大概率攻击者是用户之一。我想请问有什么书籍可以让我对 Web 防护有一些策略吗,我趁此机会好好学习一下。另外感谢那位哥只攻击了我一个域名。

另外我还想问问,这种请求攻击是不是就是无解?我目前想到的是短时间禁掉高频访问的 ip ,就是 tcp/ip 流量进来我就给那个 ip 给 close 了,这个有用吗?说实话这种攻击我感觉挺无力的,除了攻击者不想搞事了,还有一种办法就是进局子了,不然没完没了。

至于具体的情况,是不是我说的请求攻击,我会先问一下阿里云那面,也希望攻击者歇歇,不然真得报警了。最后,求书,求点策略,我是搞 java 的,但这里好像并不用限定这个开发语言。

8069 次点击
所在节点    站长
47 条回复
lasuar
215 天前
重要业务那只能上高防,小业务就是多域名,cf 是低层本方案。
dode
215 天前
要求登录
zbatman
215 天前
带宽有多少啊,印象中阿里云带宽很贵,2h2g 这种低配的,带宽也就 10M ,跑满也不至于 cpu 占满吧
Nosub
215 天前
建议看看这个,其实阿里云有完整的分析流程,攻击你服务器没有价值哦,https://nosub.net/posts/p/100
xinge666
215 天前
99 元那个 2C2G 吗,那个 CPU 和硬盘的性能巨差,基本上稍微压力大点就 99%,编译安装个软件都要半天
Nosub
215 天前
@xinge666 此言差矣,同款服务器,我服务器跑了 Java ,postgresql ,redis ,rabbitMQ ,NGINX ,很稳定啊。
stobacco
215 天前
看对方是 cc 攻击还是 ddos 攻击,如果是 cc 的话,设置一下请求策略,比如一个 ip 一分钟最大请求次数等等。

如果是 ddos 的话,只能硬抗或者拔网线,防御方法就是尽量不要泄露服务器真实 ip ,比如不要将域名解析直接指向服务器 ip ,而是套一层 cdn 等方式,当然还是有方式可以溯源到你的服务器真实 ip ,这里有一篇文章,可以看一下: https://www.51cto.com/article/624770.html
darkengine
215 天前
SSH 还能连上吗,进去看什么进程占的 CPU
nnegier
215 天前
@stobacco APP 接口域名可以套 cdn 吗?静态网页等资源我是有套 cdn 的
nnegier
215 天前
@darkengine 等我买个 1 个月的服务器再好好研究这个,那个服务器有重要服务,目前是直接先解决问题,重启断故障域名解析解决
darkengine
215 天前
还有比较基础的就是 Redis, MySQL 的端口如果开放了极容易被挂挖矿脚本,CPU 100%就很正常了
totoro52
215 天前
你不会域名直接解析到服务器上吧? 单纯的 CC 可以套 CF 或者一些国内免费的 DNS 去隐藏服务器的真实 IP ,而且基本都带 CC 防护
xinge666
215 天前
@Nosub #26 奇怪了,我 apt upgrade 都很慢。可能限制性能的太严重了
bug123
215 天前
又不是 ddos ,不用套 cloudflare ,nginx 限制单个 ip 频率就行了
Hopetree
215 天前
我之前网站有的页面被单个 IP 有规律的频繁请求,频率高但是不是并发请求(但是其实对我没有任何影响),后面我写了个脚本,去查 Nginx 日志,把这种在一定时间内高频率请求的都丢黑名单里。其实 Nginx 自身也可以配置请求禁用,但是我感觉没自己写的灵活
SillyGod
215 天前
关掉解析就没事了,显然不可能是真正的攻击,因为对方甚至都没打你 IP 。
大抵就是项目的 BUG ,如果真是谁发现了你的站随便 CC 几下玩玩,那开个 WAF 防 CC 就完了(高频把请求 IP 拉黑)
stobacco
215 天前
@nnegier #29 当然可以,在 cdn 设置里面设置规则,所有全不缓存就行了
WoneFrank
215 天前
先定位问题在哪,你的 web 服务如果是单 jar 包起的,那么如果没起 jar 包没开 web 服务 cpu 还是 100%,或者高占用,就说明是别的进程占了,不是 web 的问题,需要一步步看。

你如果提供服务,可以注册接口放在 cloudflare 后面,正常业务和其他接口就不用套了,log 细一点,如果有人登陆后打接口,你从 log 可以看到 cookie 之类的就能定位是谁了
robinchina
215 天前
封 IP ,可能是爬虫····
biglee0304
215 天前
接 cdn ,cdn 上配置一些现成的限流、封禁规则,做好带宽上限设置,免得睡一觉起来天价账单

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

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

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

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

© 2021 V2EX