站长必备:Cloudflare 网站安全加固与防护配置指南
Cloudflare 安全加固方案|适合站长
对于个人站长、中小企业网站管理员以及内容型站点运营者来说,网站安全往往是一个容易被忽视但又极其重要的问题。很多站长认为“我的网站流量不大,黑客不会盯上我”,但现实情况恰恰相反:大量攻击并不是针对某一个知名网站发起的,而是由自动化脚本、扫描器、僵尸网络批量执行的。只要你的网站暴露在公网,就可能面临扫描、爆破、CC 攻击、恶意爬虫、漏洞利用、垃圾注册、后台撞库等风险。
Cloudflare 作为全球知名的 CDN、安全防护与边缘网络服务平台,为站长提供了非常实用的一整套安全能力。即使是免费套餐,也能够实现基础的 DDoS 防护、SSL 加密、缓存加速、WAF 规则、Bot 拦截、访问控制等功能。如果配置得当,Cloudflare 可以显著提升网站的安全性、稳定性和访问速度。
本文将从站长实际需求出发,系统介绍一套适合大多数网站的 Cloudflare 安全加固方案,帮助你在不影响正常用户访问的前提下,尽可能降低被攻击、被扫描、被滥用的风险。
一、为什么站长需要使用 Cloudflare 做安全加固?
很多站长最初使用 Cloudflare,可能只是为了 CDN 加速或隐藏源站 IP。但实际上,Cloudflare 的安全价值远不止于此。
1. 隐藏源站 IP,降低直接攻击风险
如果攻击者能够直接获取你的服务器真实 IP,那么即使你使用了 Cloudflare,也可能被绕过防护,直接攻击源站。例如:
- 直接对源站 IP 发起 DDoS 或 CC 攻击;
- 扫描源站开放端口;
- 尝试爆破 SSH、FTP、数据库等服务;
- 绕过 CDN 访问网站后台;
- 利用源站配置不当进行攻击。
通过 Cloudflare 代理访问,可以让用户访问的是 Cloudflare 节点 IP,而不是你的真实服务器 IP。这样可以降低源站直接暴露的风险。
2. 抵御常见 DDoS 与 CC 攻击
Cloudflare 在全球拥有大规模 Anycast 网络,可以帮助网站吸收大量恶意流量。对于个人站点来说,哪怕只是一次小规模 CC 攻击,也可能导致服务器 CPU、带宽或数据库被打满。开启 Cloudflare 后,很多恶意请求可以在边缘节点被拦截,不必到达源站。
3. 过滤恶意机器人和扫描器
互联网中存在大量自动化爬虫,它们会不断扫描网站路径,例如:
/wp-admin/wp-login.php/phpmyadmin/admin/api/.env/config.php/backup.zip
这些扫描行为可能会增加服务器压力,也可能暴露潜在漏洞。Cloudflare 可以通过 WAF、自定义规则、Bot 管理、挑战验证等方式拦截此类请求。
4. 提升 HTTPS 安全性
Cloudflare 提供免费 SSL/TLS 证书,并支持多种加密模式。合理配置后,可以确保访客到 Cloudflare、Cloudflare 到源站之间均使用加密连接,降低中间人攻击风险。
5. 降低运维门槛
对于很多站长来说,安全运维成本较高。Cloudflare 提供了图形化后台,不需要复杂命令行操作,也能完成大部分基础安全配置,非常适合个人站长和小型团队。
二、接入 Cloudflare 前的准备工作
在正式配置安全策略之前,建议先做好以下准备。
1. 备份 DNS 记录
在将域名接入 Cloudflare 前,应先导出现有 DNS 记录,包括:
- A 记录;
- CNAME 记录;
- MX 邮件记录;
- TXT 验证记录;
- 子域名解析;
- CDN 或对象存储相关记录。
虽然 Cloudflare 会自动扫描 DNS 记录,但并不保证百分百完整。尤其是邮件、第三方服务验证、子域名解析等记录,最好手动核对一遍。
2. 确认源站支持 HTTPS
建议源站服务器本身也配置 SSL 证书,不要只依赖 Cloudflare 到访客这一段 HTTPS。你可以使用:
- Let’s Encrypt 免费证书;
- 宝塔面板申请证书;
- 云服务器厂商提供的免费证书;
- Cloudflare Origin Certificate。
如果源站没有 HTTPS,Cloudflare 使用 Flexible 模式时容易引发安全隐患和重定向循环问题。因此更推荐使用 Full 或 Full Strict 模式。
3. 检查源站真实 IP 是否暴露
接入 Cloudflare 后,应尽量避免真实 IP 泄露。常见泄露方式包括:
- 历史 DNS 解析记录;
- 子域名未走 Cloudflare 代理;
- 邮件服务器与网站服务器使用同一 IP;
- 源站主动发起请求暴露 IP;
- GitHub、配置文件、接口返回中泄露;
- 通过错误页面、证书信息、反查记录泄露。
如果源站 IP 已经长期暴露,建议在条件允许的情况下更换服务器 IP,或者使用防火墙限制仅允许 Cloudflare IP 回源访问。
三、DNS 与代理配置加固
Cloudflare 的安全防护是否生效,首先取决于 DNS 记录是否开启代理。
1. 开启橙色云朵代理
在 Cloudflare DNS 面板中,A、AAAA、CNAME 等网站访问相关记录应开启代理状态,也就是橙色云朵。
例如:
example.com A 1.2.3.4 Proxied
www.example.com CNAME example.com Proxied
开启代理后,用户访问域名时解析到的是 Cloudflare IP,而不是源站 IP。
2. 邮件记录不要开启代理
MX 记录、邮件相关 CNAME、SMTP/IMAP/POP 服务通常不应开启 Cloudflare 代理,因为 Cloudflare 免费套餐主要代理 HTTP/HTTPS 流量,不代理常规邮件协议。
常见邮件记录应保持 DNS only:
mail.example.com A 1.2.3.4 DNS only
example.com MX mail.example.com
如果邮件服务器与网站服务器共用同一 IP,可能会导致真实 IP 暴露。更安全的做法是使用第三方邮件服务,例如企业邮箱、Mailgun、SendGrid、Amazon SES 等。
3. 删除无用解析记录
很多网站在长期维护过程中会留下无用子域名,例如:
test.example.comdev.example.comold.example.combackup.example.comphpmyadmin.example.com
这些记录可能成为攻击入口。建议定期清理不再使用的 DNS 记录,减少暴露面。
四、SSL/TLS 安全配置
SSL/TLS 是网站安全的基础。如果配置不当,不仅影响安全,还可能导致访问异常。
1. 加密模式选择 Full Strict
Cloudflare 提供以下 SSL/TLS 模式:
- Off:不加密,不建议;
- Flexible:访客到 Cloudflare 加密,Cloudflare 到源站不加密,不建议;
- Full:两端加密,但不严格验证源站证书;
- Full Strict:两端加密,并验证源站证书,推荐。
站长应优先选择:
SSL/TLS encryption mode: Full (strict)
Full Strict 要求源站配置有效证书,可以是 Let’s Encrypt,也可以是 Cloudflare Origin Certificate。
2. 开启 Always Use HTTPS
开启后,所有 HTTP 请求会自动跳转到 HTTPS,避免用户使用不安全连接访问网站。
路径:
SSL/TLS → Edge Certificates → Always Use HTTPS
建议开启。
3. 开启 Automatic HTTPS Rewrites
有些网页中可能存在 HTTP 资源链接,导致浏览器出现混合内容警告。开启 Automatic HTTPS Rewrites 后,Cloudflare 会尽量将可安全转换的 HTTP 资源改写为 HTTPS。
建议开启,但仍应从源码层面修复混合内容问题。
4. 配置 HSTS
HSTS 可以告诉浏览器以后强制使用 HTTPS 访问网站,防止降级攻击。
建议配置:
Enable HSTS: On
Max Age: 6 months 或 12 months
Include subdomains: 谨慎开启
Preload: 谨慎开启
注意:如果你不确定所有子域名都支持 HTTPS,不要贸然开启 Include subdomains 和 Preload,否则可能导致部分子域名无法访问。
五、WAF 防火墙规则加固
Cloudflare WAF 是站长安全加固中最重要的功能之一。即使免费套餐,也可以通过自定义规则拦截大量恶意流量。
1. 开启托管规则集
如果你的套餐支持 Cloudflare Managed Rules,建议开启相关规则集,例如:
- Cloudflare Managed Ruleset;
- OWASP Core Ruleset;
- WordPress 规则;
- Joomla 规则;
- Drupal 规则。
这些规则可以防御常见漏洞攻击,例如 SQL 注入、XSS、路径穿越、恶意文件访问等。
2. 拦截敏感路径扫描
很多攻击脚本会扫描常见敏感文件。可以创建 WAF 规则拦截以下路径:
/.env
/.git
/.svn
/config
/config.php
/backup
/backup.zip
/db.sql
/phpinfo.php
规则示例:
(http.request.uri.path contains ".env") or
(http.request.uri.path contains ".git") or
(http.request.uri.path contains "backup") or
(http.request.uri.path contains "phpinfo")
动作建议选择:
Block
这样可以直接阻止扫描器访问敏感资源。
3. 保护后台登录路径
如果你使用 WordPress,最常见的攻击目标是:
/wp-login.php
/wp-admin
/xmlrpc.php
可以对这些路径设置额外验证,例如 Managed Challenge 或 JS Challenge。
示例规则:
(http.request.uri.path contains "/wp-login.php") or
(http.request.uri.path contains "/wp-admin")
动作:
Managed Challenge
如果你的后台只由固定地区或固定 IP 访问,可以进一步限制:
(http.request.uri.path contains "/wp-admin" and ip.src ne 你的IP)
动作:
Block
4. 禁用或限制 XML-RPC
WordPress 的 xmlrpc.php 经常被用于暴力破解和放大攻击。如果你不使用 Jetpack、移动端发布、远程接口等功能,建议直接拦截:
http.request.uri.path eq "/xmlrpc.php"
动作:
Block
如果必须使用,可以只允许特定 IP 或服务访问。
5. 限制异常国家或地区访问
如果你的网站只面向中文用户,可以考虑对明显无业务需求的地区启用 Challenge 或 Block。但不建议盲目屏蔽大量国家,因为可能影响搜索引擎、海外用户、CDN 节点回源或第三方服务。
较温和的策略是:
(ip.geoip.country in {"RU" "KP" "IR"} )
动作:
Managed Challenge
根据实际日志观察后再调整。
六、防止源站被绕过访问
仅仅开启 Cloudflare 代理还不够,如果攻击者知道源站 IP,仍然可以直接访问服务器。因此,源站防火墙必须限制只允许 Cloudflare IP 回源。
1. 服务器防火墙只放行 Cloudflare IP
你可以在服务器防火墙、安全组、Nginx、Apache 或系统防火墙中设置规则,只允许 Cloudflare IP 段访问 80 和 443 端口。
Cloudflare 官方 IP 段地址:
https://www.cloudflare.com/ips/
在云服务器安全组中,可以设置:
- 80 端口:仅允许 Cloudflare IPv4/IPv6;
- 443 端口:仅允许 Cloudflare IPv4/IPv6;
- SSH 端口:仅允许自己的固定 IP;
- 数据库端口:禁止公网访问。
2. 不要将数据库暴露公网
MySQL、Redis、PostgreSQL、MongoDB 等数据库服务不应暴露在公网。尤其是 Redis 未授权访问、MongoDB 弱口令等问题非常常见。
建议:
- 数据库仅监听
127.0.0.1; - 或仅允许内网访问;
- 设置强密码;
- 禁止 root 远程登录;
- 定期备份;
- 使用最小权限账号。
3. SSH 端口安全加固
Cloudflare 默认不代理 SSH,因此服务器 SSH 端口仍需单独保护。
建议:
- 禁用 root 密码登录;
- 使用密钥登录;
- 修改默认 22 端口;
- 使用 Fail2Ban;
- 仅允许固定 IP 登录;
- 云安全组限制来源;
- 定期检查登录日志。
七、Bot 与恶意爬虫防护
恶意爬虫会消耗带宽、采集内容、刷接口、抢资源,甚至拖垮服务器。
1. 开启 Bot Fight Mode
Cloudflare 免费套餐提供 Bot Fight Mode,可以自动识别部分恶意机器人并进行干扰。
路径:
Security → Bots → Bot Fight Mode
建议开启。但如果你的网站依赖某些自动化工具或监控服务,开启后需要观察是否误伤。
2. 允许搜索引擎正常抓取
站长最担心的是防护误伤百度、Google、Bing 等搜索引擎蜘蛛。配置防护时,应注意:
- 不要无差别拦截所有海外 IP;
- 不要对全站开启过高等级挑战;
- 检查搜索引擎蜘蛛 UA 与 IP 是否真实;
- 使用 Cloudflare 日志观察是否被挑战或阻断。
对于内容站来说,SEO 流量很重要,因此安全策略应兼顾搜索引擎抓取。
3. 对高频访问接口限速
如果你的网站有搜索接口、登录接口、评论接口、API 接口,可以使用 Rate Limiting 限制访问频率。
例如:
路径:/wp-login.php
规则:1 分钟内超过 5 次请求
动作:Managed Challenge 或 Block
如果没有付费 Rate Limiting,也可以通过 WAF 规则、源站 Nginx 限速、应用层验证码等方式实现。
八、缓存与安全的平衡
Cloudflare 不仅能防护,也能通过缓存降低源站压力。对于 CC 攻击,合理缓存可以极大缓解服务器负载。
1. 静态资源缓存
建议缓存以下资源:
- 图片:jpg、png、webp、gif、svg;
- CSS;
- JavaScript;
- 字体文件;
- 视频片段;
- 下载文件。
可设置较长缓存时间:
Browser Cache TTL: 1 month
Edge Cache TTL: 1 month
2. 动态页面谨慎缓存
对于 WordPress、论坛、会员系统、电商网站,不建议直接全站缓存动态 HTML,否则可能导致:
- 登录状态错乱;
- 用户看到他人页面;
- 购物车异常;
- 后台页面被缓存;
- 评论或文章更新延迟。
如果需要缓存 HTML,应设置绕过规则,例如:
/wp-admin*
/wp-login.php
/cart*
/checkout*
/my-account*
3. 攻击时开启 Under Attack Mode
当网站遭遇明显 CC 攻击时,可以临时开启:
Security → Settings → Under Attack Mode
该模式会对访客进行更严格的浏览器验证。平时不建议长期开启,因为会影响用户体验和搜索引擎抓取。
九、推荐的 Cloudflare 安全等级配置
对于普通站长,可以参考以下配置:
| 配置项 | 推荐设置 |
|---|---|
| SSL/TLS 模式 | Full Strict |
| Always Use HTTPS | 开启 |
| Automatic HTTPS Rewrites | 开启 |
| HSTS | 谨慎开启 |
| Security Level | Medium |
| Bot Fight Mode | 开启 |
| Browser Integrity Check | 开启 |
| WAF Managed Rules | 开启 |
| 后台路径保护 | Managed Challenge |
| XML-RPC | 不使用则 Block |
| 敏感文件扫描 | Block |
| 源站防火墙 | 仅允许 Cloudflare IP |
| SSH | 仅允许固定 IP |
| 数据库端口 | 禁止公网访问 |
这套配置适合大多数博客、企业官网、内容站、资源站、文档站和中小型业务网站。
十、日志监控与持续优化
安全不是一次性配置,而是持续优化的过程。Cloudflare 提供了安全事件日志,可以帮助站长了解攻击情况。
1. 定期查看 Security Events
路径:
Security → Events
重点关注:
- 被拦截的 URI;
- 攻击来源国家;
- 触发的规则;
- User-Agent;
- 请求频率;
- 是否误伤正常用户;
- 是否有大量访问后台路径。
通过日志可以发现很多问题。例如某个 IP 段持续扫描 /.env,可以增加更严格规则;某个正常接口被误拦截,可以添加例外规则。
2. 检查源站日志
Cloudflare 日志只能看到边缘层面的情况,源站日志同样重要。建议定期查看:
- Nginx access.log;
- Nginx error.log;
- Apache 日志;
- PHP-FPM 错误日志;
- 应用程序日志;
- 登录日志;
- 数据库慢查询日志。
如果发现大量请求绕过 Cloudflare 直接访问源站,说明源站 IP 可能泄露,必须立即处理。
3. 定期复查规则
网站业务会变化,安全规则也要随之调整。比如:
- 新增接口后是否需要限速;
- 新增后台路径是否需要保护;
- 新增子域名是否开启代理;
- 新增第三方服务是否需要放行;
- 旧规则是否误伤;
- 是否存在无用 DNS 记录。
建议每月至少复查一次 Cloudflare 配置。
十一、常见误区与注意事项
1. 以为用了 Cloudflare 就绝对安全
Cloudflare 能抵御大量网络层和应用层攻击,但不能替你修复源代码漏洞。如果网站程序存在严重漏洞,例如后台弱口令、插件漏洞、文件上传漏洞、SQL 注入等,仍然可能被入侵。
2. Flexible SSL 不等于安全
Flexible 模式只加密用户到 Cloudflare 的连接,Cloudflare 到源站仍是 HTTP。攻击者如果处于回源链路中,仍可能窃听或篡改数据。站长应尽量使用 Full Strict。
3. 过度拦截会影响 SEO
有些站长为了安全直接屏蔽所有海外 IP,或者全站开启强验证。这可能导致 Googlebot、Bingbot、社交媒体抓取器、第三方监控服务无法访问网站。安全策略应根据业务定位调整。
4. 忽略源站防火墙
很多人以为开启橙色云朵就完成了防护,但如果源站 IP 被发现,攻击者仍可绕过 Cloudflare。限制源站只允许 Cloudflare IP 回源,是非常关键的一步。
5. 不做备份
安全防护再完善,也不能代替备份。网站应定期备份数据库、附件、配置文件和程序代码。建议至少保留:
- 每日数据库备份;
- 每周完整备份;
- 异地备份;
- 可验证恢复的备份。
十二、适合站长的最终加固清单
下面给出一份可直接执行的 Cloudflare 安全加固清单:
- 域名接入 Cloudflare,并核对所有 DNS 记录;
- 网站主域名与 www 子域名开启橙色云朵代理;
- 邮件、FTP、SSH 等非 HTTP 服务保持 DNS only;
- 源站安装有效 SSL 证书;
- Cloudflare SSL/TLS 设置为 Full Strict;
- 开启 Always Use HTTPS;
- 开启 Automatic HTTPS Rewrites;
- 根据条件谨慎开启 HSTS;
- 开启 Browser Integrity Check;
- 开启 Bot Fight Mode;
- 开启 WAF 托管规则;
- 创建规则拦截
/.env、/.git、backup等敏感路径; - 对后台登录路径启用 Managed Challenge;
- WordPress 不使用 XML-RPC 时直接拦截;
- 对登录、评论、搜索、API 等高频接口设置限速;
- 源站防火墙仅允许 Cloudflare IP 访问 80/443;
- SSH 仅允许固定 IP 或使用密钥登录;
- 数据库、Redis 等服务禁止公网访问;
- 定期查看 Cloudflare Security Events;
- 定期检查源站日志与备份可用性。
结语
Cloudflare 对站长来说,是一套性价比极高的网站安全与性能增强工具。它不仅能提供 CDN 加速,还能隐藏源站、抵御 DDoS、过滤恶意请求、增强 HTTPS 安全、保护后台登录路径,并通过 WAF 规则帮助站点阻挡大量自动化攻击。
不过,Cloudflare 并不是“万能防护罩”。真正可靠的网站安全,需要 Cloudflare、源站防火墙、服务器安全、程序更新、权限控制、日志监控和数据备份共同配合。对于个人站长和中小网站来说,最重要的是先完成基础加固:开启代理、使用 Full Strict、保护后台、拦截敏感路径、限制源站回源、关闭不必要端口。
只要按照本文方案逐步配置,你的网站安全性将会明显提升,面对常见扫描、恶意爬虫、爆破攻击和小规模 CC 攻击时,也会更加从容稳定。