上一篇 下一篇 分享链接 返回 返回顶部

网站接入 Cloudflare 后,安全防护到底该怎么配?新手照着做就行

发布人:慈云数据-客服中心 发布时间:2小时前 阅读量:0

Cloudflare 安全加固方案|零基础可学

在网站上线之后,很多站长最担心的事情并不是“访问量不够”,而是网站突然打不开、被恶意扫描、被刷流量、被撞库、后台被爆破,甚至服务器真实 IP 被暴露后遭到直接攻击。对于个人站长、中小企业、独立开发者来说,Cloudflare 是一个非常实用的安全防护入口。

Cloudflare 不只是一个 CDN,它同时提供 DNS 托管、DDoS 防护、Web 应用防火墙、Bot 管理、访问控制、缓存加速、SSL/TLS 加密等能力。只要配置得当,即使没有专业安全背景,也可以大幅提升网站的安全性。

本文将以“零基础可学”为目标,系统讲解如何通过 Cloudflare 对网站进行安全加固。


一、Cloudflare 能保护什么?

在开始配置之前,我们先了解 Cloudflare 的作用。

当用户访问你的网站时,正常情况下访问路径是:

用户浏览器 → 你的服务器

接入 Cloudflare 后,访问路径变成:

用户浏览器 → Cloudflare → 你的服务器

Cloudflare 位于用户和服务器之间,相当于一道“安全网关”。它可以帮助你完成以下事情:

  1. 隐藏源站服务器 IP
  2. 抵御常见 DDoS 攻击
  3. 过滤恶意请求
  4. 阻止爬虫、扫描器、爆破工具
  5. 提供 HTTPS 加密
  6. 缓存静态资源,降低服务器压力
  7. 限制特定地区、IP、路径的访问
  8. 保护后台登录页面
  9. 减少源站被直接攻击的风险

需要注意的是: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 会验证你的源站证书是否有效。

如果你的源站没有证书,可以使用以下方式之一:

  1. 安装 Let’s Encrypt 免费证书
  2. 使用 Cloudflare Origin Certificate
  3. 使用服务器面板提供的一键 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

如果发现正常用户被拦截,可以进行调整:

  1. 放宽规则
  2. 改 Block 为 Managed Challenge
  3. 对可信 IP 添加 Allow
  4. 对特定路径排除防护
  5. 检查是否缓存或规则配置错误

安全策略的核心不是“越严越好”,而是“在安全和可用之间取得平衡”。


十五、推荐的零基础加固清单

下面是一份适合新手的 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

十七、一个适合新手的推荐方案

如果你完全没有安全经验,可以先按以下方案配置:

  1. DNS 接入 Cloudflare
  2. 网站记录开启橙色云朵
  3. SSL/TLS 使用 Full Strict
  4. 开启 Always Use HTTPS
  5. 开启 Cloudflare Managed Rules
  6. 后台路径设置 Managed Challenge
  7. 拦截 .env.git.sqlphpinfo
  8. 登录接口设置简单速率限制
  9. 服务器防火墙只允许 Cloudflare IP 访问 80/443
  10. 定期查看 Security Events

这套方案不会太复杂,但对大多数个人网站和中小型网站已经有明显提升。


十八、总结

Cloudflare 安全加固的核心思路可以概括为四句话:

让正常用户顺畅访问
让恶意请求在边缘被拦截
让源站 IP 不直接暴露
让后台和敏感接口受到额外保护

对于零基础用户来说,不需要一开始就追求最复杂的配置。你可以先完成基础接入、HTTPS、WAF、后台保护和源站防火墙限制,然后通过日志不断优化。

真正有效的安全方案,不是一次性配置,而是持续维护。Cloudflare 负责帮你挡住大量边缘攻击,而你需要确保源站系统、网站程序、账号密码、备份和权限管理同样安全。

只要按照本文的步骤逐步完成,即使没有专业安全背景,也可以搭建出一套相对可靠、实用、可维护的 Cloudflare 安全加固体系。

目录结构
全文