
机器在香港,未备案,从上周末开始,一直持续被大规模攻击,目前使用的是 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 是错误的做法,封不完。封 useragent |
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 网站攻击的本质,是攻击者以 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 解析到国务院 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 |
42 laminux29 2019-09-20 11:54:16 +08:00 @Robias 那就国外全封,国内报网警。 |
43 40huo 2019-09-20 12:01:29 +08:00 五秒盾 |
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 xyooyx 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 |
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 @ #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 akafeng 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 了! |