全球主机交流论坛

标题: 【最新】免费版cloudflare如何防CC攻击?不需要动手写规则! [打印本页]

作者: SK_    时间: 2022-11-6 17:06
标题: 【最新】免费版cloudflare如何防CC攻击?不需要动手写规则!
本帖最后由 SK_ 于 2022-11-12 04:49 编辑

以下操作不需要您会写规则,不需要您分析流量,小白式的操作,随便点点鼠标就行了。非常简单!哪怕超过千万/亿次攻击,1H1G也防得住,网站不会挂,收录不会掉,API也不会影响!

确定您的网站被CF保护,也就是说DNS→是打开了代理,A/AAAA解析是橙色。(如果您之前IP漏了,那么就需要换IP)
保护之前请关闭所有您之前设置的WAF→防火墙规则/速率限制规则/托管规则/工具,以及包含安全性的页面规则!因为在这之前您可能按照网上的教程进行设置过,可能会影响到下面的规则优先级(如果您之前没有可以忽略这条)

首先进入受CF保护的网站,找到安全性:


第一步(意义:这里主要的功能就是拦截那些IP黑名单,几乎没有误报):

CF→安全性→设置→安全级别设置为:高(这里不要打开打开I'm Under Attack!我受到攻击,因为这样就是任何请求会做人机验证,等待5秒钟:会掉收录,API无法通讯,需要写防火墙规则排除。)
质询通过期设置成:15分钟或者30分钟,严重可以设置5分钟(这里慎重设置,不要太低,不要太高!)
浏览器完整性检查:打开

图片参考:https://ibb.co/C93vht2

第二步(意义:根据CF的机器学习识别到DDOS攻击,误报很低。):

CF→安全性→DDOS→HTTP DDoS 攻击防护,点右边的配置进入

规则集操作(必填)设置为:托管质询或者直接阻止(建议你在受到攻击的时候直接阻止)
规则集敏感度(必填)设置为:高


图片参考:https://ibb.co/nsxB8ts


第三步(意义:这里就需要考虑到你的网站有没有与用户的客户端或者其他服务器进行API通信,存在一定误报率。一般使用的程序越老旧就越容易触发误报。):

CF→安全性→自动程序:打开自动程序攻击模式

图片参考:https://ibb.co/L6fC7QD





第四步(意义:最后的防线,一般而言就漏掉的攻击):
CF→安全性→WAF→速率限制规则,创建一条速率限制规则,规则如下:

规则名称 (必需):自己填个

如果传入请求匹配…
字段               URL路径
运算符               选择“包含”
值                     自己输入英文的:/

速率限制匹配运算符包含输入英文 / 是关键,也代表网站所有目录都匹配

则...
选择操作:阻止  
响应类型为 :默认 Cloudflare 速率限制响应(响应类型为 :默认 Cloudflare 速率限制响应,这会告诉访问被阻止,跳转到CF速度限制阻止页面。如果您想告诉您的网站访客发生了什么可以自定义HTML,利用UTF-8编码自己写个中文页面。)

对于…
持续时间 (必需) 10秒
当速率超过…
请求 (必需)35
期间 (必需)10秒钟


请求:35 可以设置为25,但会影响正常用户,最好不要低于20。如果太低了,用户正常访问都会被阻止。如果您的网站是一个博客,我建议这里设置成50以上。如果你的网站类型有文字、有图片、有视频,这里不要低。如果你是CF付费版,建议用托管质询,而不是直接阻止。

图片参考:https://ibb.co/H7r0tbH

图片参考:https://ibb.co/HVkq5kf


第五步(有些攻击会通过TOR节点绕开CF质询,这里建议关掉):在CF网络→路由→洋葱路由关掉

图片参考:https://ibb.co/RBjSH4N

最后等cf规则生效,大概30秒,一定要重启一下服务器,让服务器断开所有的程序连接

不要依赖在服务器上设置系统防火墙,因为瞬间的CC攻击流量一开始就会占用大量CPU资源,像宝塔这种防火墙,就算有用,前期的识别匹配规则也需要消耗一定资源和时间。之后哪怕防火墙拦截了,但实际上DDOS L4攻击一直存在,如果攻击足够多,类型足够复杂,服务器上的系统防火墙也只不过拦截了DDOS L7攻击,但DDOS L4攻击把你宽带占满了,一样会挂。


防火墙日志以及规则排除

(, 下载次数: 3)
您可以在安全性→概述→防火墙事件,查看被拦截的日志记录。

排除:上面的功能有两个容易触发误报,建议在没有任何攻击的情况下去排除。一个是“自动程序攻击模式”,除非你的API明确被拦截了可以关掉。
另外一个是“速率限制”,如果你的网站是一个博客,是一个论坛等,可以把第四步规则速率限制,其中的请求数调高。

上面所有的功能规则,实际上API不会被影响,整体误报率真的很低或几乎没有。如果您真的十分信任您的API,保证API不被泄露,而你的API真的会触发最低的安全级别/浏览器完整检查/速率限制/DDOS防护可以用以下方式:
安全性→ WAF→ 防火墙规则 → 创建防火墙规则→ 当传入请求匹配时...字段

(, 下载次数: 1) (, 下载次数: 0) (, 下载次数: 0) (, 下载次数: 0)
如果你知道API请求IP就选择IP源地址
(, 下载次数: 0)
如果IP是多变的,就选择URL,不要单纯选择URL,除非只有你一个人知道。
如果都不知道,可以用引用方匹配。

有多个字段需要匹配,就选Or加一个规则,不要选And,And不是单独匹配。

绕过
(, 下载次数: 1)


再次重复上面的创建一个新的防火墙规则,这次选择允许
(, 下载次数: 1)



作者: 8899    时间: 2022-11-6 17:08
提示: 作者被禁止或删除 内容自动屏蔽
作者: zixi    时间: 2022-11-6 17:08
收藏从未停止,实践从未开始,谢谢分享
作者: 道高人间一尺    时间: 2022-11-6 17:09
技术贴 绑定
作者: toot    时间: 2022-11-6 17:11
本帖最后由 toot 于 2022-11-6 17:12 编辑

只有一条免费规则。

每一条规则只能设置特定页面,例如说结尾html页面。其他页面是防不住的。cc脚本却是见缝插针。你设置html页面,cc脚本可以攻击其他非html页面。甚至攻击网页内的js文件

你需要设置多条规则。当然就要花钱


然后我又回到了宝塔,宝塔7.7.0原版备份https://github.com/8838/btpanel-v7.7.0
作者: jacob    时间: 2022-11-6 17:13
toot 发表于 2022-11-6 17:11
只有一条免费规则。

每一条规则只能设置特定页面,例如说结尾html页面。其他页面是防不住的。cc脚本却是见 ...

7.7有什么特别?
作者: SK_    时间: 2022-11-6 17:20
toot 发表于 2022-11-6 17:11
只有一条免费规则。

每一条规则只能设置特定页面,例如说结尾html页面。其他页面是防不住的。cc脚本却是见 ...

免费规则匹配路径包含了/,其实就是匹配了所有,因为您正常打开https://google.com/,后面是有个/的,只是浏览器默认隐藏了。

如果网站下面有个.js 文件,其实应该是https://google.com/1.js ,一样可以正常匹配到的。

其实默认一条规则,可以设置很多个路径。
作者: toot    时间: 2022-11-6 17:26
SK_ 发表于 2022-11-6 17:20
免费规则匹配路径包含了/,其实就是匹配了所有,因为您正常打开https://google.com/,后面是有个/的,只 ...

测试了下这样确实可以。不过只有一条免费还是太少了
作者: leonvero    时间: 2022-11-6 18:03
宝塔nginx防火墙设置好久可以防⠀
作者: SK_    时间: 2022-11-6 18:06
toot 发表于 2022-11-6 17:26
测试了下这样确实可以。不过只有一条免费还是太少了

请求匹配规则是可以设置很多个的。唯一的不同免费版默认就是阻止,只有IP等。付费可以质询,根据不同访问类型细化。https://developers.cloudflare.com/waf/rate-limiting-rules/
作者: SK_    时间: 2022-11-6 18:09
leonvero 发表于 2022-11-6 18:03
宝塔nginx防火墙设置好久可以防⠀

任何在服务器上的设置可以说是徒劳的。因为这样会消耗资源!
作者: ezsq    时间: 2022-11-6 18:27
感谢分享
作者: zhongchen    时间: 2022-11-6 18:27
洋葱路由

我的没有这个了
作者: 心上人    时间: 2022-11-6 18:33
支持分享!
收藏未停止,行动未开始。马克一下。
作者: 不靠谱的大河马    时间: 2022-11-6 18:33
不错,学习了啊
作者: xinchenmi    时间: 2022-11-6 18:39
进收藏夹吃灰吧
作者: Yzindex    时间: 2022-11-6 18:53
分享贴,帮顶。
虽然技术含量不深,
但对于小白极其有用。
作者: sojurice    时间: 2022-11-6 18:59
收藏了,支持!
作者: b66667777    时间: 2022-11-6 19:01
感谢分享
作者: Oracle.    时间: 2022-11-6 19:05
toot 发表于 2022-11-6 17:11
只有一条免费规则。

每一条规则只能设置特定页面,例如说结尾html页面。其他页面是防不住的。cc脚本却是见 ...

你要细化也可以啊  一直加or就可以了  设置多少路径都可以
作者: Uscnc    时间: 2022-11-6 19:08
先mark
作者: 冷曦    时间: 2022-11-6 19:12
先收藏,在研究
作者: cachexy    时间: 2022-11-6 19:13
谢谢
作者: yoona    时间: 2022-11-6 19:19
收藏了
作者: 虎牙斗鱼    时间: 2022-11-6 19:20
马克
作者: dole    时间: 2022-11-6 19:30
收藏了
作者: tycu    时间: 2022-11-6 19:36
感谢大佬,make了
作者: nieyuli    时间: 2022-11-6 19:57
感谢大佬的分享,来这里学习了好多cf方面的知识,跪谢。
作者: SK_    时间: 2022-11-6 19:58
leonvero 发表于 2022-11-6 18:03
宝塔nginx防火墙设置好久可以防⠀

会消耗系统资源的。如果请求流量复杂,或者ip非常多,也会死
作者: SK_    时间: 2022-11-6 19:59
toot 发表于 2022-11-6 17:26
测试了下这样确实可以。不过只有一条免费还是太少了

可以匹配很多个路径,add就行了,付费版只是阻止方式  请求  时间有很多
作者: SK_    时间: 2022-11-6 20:01
zhongchen 发表于 2022-11-6 18:27
洋葱路由

我的没有这个了

这个不在安全性里面,在路由里面。如果没有可以不设置
作者: toot    时间: 2022-11-6 20:04
SK_ 发表于 2022-11-6 19:59
可以匹配很多个路径,add就行了,付费版只是阻止方式  请求  时间有很多

只能一个域名生效啊。我的生产项目就5个域名了,一个域名放一个cf也不好管理

还是宝塔的防火墙自由度高
作者: SK_    时间: 2022-11-6 20:06
toot 发表于 2022-11-6 20:04
只能一个域名生效啊。我的生产项目就5个域名了,一个域名放一个cf也不好管理

还是宝塔的防火墙自由度高 ...

aaa.com  
bbb.com
这样???那只能这样了。
服务器上的防火墙也行。只不过需要消耗系统资源。
作者: toot    时间: 2022-11-6 20:10
SK_ 发表于 2022-11-6 20:06
aaa.com  
bbb.com
这样???那只能这样了。

mastodon就用了3个域名,这才是一个项目

另外消耗服务器性能你可能有误解。一旦触发cc策略,ip被服务器拉黑。就跟ssh进不去是一个道理。每天都有大量爬虫尝试登陆我们的ssh。无论是不是秘钥,服务器都会经过逻辑认定秘钥不对才不给进。

这么说是想表达ip一旦被拉黑,服务器几乎是感受不到的
作者: SK_    时间: 2022-11-6 20:27
toot 发表于 2022-11-6 20:10
mastodon就用了3个域名,这才是一个项目

另外消耗服务器性能你可能有误解。一旦触发cc策略,ip被服务器 ...

这个我看过别人32v,用宝塔防火墙,最后一样死了。ip多到一定数量,或者请求数量多也会消耗宽带。ip从识别到阻止也是后入为主,前期会消耗流量,如果这个时候请求足够复杂,ip足够多会死,最后前期如果抗下来,后期拉黑ip就是消耗系统资源,虽然这个占用比前期识别拉黑低很多,但是这种只是拦截到了L7 ddos,L4 ddos一直都在的。服务器上的系统防火墙只是防止请求不到nginx应用层,网络层还是有流量。

我试过cf的只开速率限制,把cf其他安全性都关了,最后只要攻击流量不超过阈值,虽然服务器cpu并没有满载,但是宽带占用了100mbps。
作者: 主菜单    时间: 2022-11-6 20:32
应该用  /* 吧?
作者: h3cie    时间: 2022-11-6 20:33
技术贴 绑定
作者: Oracle.    时间: 2022-11-6 20:35
SK_ 发表于 2022-11-6 20:27
这个我看过别人32v,用宝塔防火墙,最后一样死了。ip多到一定数量,或者请求数量多也会消耗宽带。ip从识 ...

曾经我也认为宝塔防火墙有用  直到被loc大佬教育了  在大量ip面前  防不过来  最终还是上了cf大佬才收手的
作者: SK_    时间: 2022-11-6 20:45
主菜单 发表于 2022-11-6 20:32
应该用  /* 吧?

其实/就行了,因为你打开https://google.com/就包含/,之前我/*这样设置好像没用,规则没匹配到。

https://www.google.com/
https://www.google.com/admin
这样其实已经包含/了,你打开主页已经包含/,只是浏览器不显示

作者: sah    时间: 2022-11-6 20:47
好久不见好帖,感谢提供技术分享
作者: 清蒸三文鱼    时间: 2022-11-6 23:42
留个回帖记录,感谢分享,我用网上找的教程,是脚本配合CF的,连自己偶尔访问都被加入了黑名单。
作者: llcn168    时间: 2022-11-9 22:11
宝塔防火墙在大量的CC面前确实防不住
策略筛选的时间 服务器负载已经打满,封的也慢,根本防不过来。
不过少量的CC 还是可以防住
作者: ddq    时间: 2022-11-9 22:15
支持
作者: ezezz    时间: 2022-11-9 23:19
宝塔不行 金盾可以
作者: 中央银行    时间: 2022-11-10 01:52
好文当尚
作者: 机长    时间: 2022-11-10 02:06
这样也告别搜索了 自个欣赏
作者: ruge    时间: 2022-11-10 02:17
很详细,绑定
作者: zvkv    时间: 2022-11-10 02:28
技术贴 绑定
作者: 三丫的    时间: 2022-11-10 02:43
感谢提供技术分享
作者: 拉斯    时间: 2022-11-10 08:25
额,想问下要是接口怎么办,前后端分离的接口那边可没法做cf的机器人验证
作者: 重案组曹达华    时间: 2022-11-10 08:33
支持技术贴!
作者: tracy136560    时间: 2022-11-10 08:55

技术贴 绑定
作者: SK_    时间: 2022-11-12 02:05
拉斯 发表于 2022-11-10 08:25
额,想问下要是接口怎么办,前后端分离的接口那边可没法做cf的机器人验证 ...

API接口不会影响,因为安全等级是高,并没有5秒盾。

除非你的后端API IP之前被上过IP滥用黑名单。

如果真被拦截了,我建议放行API的IP,在CF 安全性 - 防火墙规则 ,创建一个防火墙,字段选:P源地址,运算符:等于,值:就你的后端服务器IP。当然如果你的API请求URL地址自由你一个人知道,而且有token保护,你可以用URL完整字段。

你可以设置好以后,在安全性→概述→防火墙事件,看到所有拦截记录
作者: SK_    时间: 2022-11-12 16:38
拉斯 发表于 2022-11-10 08:25
额,想问下要是接口怎么办,前后端分离的接口那边可没法做cf的机器人验证 ...

加一句,正常情况没有人机验证5秒盾。“自动程序攻击模式”可能存在误报,你那边可以看看cf 安全性  概述 防火墙事件有没有屏蔽。如果还是不行,可以按照教程最后内容排除一下。帖子我更新了。
作者: zxxx    时间: 2022-11-12 17:16
马克
作者: aiz    时间: 2022-11-12 18:30
收藏备用
作者: rttw    时间: 2022-11-12 18:33
再加一个移除参数,小心透过缓存
作者: 咪斯特杜    时间: 2022-11-12 19:24
技术贴 绑定
作者: zhongziso    时间: 2022-11-12 20:52
mark
作者: qingmuhy    时间: 2022-11-12 21:14
其实还应该设置白名单防止被扫源。
作者: smu    时间: 2022-11-12 22:03
收藏了,支持!





欢迎光临 全球主机交流论坛 (https://443502.xyz/) Powered by Discuz! X3.4