机器在香港,未备案,从上周末开始,一直持续被大规模攻击,目前使用的是 cloudflare 解析,能抵御部分攻击,但是攻击量大的时候还是无法抵御,导致服务器 CPU 内存全部被占满。
服务器是 nginx,设置了各种防护,也开启了宝塔防火墙,禁止国外 IP 等等,都没有太大的用处。
现在在 cloudflare 上开启了 CDN 和挑战页,但是这样下去,网站经常打不开,排名也快掉完了。
咨询了几家国内的做 CDN 的,据说都是无视一切 CC 攻击,但是要价一个月 5K-5W 不等。
请问是否有什么其他的解决方案呢?谢谢各位了!
1
cst4you 2019-09-20 09:28:31 +08:00
nginx cookie
|
2
frozenway 2019-09-20 09:33:51 +08:00
CC 攻击基本都有特征,直接封就是了
|
3
ivmm 2019-09-20 09:40:49 +08:00
阿里云的 WAF,按量,不过容易产生添加账单。 如果包月个一月其实价格也还好
|
4
Robias OP @frozenway 我已经开启了禁止国外 IP 访问,但是还是能够有大量的国外 IP 来进行攻击,宝塔设置了规则,自动封禁,IP 太多了,封不完
|
7
DonnyChao 2019-09-20 09:42:51 +08:00 via Android
DNS 把国外访问解析给 8.8.8.8 ? 国内访问保持正常解析。
|
8
Robias OP @DonnyChao 这个好像还真不行,CF 不支持设置区域,上周日晚攻击实在太大(每小时 2TB 左右),我把所有的解析都解析到了 8.8.8.8,攻击确实停了一会儿,但是这样网站也无法打开,过了一段时间解析换回来后,又开始攻击。
|
11
frozenway 2019-09-20 09:54:42 +08:00
封 IP 是错误的做法,封不完。封 user——agent
|
12
tqyq88 2019-09-20 09:57:03 +08:00
好奇,请问你是什么站,为啥被盯上
|
13
xiaoyangsa 2019-09-20 10:07:53 +08:00
这个 lz 该用的都用了,只能砸钱了嘛。。
|
14
xiaoyangsa 2019-09-20 10:09:00 +08:00
@xiaoyangsa 这里先确认下是不是服务器 ip 漏了,可以换个服务器直接用 cloudflare 再试下
|
15
taotaodaddy 2019-09-20 10:13:01 +08:00 via Android
战略性马克
|
16
zqyisasd 2019-09-20 10:22:56 +08:00
不知道 奇安信网站卫士 和 知道创宇 能满足需求吗
|
17
Robias OP @xiaoyangsa 没有,攻击的目标是域名,最早是 index.php ,后来我把这个文件改名了,然后停了一段时间,在之后就开始攻击首页。CF 里换了解析 IP,就没事了。
|
18
laminux29 2019-09-20 10:26:53 +08:00 12
网站攻击的本质,是攻击者以 n 的代价,让防御者付出 m 的代价。其中 m 远大于 n,m 甚至比 n 大几个数量级。通俗来说,就是攻击者付出 1 元钱,防御者需要付出 10 元甚至百元。
大公司一般的防御做法是: 1.核心机房买高端防御设备。 2.在各地做好 cdn。 3.一旦有来自某个地域的攻击,就给当地的流量阈值下调,这样系统就不会因为来自一个地域的攻击而崩溃。 4.如果有同时来自不同地域攻击,这种基本上是大黑客或大公司所为,国内报网警。 小公司或个人来做防御,基本没辙。就算买了云服务,耗费的资金不会低,而且防御效果还不好。 楼主这种情况,如果是我遇到,我会做两手措施: 1.设计一套基于邮件的业务流,在这种断网的特殊情况下,业务全走邮件。这种方案的本质是把防御成本转嫁给邮件服务提供商,我方付出的资金成本会非常小,最多就只需要买一个收费 vip 邮箱就行了。 2.屏蔽所有国外 IP,屏蔽时间以 1 小时递增。比如,屏蔽 1 小时,无效就屏蔽 2 小时,再无效就屏蔽 3 小时.... |
19
utfqvfhpyygy 2019-09-20 10:32:06 +08:00
攻击固定地址,那先直接封掉这个地址,对你全站影响不大吧?
或者直接改成静态内容。他更换目标地址也麻烦把 |
20
utfqvfhpyygy 2019-09-20 10:35:50 +08:00
@Robias 能加 v 聊下吗?我对你这个问题很感兴趣
|
21
Robias OP @utfqvfhpyygy 他之前攻击 Index.php 这个文件,我把这个改掉之后,他停止了大约 5 个小时,估计是找不到方向了。但是这之后,就开始攻击域名了,也就是 www.aaa.com 了,不再攻击某个文件了。
|
22
Robias OP @laminux29 老哥,我这个站还真没法走邮件,而且您说的第二个屏蔽国外 IP 这个,我都已经屏蔽,并且封禁是一个月,但是对方应该是用代理 IP,总是有源源不断的国外+国内 IP,封不完啊。现在就两条路,要么花费高价钱买高防 CDN,要么关站。
|
23
utfqvfhpyygy 2019-09-20 10:49:48 +08:00
攻击域名,会造成域名解析问题,还是攻击你 nginx 的默认文件?请求有没有什么信息可以分析的?
|
24
Robias OP |
25
mywaiting 2019-09-20 10:53:23 +08:00
DDoS 都是堆钱的活
2TB 不是特别大的量,静态化吧,开多几台 nginx 在前端缓存,启用 nginx testcookie,cf CDN proxy 同时设置 CNAME 多个后端,抗下来不是大问题 精细化的 CC,其实没法防御的,特别是手里有大量小鸡的黑阔,打铁还需自身硬啊 |
26
Robias OP |
28
utfqvfhpyygy 2019-09-20 10:56:05 +08:00
@Robias 那就是访问你服务器的默认首页文件,这个文件是 php 还是静态文件?
|
29
utfqvfhpyygy 2019-09-20 10:57:07 +08:00
改一下 nginx 的配置就可以,你可以贴一下配置
expires 90d; |
30
Xusually 2019-09-20 10:57:19 +08:00
1、分析日志,根据 User-Agent 封禁。
2、Nginx cookie,设定 ip 相关 cookie,校验不通过拒绝或者跳转。 3、检查 ip 规则,忽略一些 x-forwarded-for 之类的代理 ip 穿透。 4、不管怎样,源站 ip 可以多换几次。 5、还是多分析日志吧。多少有规律的。 |
31
utfqvfhpyygy 2019-09-20 10:58:09 +08:00
静态文件也有带宽问题,你先找出访问的是哪个文件,再优化文件
|
33
love 2019-09-20 11:05:15 +08:00 9
解析到国务院 ip 来个同归于尽 :)
|
34
kooze 2019-09-20 11:09:32 +08:00
大哥,撞衫了。
|
35
gam2046 2019-09-20 11:17:09 +08:00
用了 CF,那源站直接拒绝掉除了 CF 以外的所有请求就可以了。
https://www.cloudflare.com/ips/ 并且可以开启 SSL 双向验证,验证客户端不是 CF 也一律拒绝。 https://support.cloudflare.com/hc/zh-cn/articles/204899617 |
36
lifeintools 2019-09-20 11:17:37 +08:00
@love 真这样做了 会怎么样。。。
|
37
love 2019-09-20 11:19:30 +08:00
@lifeintools 对方能不能抓到另说,你大概率跑不了
|
38
Robias OP @utfqvfhpyygy 默认文件是 index.html
|
39
ArcticL 2019-09-20 11:25:20 +08:00
CC 攻击规模较大的情况下是比较难办的,哪怕你做了限频,在请求聚类的这段时间只要量大一样能打挂你。如果网站是纯静态的上 CDN 就完了。
|
41
intouchables 2019-09-20 11:43:35 +08:00 via Android 5
|
43
40huo 2019-09-20 12:01:29 +08:00 1
五秒盾
|
44
PbCopy111 2019-09-20 12:06:39 +08:00
@intouchables #41 就喜欢这种小说,真棒!
|
45
Robias OP |
46
yytsjq 2019-09-20 12:13:46 +08:00
利用 CF 的 Page Rules,把特征流量转发到黑洞
|
47
lqw3030 2019-09-20 12:20:43 +08:00
你有没有想过某一个回复就是攻击者,哈哈哈
|
48
Robias OP @yytsjq page rules?我设置了 firewall rules 和 User Agent Rules,请问 page rules 是什么意思?
|
49
yytsjq 2019-09-20 13:10:59 +08:00 1
|
50
Devilker 2019-09-20 13:18:18 +08:00
哈哈哈哈哈哈哈哈哈 这事儿好办
就看你的域名重要不重要 不重要的话,低价买个备案的域名 去国内高防服务器买个宿迁 苏州 地区的 一个月 800 左右就搞定了。 |
51
Devilker 2019-09-20 13:27:30 +08:00
顺便说句 改 INDEX.PHP 没啥用
因为 你的新闻目录 也有 PHP 文件 皮肤文件夹,分类文件夹,DATA 文件夹,等分目录多多少少都会有 PHP 文件 用 PHP 嗅探器一扫,就出来了,照样可以用 CC 攻击 攻击你其他的 PHP 文件造成 CPU 100% 挂机 买高防服务器 但便宜的国内高防都需要域名备案的,所以上面问你域名对你重要与否。 你的站是什么站,对方有没有跟你提过什么要求? 我朋友系列,曾经有个朋友是搞这方面的,遇到两个菠菜站对打,一天 2 万美金互打,还有一些私人游戏的业务,经常会遇到这类。 |
52
samwalt 2019-09-20 13:50:45 +08:00
战略性 马克
|
53
Phant0m 2019-09-20 14:16:31 +08:00 via iPhone
宝塔封锁国外 ip 效率低吧?用 nginx geo 模块,直接根据 ip 归属地禁封会好一点。
|
54
mineqiqi 2019-09-20 14:35:16 +08:00
好刺激的帖子,看大佬的解答
|
55
justs0o 2019-09-20 14:50:37 +08:00
买几台高配的主机,装 CDNFLY,成本还可以
|
56
guozonggui 2019-09-20 14:52:28 +08:00
嗯。。。我们可以做抗 CC。不过就像你说的那样收费的范围。
|
57
Robias OP @frozenway 老哥,封 user agent 的话,会不会误封?比如某个人用的浏览器正好和我封的这个一致怎么办。
|
58
Robias OP |
59
frozenway 2019-09-20 14:59:35 +08:00 1
@ #57 宁杀错不放过
|
61
xiaoyangsa 2019-09-20 15:05:47 +08:00
@Devilker 这样要是原域名直接通过域名解析到后面这个高防域名也 ok 吧....国内的高防我遇到过会被 dianxin 直接封额。
|
62
newworld 2019-09-20 15:35:35 +08:00
@laminux29 #18 根据楼主网站是面向国内客户,就直接白名单机制,只允许国内访问,屏蔽国外,IP 段太多了。。。
同时 CF 做规则,只允许访问静态的资源,和必要的动态资源,比如登录注册这些,禁止直接访问其他非必要 php 文件,暂时关闭网站搜索功能,这些需要用到大量查询 IO 交互的操作。当然啦,最好就是上高防,大宽带机器,全部 CDN,更换主机 IP,只允许 CDNIP 段访问和管理 IP 访问,其余的全部拒绝,这样防御 CC 基本没啥大问题,DDOS 就另说,暂时是个世界性难题。 |
63
huangzxx 2019-09-20 15:42:13 +08:00
nginx + ip2location
直接根据地区 deny,可以抗一阵吗? |
64
rainfallmax 2019-09-20 15:57:24 +08:00
@love 太猛了
|
65
dingzi 2019-09-20 16:08:52 +08:00
上次遇到过,分析流量,写 cf 防火墙规则,把攻击流量挡防火墙外
|
66
winglight2016 2019-09-20 16:23:54 +08:00
现在黑客都这么厉害了吗?随便发起几百 G 的流量攻击?记得之前有个哥们业余也做这种“服务”,他说,都是按 G 收费的,一次攻击也就一两千个 IP 同时使用,估计还是有水分的。
|
67
Yourshell 2019-09-20 17:26:40 +08:00
是时候找同行聊一下天了。
|
68
Devilker 2019-09-20 17:31:19 +08:00
@xiaoyangsa 对,因为没备案,直接提示未备案。然后还在恶意跨白名单去解析,会封服务器,再严重,我甚至遇到过封整个机房的。
|
69
colorfulberry 2019-09-20 17:51:37 +08:00
直接 AWS 走负载均衡。 然后在 AWS 上是这防火墙规则。自己配置总是配不好。多来电机器吧。
可以用日本节点的 AWS。 |
70
Moker 2019-09-20 18:53:14 +08:00
如果用 CF 可以用 workers 直接在 CF 这层就屏蔽掉部分 ip 或者添加一些令牌验证 这样异常请求不会打到服务器
|
71
yezhiqiucn 2019-09-20 19:16:20 +08:00
只要流量到服务器你怎么样都无效的 毕竟单机效率太差
如果确认只要国内访问 CF 本身可以限制访问区域 https://docs.aws.amazon.com/zh_cn/AmazonCloudFront/latest/DeveloperGuide/georestrictions.html 更直接去 AWS 控制台 VPC,CreateNetworkAcl 默认拒绝所有入网流量 然后整理一份中国 IP 的列表 输入进去 可以用 cli 命令处理 |
72
stabc 2019-09-20 19:52:03 +08:00
登录 Cloudflare, 选择 Firewall -> Tools,往下拉,创建"rate limiting rules"。然后就可以限制了,比如对方某个 IP 一分钟刷了超过 30 次就自动屏蔽它 IP。这个几乎完美克制 CC 攻击,又不影响正常用户访问。
需要注意的是 rate limiting 是额外收费的,只对通过的访问收费,被屏蔽掉的不收费: https://support.cloudflare.com/hc/en-us/articles/115000272247-Billing-for-Cloudflare-Rate-Limiting 自己估算一下花销的风险。 |
73
stabc 2019-09-20 19:55:51 +08:00
aws 的 Cloudfront 也可以屏蔽,但是我之前咨询过他们,他们对被屏蔽掉的访问也收费的,也就是说攻击者可以直接通过攻击来刷爆你信用卡。
|
74
czb 2019-09-20 20:12:07 +08:00 via Android
cc 的确是难挡 特别是一些发起类似业务请求的连接 看了一下你的 IP 来源 大部分攻击来自 DC IP 可以做一个 Bad ASN 表做针对性的验证码或者屏蔽 Cloudflare 其实还有个服务叫做 bot management 联系客服可以开通 https://www.cloudflare.com/products/bot-management/
|
75
xabc 2019-09-20 22:22:22 +08:00 via iPhone
微信 xabcstack 可以帮你搞定, 是付费服务,搞不定没有费用
|
76
xencdn 2019-09-20 22:24:38 +08:00
if ($cookie_say != "xencdn"){ add_header Set-Cookie "say=xencdn"; rewrite .* "$scheme://$host$uri" redirect; }
当 cookie 中 say 为空时,给一个设置 cookie say 为 xencdn 的 302 重定向包,如果访问者能够在第二个包中携带上 cookie 值,那么就能正常访问网站了,如果不能的话,那他永远活在了 302 中。 这个应可以防大部份 CC 加在 location 中间 Cloudflare 提高 waf 防护级别也是可以的 话说打穿 cloudflare 的 CC 攻击还是比较少 |
77
woshipanghu 2019-09-20 23:06:49 +08:00
百度做的是最便宜的
一年好像 2000 出头 ads 防御开到最强 基本能拦下所有攻击,就是进网站前会有验证 |
78
woshipanghu 2019-09-20 23:15:25 +08:00
原本用的知道创宇 月付 1500 后来不让月付了 只能年付价格还涨了 额额额 ...只能放弃了
就切到百度上了,便宜也很好用! 每次 cc 猛的时候都要开到防御级别最高 流量瞬间就下来了 防御级别最该的时候就是第一次进网站会有个 5 秒验证 不介意可以用用 和 cf 应该是一样的 c cc 只能买抗 c 的服务 |
79
pandait 2019-09-20 23:36:10 +08:00 via Android
CF 就有封国家的功能,在 ruler 里面
|
80
pandait 2019-09-20 23:37:41 +08:00 via Android
是的,去 github 找一个叫 cckiller 的工具
|
81
chinafeng 2019-09-21 02:22:52 +08:00
楼主预算多少呢?
|
82
defunct9 2019-09-21 11:48:02 +08:00 via iPhone
开 ssh,让我上去试试
|
83
RasherN 2019-09-25 12:23:39 +08:00
被 DD 是什么味道,小主机 45.120.186.68 , 我想尝尝!
|
84
infra 2019-10-07 21:32:57 +08:00
换个 CDN 试试,另外多找找线索,看能否找到特征。
CC 攻击见过不少,这么成气候的不知有机会深入分析不 |
86
2885232976 2019-11-02 20:32:10 +08:00
名字就是我的 QQ,如果您这边攻击还没解决的话可以加我聊下,我们公司做防御十几年了,CC 很好处理,保证 0 误封。
|
87
Aug 2019-12-18 13:58:01 +08:00
没试试公安部研究所的“网防 g01 吗”,据说啥都能防。
|
89
cpublic 2021-09-04 21:26:29 +08:00
你这是泄露真实 IP 了吧!否则 DDoS 和 CC 攻击的话,CloudFlare 免费版基本都能抗住,建议你排查一下 IP 泄露的地方,然后变更 IP 继续用 CloudFlare 抵挡吧!
目前最好的方案就是 CloudFlare 了! |