找回密码
 注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 5|回复: 0

[菜鸟教程] 零基础 Cloudflare 配置教程

[复制链接]
发表于 前天 20:31 | 显示全部楼层 |阅读模式
〇. 前言
文本教程面向建站新手, 因此会跳过一些对新手来说难以理解的信息, 也会不厌其烦的讲解一些重要内容. 如果你认为本文过于笼统, 说明本文不适合你.
本文默认你已经完成了 Cloudflare 的接入部分. 如果你连接入 Cloudflare 都不会, 本文对你来说没有意义, 请退出.

一. 接入了 Cloudflare, 我的网站就不怕 CC/DDoS 了吗?
先说结论: 并不是, Cloudflare 的五秒盾(交互式质询/JS质询) 是可以被绕过的.
通常情况下, Cloudflare 会给通过质询的浏览器下发一个名为 cf_clearance 的 cookie, 同子网(/24)UA 下的请求可以携带这个 cookie 直接在有效期内跳过质询. 意味着攻击者可以在第一次请求时使用真实浏览器进行过盾, 之后则直接进行自动化请求.
同理, 还有更多方法绕过 Cloudflare 的五秒盾. 这里不再赘述.

二. 自助的付费计划对我来说有用吗?
付费计划会提供更好的 TTFB, 以及更多的功能. 以及 Cloudflare 托管的 WAF 规则. 可根据自身网站的体量做取舍.
注: 如果你只是单纯想优化用户到边缘的连接速度, 你其实并不需要购买付费计划. 有关这部分内容, 请参考 [菜鸟教程] 零基础 Cloudflare 优选教程.

三. 基础的 WAF 规则配置.
从这里开始就是正式的配置教程了.
转到 Cloudflare 域面板中的 安全性/安全规则 下, 本章节的操作会在这里进行.
1. 为已知机器人跳过之后的 WAF 规则
创建自定义规则,
找到 已知自动程序, 配置为是(开)

当然, 你也可以手动选择允许的机器人类别. 你可以在 此处 看到所有经过 Cloudflare 验证的机器人和其类别.
往下滑, 选择操作为跳过, 注意放置位置一定要放到第一个
完成后点击保存.
2. 为你的 API 创建跳过规则
如果你的网站没有需要外部服务器/用户调用的 API, 可以跳过此步骤.
新建一个自定义规则, 请根据你的 API 路径, 方法 自行修改示例规则中的内容

此段规则的表达式为
  1. (http.host eq "api.sin.fan" and
  2. http.request.uri wildcard r"/api/pub/v1/users/*" and
  3. http.request.method eq "POST")
复制代码

如果要创建更多的路径, 在该小节规则后接一个 OR 重复即可.
往下滑, 选择操作为跳过, 位置应该放在上一个已验证机器人跳过规则后.

请注意, 这些 API 通常会被自动程序调用, 因此还需要跳过 自动程序攻击模式.
3. 质询可疑的请求
这部分推荐还是自己写, 这里给出几个建议.
A. 从 radar 获得 ASN Bot 流量占比, 并对高流量占比的 ASN 进行质询

比如上面这些 ASN. 在之后我会单独提供一个现成的高 Bot 流量占比的 ASN 列表.
B. 质询使用旧版本 HTTP 的请求
此规则在我站点上的通过率仅为 0.07%

表达式为
  1. (http.request.version in {"HTTP/1.0" "HTTP/1.1" "HTTP/1.2"})
复制代码


X. 可选: 质询所有第一次访问网站的请求
如果网站正在被攻击, 可以使用此规则进行质询. 此规则与 I'm under attack 模式的最大区别就是不会对 API 流量进行质询. 因为 API 请求已经被之前的规则标记为跳过了.
表达式为
  1. (http.request.uri wildcard r"/*")
复制代码


4. 限速策略
创建一个限速策略规则, 表达式为
  1. (not cf.bot_management.verified_bot)
复制代码

向下滑动, 找到 当速率超过… 部分,
你需要根据你的网站自行调整设置. 可以根据以下步骤进行配置:
  • 进入你的网站, 按下 F12
  • 转到网络选项卡
  • 勾选关闭缓存检查框, 按下 F5 刷新网页
  • 待页面加载完成后, 查看下方的数据

我的网站一次访问需要 37 次请求, 我假设我的用户会在 10秒 内强制刷新5次(ctrl+F5), 然后关闭缓存访问 5 个新页面, 那么 10 秒 内的请求是 370 次. 那么你应该在 请求 部分填写 370.
向下滑动, 如果你是 Free 计划, 你的操作只能选择 阻止 10秒.
选择完成后点击保存.
四. 托管规则调整.
转到 安全性/安全规则, 选择 DDoS 保护 选项卡. 创建替代
规则集操作修改为阻止
点击浏览规则, 搜索 imp, 将操作全部改为阻止.
搜索 likely, 将仅有的一条规则改为阻止.
五. 安全设置调整.
转到 安全性/设置, 本章节接下来的操作会在此页面完成.
向下滑动,
找到 质询通过期 设置, 默认为 30 分钟. 你可以根据需求调整为更短或更长的时间. 本文之前提到过, 攻击者可以通过合法的 cf_clearance cookie 跳过质询, 因此不推荐将该时间设置的特别长, 通常情况下默认的 30 分钟已经足够了. 如果你需要一定的安全性, 可以修改为 15 分钟.
继续向下, 你会找到 自动程序攻击模式 / 超级自动程序攻击模式.
Free 中, 此设置默认为关. 可以开启.
付费计划中, 调整为如下设置
提一嘴: 此检查聊胜于无. 只能拦截一部分唐逼脚本小子的 CC. 甚至经过我的测试, 一部分提供免费 CC 服务中基础的 HTTP SPAM 中部分请求(≈30%)都能得到较高的bot score.
Free 中 自动程序攻击模式 的纯摆设, 没啥作用.
付费计划中, Cloudflare 会根据 TLS 指纹, ja4/ja3, IP 在 Cloudflare 数据库中的纯净度计算出一个 bot score. 通常情况下, 已知的自动化请求会得1分, 也就是 绝对自动化流量, 但是目前的绝大部分爬虫都能自定义 TLS指纹, UA, 以及有不是那么脏的 IP 代理池. 甚至 itdog 的部分节点进行 HTTP 测速都能得到较高的分数(>1分).
在 Pro 中允许对 =1分 的请求进行质询或阻止, Business 中允许对 2-29分 的请求进行阻止或质询.
六. 速度优化
转到 速度/设置
点击启用所有可用设置. 然后转到 内容优化 选项卡.
向下滑动, 可以考虑是否开启 Cloudflare Fonts 优化. 如同 Cloudflare 的介绍, 这会内联并缓存 Google Fonts.
向下滑动, 可以考虑是否开启 Rocket Loader 优化. 此选项会异步执行你的 JS 脚本, 从而加快页面渲染的速度. 对 WP 站有奇效. 但是此设置也有可能导致部分依靠 JS 脚本的功能损坏. 你可以根据 Cloudflare 的文档 忽略单个脚本.
七. 缓存优化1. 配置
转到 缓存/配置
向下滑动, 找到  浏览器缓存 TTL 选项, 此设置影响一个文件在浏览器中的缓存时长. 通常可以修改为更长的时间, 例如 14天 甚至更长.
向下滑动, 找到 Crawler Hints 选项, 设置为开.
2. 缓存规则
转到 缓存/Cache Rules
新建规则, 选择 缓存默认文件扩展名 模板, 这些都是默认的静态文件, 通常可以设置更高的边缘缓存TTL 和 浏览器缓存TTL.
设置完成后, 点击保存.
默认情况下, cloudflare 不会缓存没有后缀名的文件/HTML 文件, 因此通常情况下, 你不需要单独为 API 路径设置一个绕过规则.
3. Tiered Cache
转到 缓存/Tiered Cache
设置为开.
八. 规则修改
转到 规则/设置
修改设置如下
九. SSL 设置.
转到 SSL/TLS / 概述
通常情况下, 推荐设置为完全, 你需要在源服务器上配置一个SSL证书(推荐使用 Cloudflare 的自签名源服务器 SSL 证书).
为了安全, 你还需要关闭服务器的 80 端口并限制 443 端口只能被 Cloudflare 的 IP访问.
通常推荐在服务商防火墙进行设置, 如果你的服务商没有提供防火墙, 则直接使用服务器防火墙即可, 以下是 ufw 命令示例.
  1. sudo ufw allow from 173.245.48.0/20 to any port 443
  2. sudo ufw allow from 103.21.244.0/22 to any port 443
  3. sudo ufw allow from 103.22.200.0/22 to any port 443
  4. sudo ufw allow from 103.31.4.0/22 to any port 443
  5. sudo ufw allow from 141.101.64.0/18 to any port 443
  6. sudo ufw allow from 108.162.192.0/18 to any port 443
  7. sudo ufw allow from 190.93.240.0/20 to any port 443
  8. sudo ufw allow from 188.114.96.0/20 to any port 443
  9. sudo ufw allow from 197.234.240.0/22 to any port 443
  10. sudo ufw allow from 198.41.128.0/17 to any port 443
  11. sudo ufw allow from 162.158.0.0/15 to any port 443
  12. sudo ufw allow from 104.16.0.0/13 to any port 443
  13. sudo ufw allow from 104.24.0.0/14 to any port 443
  14. sudo ufw allow from 172.64.0.0/13 to any port 443
  15. sudo ufw allow from 131.0.72.0/22 to any port 443
复制代码
  1. sudo ufw allow from 2400:cb00::/32 to any port 443
  2. sudo ufw allow from 2606:4700::/32 to any port 443
  3. sudo ufw allow from 2803:f800::/32 to any port 443
  4. sudo ufw allow from 2405:b500::/32 to any port 443
  5. sudo ufw allow from 2405:8100::/32 to any port 443
  6. sudo ufw allow from 2a06:98c0::/29 to any port 443
  7. sudo ufw allow from 2c0f:f248::/32 to any port 443
复制代码

转到 SSL/TLS / 边缘证书
向下滑动, 开启 始终使用 HTTPS 选项. 修改 最低 TLS 版本 为 TLS 1.2.
至此, 本文教程就告一段落了. 你已经完成了 Cloudflare 的基础设置.


您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|中国飞逸网

GMT+8, 2026-1-5 22:44

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表