网站接入 Cloudflare 后,安全防护到底该怎么配?新手照着做就行
Cloudflare 安全加固方案|零基础可学
在网站上线之后,很多站长最担心的事情并不是“访问量不够”,而是网站突然打不开、被恶意扫描、被刷流量、被撞库、后台被爆破,甚至服务器真实 IP 被暴露后遭到直接攻击。对于个人站长、中小企业、独立开发者来说,Cloudflare 是一个非常实用的安全防护入口。
Cloudflare 不只是一个 CDN,它同时提供 DNS 托管、DDoS 防护、Web 应用防火墙、Bot 管理、访问控制、缓存加速、SSL/TLS 加密等能力。只要配置得当,即使没有专业安全背景,也可以大幅提升网站的安全性。
本文将以“零基础可学”为目标,系统讲解如何通过 Cloudflare 对网站进行安全加固。
一、Cloudflare 能保护什么?
在开始配置之前,我们先了解 Cloudflare 的作用。
当用户访问你的网站时,正常情况下访问路径是:
用户浏览器 → 你的服务器
接入 Cloudflare 后,访问路径变成:
用户浏览器 → Cloudflare → 你的服务器
Cloudflare 位于用户和服务器之间,相当于一道“安全网关”。它可以帮助你完成以下事情:
- 隐藏源站服务器 IP
- 抵御常见 DDoS 攻击
- 过滤恶意请求
- 阻止爬虫、扫描器、爆破工具
- 提供 HTTPS 加密
- 缓存静态资源,降低服务器压力
- 限制特定地区、IP、路径的访问
- 保护后台登录页面
- 减少源站被直接攻击的风险
需要注意的是:Cloudflare 不是万能的。它能大幅提高安全性,但不能替代服务器本身的安全配置,比如系统更新、程序漏洞修复、数据库权限控制、备份策略等。
二、接入 Cloudflare 的基础流程
1. 注册 Cloudflare 账号
访问 Cloudflare 官网,使用邮箱注册账号。注册完成后,点击添加站点,输入你的域名,例如:
example.com
注意不要输入 https:// 或路径,只需要输入主域名。
2. 扫描并确认 DNS 记录
Cloudflare 会自动扫描你的 DNS 记录,例如:
| 类型 | 名称 | 内容 |
|---|---|---|
| A | @ | 服务器 IP |
| A | www | 服务器 IP |
| CNAME | blog | example.com |
| MX | @ | 邮件服务器 |
你需要检查这些记录是否正确。
其中最重要的是网站相关记录,例如:
A @ 1.2.3.4
A www 1.2.3.4
在 Cloudflare 中,每条 DNS 记录旁边通常会有一个“小云朵”图标:
- 橙色云朵:流量经过 Cloudflare 代理,启用防护和 CDN
- 灰色云朵:仅 DNS 解析,不经过 Cloudflare
如果你希望 Cloudflare 保护网站,网站相关记录应设置为橙色云朵。
3. 修改域名 NS 服务器
Cloudflare 会给你两条 NS 服务器地址,例如:
alice.ns.cloudflare.com
bob.ns.cloudflare.com
你需要到域名注册商后台,把原来的 NS 修改为 Cloudflare 提供的 NS。
修改后等待生效,通常需要几分钟到数小时,最长可能 24-48 小时。
三、SSL/TLS 安全加固
HTTPS 是网站安全的基础。如果没有 HTTPS,用户和网站之间传输的数据可能被窃听或篡改。
进入 Cloudflare 控制台:
SSL/TLS → Overview
你会看到几个模式:
| 模式 | 含义 | 是否推荐 |
|---|---|---|
| Off | 不启用 HTTPS | 不推荐 |
| Flexible | 用户到 Cloudflare 是 HTTPS,Cloudflare 到源站是 HTTP | 不推荐 |
| Full | 全程 HTTPS,但不验证源站证书 | 可用 |
| Full Strict | 全程 HTTPS,并验证源站证书 | 强烈推荐 |
推荐配置:Full Strict
最佳方案是选择:
Full (strict)
这表示:
用户 → Cloudflare:HTTPS
Cloudflare → 源站服务器:HTTPS
而且 Cloudflare 会验证你的源站证书是否有效。
如果你的源站没有证书,可以使用以下方式之一:
- 安装 Let’s Encrypt 免费证书
- 使用 Cloudflare Origin Certificate
- 使用服务器面板提供的一键 SSL 功能
开启 Always Use HTTPS
路径:
SSL/TLS → Edge Certificates → Always Use HTTPS
开启后,访问 HTTP 会自动跳转到 HTTPS。
例如:
http://example.com
会跳转到:
https://example.com
开启 Automatic HTTPS Rewrites
路径:
SSL/TLS → Edge Certificates → Automatic HTTPS Rewrites
开启后,Cloudflare 会尽量把网页中的 HTTP 资源改写为 HTTPS,减少混合内容问题。
所谓混合内容,是指网页本身是 HTTPS,但加载了 HTTP 图片、脚本或样式,例如:

这可能导致浏览器提示“不安全”。
开启 HSTS 需谨慎
HSTS 可以强制浏览器只通过 HTTPS 访问网站。它能提升安全性,但配置错误可能导致网站无法访问。
路径:
SSL/TLS → Edge Certificates → HSTS
建议在确认网站 HTTPS 完全正常后再开启。
推荐初始配置:
Max Age:1 month
Include subdomains:暂不勾选
Preload:暂不勾选
等运行稳定后,再逐步提高策略。
四、隐藏源站 IP:安全加固的核心
很多攻击者不会攻击 Cloudflare,而是寻找你的源站 IP,然后绕过 Cloudflare 直接攻击服务器。因此,隐藏源站 IP 非常重要。
1. 网站记录必须开启代理
确保以下记录为橙色云朵:
A @
A www
CNAME 需要保护的子域名
如果是灰色云朵,访问者可以直接解析到你的服务器 IP。
2. 不要在公开位置泄露源站 IP
常见泄露方式包括:
- 旧 DNS 解析记录
- GitHub 代码仓库
- 网站报错信息
- 邮件头信息
- 子域名未走 Cloudflare
- 服务器默认页暴露
- 历史 DNS 查询记录
- 直接使用 IP 访问网站
建议你检查:
1. 是否有未代理的 A 记录
2. 是否有测试子域名指向源站
3. 是否有接口域名绕过 Cloudflare
4. 是否有旧服务器 IP 残留
3. 服务器防火墙只允许 Cloudflare IP 访问
这是非常关键的一步。
即使攻击者知道了你的源站 IP,只要服务器只允许 Cloudflare 的 IP 访问 80/443 端口,攻击者也无法直接访问网站。
你可以在服务器防火墙、安全组、iptables、ufw、宝塔防火墙等位置设置:
只允许 Cloudflare 官方 IP 段访问 80 和 443 端口
拒绝其他来源访问 80 和 443 端口
Cloudflare 官方 IP 段可以在 Cloudflare 文档中查询,注意要定期更新。
如果你使用云服务器,例如阿里云、腾讯云、AWS、Vultr,可以在安全组中配置入站规则。
示例思路:
允许:Cloudflare IPv4 段 → 80/443
允许:Cloudflare IPv6 段 → 80/443
拒绝:其他所有 IP → 80/443
允许:你的固定办公 IP → SSH 22
拒绝:其他 IP → SSH 22
如果你的 SSH、数据库、面板端口暴露在公网,也应进行限制。
五、防火墙规则配置:拦截恶意请求
Cloudflare 的 WAF 和安全规则可以拦截很多恶意流量。
进入:
Security → WAF → Custom Rules
你可以创建自定义规则。
1. 保护后台登录路径
如果你的网站是 WordPress,常见后台路径是:
/wp-admin
/wp-login.php
你可以设置规则:访问这些路径时,进行挑战验证。
规则示例逻辑:
如果 URI Path 包含 /wp-login.php
或者 URI Path 以 /wp-admin 开头
则执行 Managed Challenge
这样普通用户访问前台不受影响,但访问后台时需要通过 Cloudflare 的验证。
如果你有固定办公 IP,可以更严格:
如果访问 /wp-admin,但 IP 不是你的办公 IP
则阻止访问
2. 拦截敏感文件访问
很多攻击者会扫描网站配置文件,例如:
.env
.git
config.php
backup.zip
db.sql
这些文件一旦暴露,后果非常严重。
你可以创建规则,阻止访问以下路径:
/.env
/.git
/.svn
/config
/backup
/database
/db.sql
/phpinfo
执行动作:
Block
对于零基础用户,可以先添加以下保护思路:
URI Path 包含 ".env" → Block
URI Path 包含 ".git" → Block
URI Path 包含 "phpinfo" → Block
URI Path 包含 "backup" → Block
URI Path 包含 ".sql" → Block
3. 限制恶意国家或地区访问
如果你的网站只面向中国大陆、香港、台湾、新加坡等地区,可以根据业务需求限制其他地区访问。
路径:
Security → WAF → Custom Rules
示例逻辑:
如果访问国家不在允许列表
则执行 Managed Challenge 或 Block
建议不要一开始就全部 Block,可以先使用:
Managed Challenge
观察是否影响正常用户。
4. 拦截异常 User-Agent
很多扫描器、脚本工具会使用明显异常的 User-Agent,例如空 UA 或包含特定关键词。
你可以设置:
如果 User-Agent 为空 → Managed Challenge
或者:
如果 User-Agent 包含 curl、python-requests、Go-http-client、masscan、sqlmap → Block
但要注意,某些正常监控工具也可能使用类似 UA,因此建议先观察日志,再逐步收紧。
六、开启托管 WAF 规则
Cloudflare 提供 Managed Rules,可以自动识别常见攻击,例如:
- SQL 注入
- XSS 跨站脚本
- 文件包含
- 常见 CMS 漏洞利用
- 协议异常请求
- 已知恶意流量
路径:
Security → WAF → Managed Rules
建议开启:
Cloudflare Managed Ruleset
如果你使用 WordPress,还可以开启与 WordPress 相关的规则集。
初期建议动作设置为:
Simulate 或 Log
观察几天后,如果没有误报,再设置为:
Block
对于没有经验的新手,防火墙不要一上来配置得过于激进,否则可能误伤正常用户。
七、速率限制:防止爆破和刷接口
速率限制可以限制同一个 IP 在短时间内访问某个路径的次数。
适合用于:
- 登录接口
- 注册接口
- 搜索接口
- 评论接口
- API 接口
- 短信验证码接口
- 支付回调以外的敏感接口
例如,WordPress 登录接口:
/wp-login.php
可以设置:
同一 IP 在 1 分钟内访问超过 5 次
则 Managed Challenge 或 Block 10 分钟
对于 API 接口,例如:
/api/login
/api/register
/api/search
也可以设置类似规则。
注意:不要对全站设置过严的速率限制,否则正常用户刷新页面也可能被限制。
八、Bot 管理与浏览器验证
Cloudflare 可以识别自动化机器人请求。免费版也有一些基础能力。
路径:
Security → Bots
建议开启:
Bot Fight Mode
如果你的网站经常被低质量爬虫抓取,可以配合防火墙规则进一步限制。
不过,如果你的网站依赖搜索引擎收录,不要盲目屏蔽所有机器人。Googlebot、Bingbot 等正常搜索引擎爬虫应该允许访问。
可以在日志中观察请求来源,不要简单粗暴地屏蔽所有 Bot。
九、缓存配置:既加速又减轻攻击压力
缓存不仅能提升速度,还能降低源站压力。当大量请求访问静态资源时,Cloudflare 可以直接返回缓存内容,不必每次都请求服务器。
路径:
Caching → Configuration
建议配置:
Browser Cache TTL:4 hours 或更长
对于静态文件,例如:
.css
.js
.png
.jpg
.webp
.svg
woff2
可以设置较长缓存时间。
如果你使用 Cache Rules,可以为静态资源设置:
缓存级别:Cache Everything 或 Eligible for cache
边缘缓存时间:1天、7天或30天
但对于后台、登录页面、购物车、用户中心等页面,不要随便缓存,否则可能导致隐私或数据错乱。
不要缓存的路径示例:
/wp-admin/*
/wp-login.php
/cart
/checkout
/user
/account
/api/*
十、页面规则或重定向规则
Cloudflare 可以设置重定向规则,比如统一跳转到 HTTPS 或统一域名。
常见需求:
example.com → www.example.com
www.example.com → example.com
建议全站只保留一个主域名,避免重复内容和 Cookie 混乱。
例如统一到裸域名:
https://www.example.com/* → https://example.com/$1
或者统一到 www:
https://example.com/* → https://www.example.com/$1
选择哪一种都可以,关键是保持一致。
十一、保护管理后台:更推荐 Cloudflare Access
如果你的网站有管理后台、内部系统、运维面板,可以使用 Cloudflare Zero Trust 中的 Access 功能进行保护。
访问路径:
Zero Trust → Access → Applications
你可以把后台路径保护起来,例如:
admin.example.com
example.com/admin
设置规则:
只有指定邮箱用户可以访问
用户访问后台前,需要先通过邮箱验证码、Google 登录、GitHub 登录或其他身份认证。
这种方式比单纯依赖后台密码更安全,因为攻击者甚至无法看到后台登录页面。
适合保护:
- 管理后台
- 内部文档
- 运维面板
- Grafana
- Kibana
- Jenkins
- phpMyAdmin
- 宝塔面板
- API 管理平台
十二、DNS 安全配置
1. 删除无用 DNS 记录
很多网站被攻击,是因为残留了无用的解析记录,例如:
test.example.com
old.example.com
dev.example.com
admin.example.com
这些记录可能指向旧服务器、测试环境或未加固的系统。
建议定期检查 DNS:
删除不用的记录
确认敏感子域名是否需要公开
需要保护的记录开启代理
2. 邮件记录不要开启代理
邮件相关记录通常不应该开启 Cloudflare 代理,例如:
MX
mail.example.com
smtp.example.com
imap.example.com
pop.example.com
如果邮件服务器记录被错误代理,可能导致邮件收发异常。
邮件记录一般保持灰色云朵,仅 DNS。
3. 开启 DNSSEC
DNSSEC 可以防止 DNS 解析被篡改。
路径:
DNS → Settings → DNSSEC
开启后,Cloudflare 会生成 DS 记录。你需要到域名注册商后台添加 DS 记录。
如果不会操作,可以先不急着开启;如果开启,一定要确保 DS 记录填写正确,否则可能导致域名无法解析。
十三、安全级别与挑战模式
路径:
Security → Settings
你会看到:
Security Level
一般建议设置为:
Medium
如果网站正在遭受攻击,可以临时提高到:
High
如果攻击非常严重,可以开启:
Under Attack Mode
开启后,用户访问网站时会先看到 Cloudflare 的浏览器检查页面。它对抗攻击有效,但会影响用户体验,所以不建议长期打开。
使用建议:
| 场景 | 推荐设置 |
|---|---|
| 日常运行 | Medium |
| 扫描增多 | High |
| 明显攻击 | Under Attack Mode |
| 稳定后 | 恢复 Medium |
十四、日志观察与误报处理
安全配置不是“一次设置永远不管”。你需要观察 Cloudflare 的日志。
路径:
Security → Events
你可以看到:
- 哪些 IP 被拦截
- 哪些规则触发
- 请求来自哪个国家
- 访问了什么路径
- 执行动作是 Block、Challenge 还是 Allow
如果发现正常用户被拦截,可以进行调整:
- 放宽规则
- 改 Block 为 Managed Challenge
- 对可信 IP 添加 Allow
- 对特定路径排除防护
- 检查是否缓存或规则配置错误
安全策略的核心不是“越严越好”,而是“在安全和可用之间取得平衡”。
十五、推荐的零基础加固清单
下面是一份适合新手的 Cloudflare 安全加固清单。
基础配置
- [ ] 域名 DNS 接入 Cloudflare
- [ ] 网站 A/CNAME 记录开启橙色云朵
- [ ] SSL/TLS 设置为 Full Strict
- [ ] 开启 Always Use HTTPS
- [ ] 开启 Automatic HTTPS Rewrites
- [ ] 确认源站已安装有效证书
源站保护
- [ ] 服务器防火墙只允许 Cloudflare IP 访问 80/443
- [ ] SSH 端口仅允许固定 IP 访问
- [ ] 删除无用子域名记录
- [ ] 检查是否泄露源站 IP
- [ ] 关闭不必要的公网端口
WAF 防护
- [ ] 开启 Cloudflare Managed Rules
- [ ] 后台路径启用 Managed Challenge
- [ ] 拦截
.env、.git、.sql等敏感文件访问 - [ ] 对异常 User-Agent 设置挑战或拦截
- [ ] 根据业务需要限制高风险地区访问
访问频率限制
- [ ] 登录接口设置速率限制
- [ ] 注册接口设置速率限制
- [ ] 搜索接口设置合理频率限制
- [ ] API 接口按业务设置限制
缓存与性能
- [ ] 静态资源设置缓存
- [ ] 后台、登录、购物车、用户中心不缓存
- [ ] 定期清理缓存
- [ ] 检查页面是否出现缓存错乱
监控与维护
- [ ] 定期查看 Security Events
- [ ] 定期更新服务器系统和网站程序
- [ ] 定期备份网站和数据库
- [ ] 定期检查 DNS 记录
- [ ] 发生攻击时临时开启 Under Attack Mode
十六、常见错误配置
错误一:使用 Flexible SSL
很多新手为了省事选择 Flexible,但这会导致:
用户到 Cloudflare 是 HTTPS
Cloudflare 到源站是 HTTP
中间仍然存在明文传输,不是真正的全链路加密。
更推荐:
Full Strict
错误二:只接入 Cloudflare,但源站仍然裸奔
如果服务器 80/443 对所有 IP 开放,攻击者一旦找到源站 IP,就可以绕过 Cloudflare。
正确做法:
服务器只允许 Cloudflare IP 访问网站端口
错误三:把所有 Bot 都屏蔽
搜索引擎也是 Bot。如果错误屏蔽正常搜索引擎爬虫,网站收录可能下降。
建议:
先观察,再限制
不要盲目一刀切
错误四:后台页面直接暴露
后台登录页如果长期暴露,很容易被爆破。
建议至少使用:
Managed Challenge
更推荐:
Cloudflare Access
错误五:缓存用户页面
如果把用户中心、订单页面、后台页面错误缓存,可能导致严重隐私问题。
不要缓存:
登录后页面
个人中心
订单页面
购物车
后台管理
动态 API
十七、一个适合新手的推荐方案
如果你完全没有安全经验,可以先按以下方案配置:
- DNS 接入 Cloudflare
- 网站记录开启橙色云朵
- SSL/TLS 使用 Full Strict
- 开启 Always Use HTTPS
- 开启 Cloudflare Managed Rules
- 后台路径设置 Managed Challenge
- 拦截
.env、.git、.sql、phpinfo - 登录接口设置简单速率限制
- 服务器防火墙只允许 Cloudflare IP 访问 80/443
- 定期查看 Security Events
这套方案不会太复杂,但对大多数个人网站和中小型网站已经有明显提升。
十八、总结
Cloudflare 安全加固的核心思路可以概括为四句话:
让正常用户顺畅访问
让恶意请求在边缘被拦截
让源站 IP 不直接暴露
让后台和敏感接口受到额外保护
对于零基础用户来说,不需要一开始就追求最复杂的配置。你可以先完成基础接入、HTTPS、WAF、后台保护和源站防火墙限制,然后通过日志不断优化。
真正有效的安全方案,不是一次性配置,而是持续维护。Cloudflare 负责帮你挡住大量边缘攻击,而你需要确保源站系统、网站程序、账号密码、备份和权限管理同样安全。
只要按照本文的步骤逐步完成,即使没有专业安全背景,也可以搭建出一套相对可靠、实用、可维护的 Cloudflare 安全加固体系。