机器在香港,未备案,从上周末开始,一直持续被大规模攻击,目前使用的是 cloudflare 解析,能抵御部分攻击,但是攻击量大的时候还是无法抵御,导致服务器 CPU 内存全部被占满。
服务器是 nginx,设置了各种防护,也开启了宝塔防火墙,禁止国外 IP 等等,都没有太大的用处。
现在在 cloudflare 上开启了 CDN 和挑战页,但是这样下去,网站经常打不开,排名也快掉完了。
咨询了几家国内的做 CDN 的,据说都是无视一切 CC 攻击,但是要价一个月 5K-5W 不等。
请问是否有什么其他的解决方案呢?谢谢各位了!
 

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