Cloudflare 加固实战:从隐藏源站 IP 到只放行回源流量
Cloudflare 安全加固方案|附完整命令
在现代 Web 架构中,Cloudflare 已经不仅仅是一个 CDN 加速服务,它同时承担了 DNS 托管、DDoS 防护、WAF Web 应用防火墙、Bot 管理、访问控制、TLS 证书、安全日志分析等多重角色。对于企业网站、API 服务、SaaS 平台、WordPress 站点、静态站点以及自建业务系统来说,合理配置 Cloudflare 可以显著提升整体安全性。
但需要注意的是:仅仅把域名接入 Cloudflare 并不等于安全加固完成。如果源站 IP 泄露、源站防火墙未限制 Cloudflare 回源 IP、TLS 模式配置错误、WAF 规则缺失、后台路径裸露,攻击者仍然可以绕过 Cloudflare 直接攻击源站。
本文将系统介绍一套 Cloudflare 安全加固方案,并提供完整命令,适用于 Linux 服务器、Nginx、常规 Web 站点、API 服务以及自建后台系统。
一、Cloudflare 安全加固总体思路
Cloudflare 安全加固的核心目标是:
- 隐藏源站真实 IP
- 只允许 Cloudflare 访问源站
- 强制 HTTPS 加密访问
- 开启 WAF 和安全规则
- 限制后台、API、敏感路径访问
- 降低恶意爬虫、扫描器、爆破请求影响
- 启用安全响应头
- 建立日志审计和攻击监控机制
一套完整的 Cloudflare 防护架构通常如下:
用户 / 攻击者
|
v
Cloudflare DNS / CDN / WAF / DDoS 防护
|
v
源站服务器 Nginx / Apache / 应用服务
正确的安全加固重点在于:
所有外部流量都必须先经过 Cloudflare,再到达源站。任何直接访问源站 IP 的请求都应该被拒绝。
二、接入 Cloudflare 前的准备工作
在正式配置 Cloudflare 之前,建议先完成以下准备:
1. 确认域名 DNS 管理权
你需要将域名 DNS 托管到 Cloudflare,通常需要修改域名注册商处的 NS 服务器。
例如 Cloudflare 会提供类似如下 NS:
arya.ns.cloudflare.com
karl.ns.cloudflare.com
然后在域名注册商后台将原来的 NS 修改为 Cloudflare 提供的 NS。
2. 记录当前 DNS 解析
迁移 DNS 前,建议导出或截图当前 DNS 记录,包括:
- A 记录
- AAAA 记录
- CNAME 记录
- MX 邮件记录
- TXT 记录
- SPF / DKIM / DMARC 记录
- 子域名解析记录
尤其注意邮件相关记录不要遗漏,否则可能影响邮件收发。
3. 检查源站服务
在加固之前,先确认源站服务正常:
curl -I http://your-domain.com
curl -I https://your-domain.com
也可以直接访问源站 IP 测试:
curl -I http://源站IP
如果源站 IP 可直接访问,后续必须进行防火墙限制。
三、Cloudflare DNS 安全配置
1. 开启代理模式
在 Cloudflare DNS 页面中,常见记录如下:
A example.com 1.2.3.4
A www.example.com 1.2.3.4
需要将网站相关记录设置为橙色云朵状态:
Proxied
也就是启用 Cloudflare 代理。
如果是以下类型记录,通常不建议开启代理:
MX 邮件记录
mail 子域名
ftp 子域名
SSH 相关子域名
建议配置方式:
example.com Proxied
www.example.com Proxied
api.example.com Proxied
admin.example.com Proxied 或配合 Zero Trust
mail.example.com DNS only
2. 避免源站 IP 泄露
源站 IP 泄露是 Cloudflare 防护中最常见的问题。攻击者一旦获取源站真实 IP,就可以绕过 Cloudflare 直接攻击服务器。
常见泄露方式包括:
- 历史 DNS 记录泄露
- 子域名未代理
- 邮件服务器与 Web 服务器共用 IP
- SSL 证书透明日志泄露
- GitHub、配置文件、日志中泄露 IP
- 服务器默认站点暴露
- 通过 Shodan、FOFA、Censys 搜索到源站
建议措施:
- Web 源站单独使用服务器,不与邮件服务共用 IP。
- 所有 Web 子域名尽量开启 Cloudflare 代理。
- 更换已经泄露过的源站 IP。
- 源站只允许 Cloudflare IP 回源。
- 不在公开仓库暴露服务器 IP。
四、配置 SSL/TLS 安全策略
Cloudflare 提供多种 SSL/TLS 模式:
Off
Flexible
Full
Full Strict
强烈建议使用:
Full (strict)
1. 为什么不建议 Flexible?
Flexible 模式下:
用户 <=> Cloudflare:HTTPS
Cloudflare <=> 源站:HTTP
这意味着 Cloudflare 到源站之间不是加密连接,存在安全风险,并且容易导致 HTTPS 跳转循环。
2. 推荐模式 Full Strict
Full Strict 模式下:
用户 <=> Cloudflare:HTTPS
Cloudflare <=> 源站:HTTPS
同时 Cloudflare 会校验源站证书有效性。
五、安装 Cloudflare Origin Certificate
Cloudflare 可以为源站签发 Origin Certificate,用于 Cloudflare 到源站之间的 HTTPS 加密。
在 Cloudflare 后台:
SSL/TLS -> Origin Server -> Create Certificate
选择:
Let Cloudflare generate a private key and a CSR
证书域名可以填写:
example.com
*.example.com
然后将证书和私钥保存到服务器。
1. 创建证书目录
sudo mkdir -p /etc/nginx/ssl/cloudflare
sudo chmod 700 /etc/nginx/ssl/cloudflare
2. 保存证书文件
sudo nano /etc/nginx/ssl/cloudflare/origin.pem
粘贴 Cloudflare Origin Certificate 内容。
保存私钥:
sudo nano /etc/nginx/ssl/cloudflare/origin.key
粘贴 Private Key 内容。
设置权限:
sudo chmod 600 /etc/nginx/ssl/cloudflare/origin.key
sudo chmod 644 /etc/nginx/ssl/cloudflare/origin.pem
六、Nginx 配置 HTTPS 源站
以下以 Nginx 为例。
1. 编辑站点配置
sudo nano /etc/nginx/conf.d/example.com.conf
示例配置:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com www.example.com;
ssl_certificate /etc/nginx/ssl/cloudflare/origin.pem;
ssl_certificate_key /etc/nginx/ssl/cloudflare/origin.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers off;
root /var/www/example.com;
index index.html index.htm index.php;
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
location / {
try_files $uri $uri/ =404;
}
}
测试配置:
sudo nginx -t
重载 Nginx:
sudo systemctl reload nginx
七、只允许 Cloudflare IP 访问源站
这是 Cloudflare 安全加固中最关键的一步。
如果不做这一步,攻击者只要知道源站 IP,就可以绕过 Cloudflare 的 WAF、DDoS 防护和访问限制。
Cloudflare 官方 IP 列表地址:
https://www.cloudflare.com/ips-v4
https://www.cloudflare.com/ips-v6
八、使用 UFW 限制 Cloudflare 回源
如果你的服务器使用 Ubuntu/Debian,并启用了 UFW,可以使用以下方式。
1. 重置 UFW,谨慎操作
如果你是远程 SSH 登录服务器,执行防火墙命令前一定要确保 SSH 端口已放行,否则可能把自己锁在服务器外。
假设 SSH 端口为 22:
sudo ufw allow 22/tcp
如果 SSH 端口为 2222:
sudo ufw allow 2222/tcp
允许常规出站:
sudo ufw default deny incoming
sudo ufw default allow outgoing
2. 放行 Cloudflare IPv4
for ip in $(curl -s https://www.cloudflare.com/ips-v4); do
sudo ufw allow from $ip to any port 80 proto tcp
sudo ufw allow from $ip to any port 443 proto tcp
done
3. 放行 Cloudflare IPv6
for ip in $(curl -s https://www.cloudflare.com/ips-v6); do
sudo ufw allow from $ip to any port 80 proto tcp
sudo ufw allow from $ip to any port 443 proto tcp
done
4. 拒绝其他访问 80/443
UFW 默认拒绝入站后,不需要额外 deny。启用 UFW:
sudo ufw enable
查看规则:
sudo ufw status numbered
测试端口:
sudo ss -tulnp
九、使用 iptables 限制 Cloudflare 回源
如果你使用 iptables,可以参考以下规则。
1. 创建脚本
sudo nano /usr/local/bin/cloudflare-firewall.sh
写入以下内容:
#!/bin/bash
# 清空已有规则,请根据生产环境谨慎使用
iptables -F
iptables -X
ip6tables -F
ip6tables -X
# 默认策略
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
ip6tables -P INPUT DROP
ip6tables -P FORWARD DROP
ip6tables -P OUTPUT ACCEPT
# 允许本地回环
iptables -A INPUT -i lo -j ACCEPT
ip6tables -A INPUT -i lo -j ACCEPT
# 允许已建立连接
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
ip6tables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# 允许 SSH,请按实际端口修改
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
ip6tables -A INPUT -p tcp --dport 22 -j ACCEPT
# 放行 Cloudflare IPv4 到 80/443
for ip in $(curl -s https://www.cloudflare.com/ips-v4); do
iptables -A INPUT -p tcp -s $ip --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -s $ip --dport 443 -j ACCEPT
done
# 放行 Cloudflare IPv6 到 80/443
for ip in $(curl -s https://www.cloudflare.com/ips-v6); do
ip6tables -A INPUT -p tcp -s $ip --dport 80 -j ACCEPT
ip6tables -A INPUT -p tcp -s $ip --dport 443 -j ACCEPT
done
echo "Cloudflare firewall rules applied."
添加执行权限:
sudo chmod +x /usr/local/bin/cloudflare-firewall.sh
执行脚本:
sudo /usr/local/bin/cloudflare-firewall.sh
2. 持久化 iptables 规则
Debian/Ubuntu 安装:
sudo apt update
sudo apt install -y iptables-persistent
保存规则:
sudo netfilter-persistent save
sudo netfilter-persistent reload
CentOS/RHEL 可使用:
sudo service iptables save
sudo systemctl enable iptables
十、使用 nftables 限制 Cloudflare 回源
较新的 Linux 系统推荐使用 nftables。
1. 安装 nftables
Debian/Ubuntu:
sudo apt update
sudo apt install -y nftables
sudo systemctl enable nftables
sudo systemctl start nftables
CentOS/RHEL:
sudo dnf install -y nftables
sudo systemctl enable nftables
sudo systemctl start nftables
2. 创建 Cloudflare IP 更新脚本
sudo nano /usr/local/bin/update-cloudflare-nft.sh
写入:
#!/bin/bash
CF4=$(curl -s https://www.cloudflare.com/ips-v4 | awk '{print $0}')
CF6=$(curl -s https://www.cloudflare.com/ips-v6 | awk '{print $0}')
cat > /etc/nftables.conf <
授权并执行:
sudo chmod +x /usr/local/bin/update-cloudflare-nft.sh
sudo /usr/local/bin/update-cloudflare-nft.sh
查看规则:
sudo nft list ruleset
3. 定时更新 Cloudflare IP
Cloudflare IP 段可能发生变化,建议定期更新。
编辑 cron:
sudo crontab -e
添加:
0 3 * * * /usr/local/bin/update-cloudflare-nft.sh >/var/log/update-cloudflare-nft.log 2>&1
表示每天凌晨 3 点自动更新规则。
十一、恢复真实访问者 IP
启用 Cloudflare 代理后,Nginx 默认看到的访问 IP 可能是 Cloudflare 节点 IP,而不是用户真实 IP。因此需要配置真实 IP 还原。
Cloudflare 会通过请求头传递真实 IP:
CF-Connecting-IP
1. 创建 Cloudflare Real IP 配置
sudo nano /etc/nginx/conf.d/cloudflare-real-ip.conf
写入以下内容:
real_ip_header CF-Connecting-IP;
继续添加 Cloudflare IP 段:
curl -s https://www.cloudflare.com/ips-v4 | while read ip; do
echo "set_real_ip_from $ip;"
done
curl -s https://www.cloudflare.com/ips-v6 | while read ip; do
echo "set_real_ip_from $ip;"
done
可以自动生成完整配置:
sudo bash -c 'echo "real_ip_header CF-Connecting-IP;" > /etc/nginx/conf.d/cloudflare-real-ip.conf'
curl -s https://www.cloudflare.com/ips-v4 | while read ip; do
echo "set_real_ip_from $ip;" | sudo tee -a /etc/nginx/conf.d/cloudflare-real-ip.conf
done
curl -s https://www.cloudflare.com/ips-v6 | while read ip; do
echo "set_real_ip_from $ip;" | sudo tee -a /etc/nginx/conf.d/cloudflare-real-ip.conf
done
测试并重载:
sudo nginx -t
sudo systemctl reload nginx
十二、Cloudflare WAF 基础加固
Cloudflare WAF 是防御 Web 攻击的重要模块。建议至少开启以下功能。
1. 开启托管规则
路径:
Security -> WAF -> Managed rules
建议启用:
Cloudflare Managed Ruleset
Cloudflare OWASP Core Ruleset
如果是 WordPress 站点,还可以启用:
Cloudflare WordPress Ruleset
OWASP 规则可防护常见攻击:
- SQL 注入
- XSS 跨站脚本
- 命令注入
- 本地文件包含
- 远程文件包含
- 协议异常请求
- 恶意 User-Agent
2. 配置安全级别
路径:
Security -> Settings -> Security Level
建议设置为:
Medium
如果遭遇攻击,可以临时提高为:
High
I'm Under Attack
但不建议长期使用 “I'm Under Attack” 模式,因为它可能影响正常用户体验和 API 调用。
十三、创建自定义 WAF 规则
Cloudflare 自定义规则非常实用,可以根据国家、URI、User-Agent、请求方法、IP、Header 等维度进行控制。
1. 限制后台路径访问
例如后台路径为:
/admin
可以创建规则:
(http.request.uri.path starts_with "/admin")
动作:
Managed Challenge
如果后台只允许固定 IP 访问:
(http.request.uri.path starts_with "/admin" and ip.src ne 你的办公IP)
动作:
Block
2. 保护 WordPress 登录入口
WordPress 常见敏感路径:
/wp-login.php
/wp-admin
/xmlrpc.php
规则示例:
(http.request.uri.path eq "/wp-login.php" or http.request.uri.path starts_with "/wp-admin")
动作:
Managed Challenge
阻止 XML-RPC:
(http.request.uri.path eq "/xmlrpc.php")
动作:
Block
3. 阻止恶意扫描路径
常见扫描路径包括:
/.env
/.git
/config.php
/backup.zip
/phpinfo.php
/server-status
Cloudflare 表达式:
(
http.request.uri.path contains ".env" or
http.request.uri.path contains ".git" or
http.request.uri.path contains "phpinfo" or
http.request.uri.path contains "backup" or
http.request.uri.path contains "server-status"
)
动作:
Block
4. 阻止非常见 HTTP 方法
一般网站只需要:
GET
POST
HEAD
规则:
not http.request.method in ("GET", "POST", "HEAD")
动作:
Block
对于 REST API,可根据业务放行:
GET
POST
PUT
PATCH
DELETE
OPTIONS
十四、Rate Limiting 限速防护
登录接口、验证码接口、短信接口、API 接口容易被刷。
建议对以下路径设置 Rate Limiting:
/login
/api/login
/wp-login.php
/register
/send-sms
/graphql
示例策略:
路径:/api/login
条件:每个 IP 1 分钟超过 10 次
动作:Managed Challenge 或 Block
持续时间:10 分钟
Cloudflare 表达式示例:
(http.request.uri.path eq "/api/login")
对于 API 接口:
(http.request.uri.path starts_with "/api/")
可以设置:
每 IP 每分钟 120 次
超过后 Challenge 或 Block
如果是公开 API,应结合鉴权、签名、Token、用户维度限速,不要只依赖 IP。
十五、Bot 防护配置
Cloudflare 的 Bot Fight Mode 或 Super Bot Fight Mode 可以减少自动化攻击和恶意爬虫。
路径:
Security -> Bots
建议:
开启 Bot Fight Mode
如果你使用的是付费套餐,可以配置:
Definitely automated: Block
Likely automated: Managed Challenge
Verified bots: Allow
需要注意:
- 搜索引擎爬虫不要误封
- 支付回调、Webhook、监控服务要加入白名单
- API 客户端可能被误判,需要单独规则处理
十六、启用 HSTS
HSTS 可以强制浏览器只使用 HTTPS 访问网站,降低 SSL 剥离攻击风险。
路径:
SSL/TLS -> Edge Certificates -> HTTP Strict Transport Security
建议配置:
Enable HSTS: On
Max Age: 6 months 或 1 year
Include subdomains: 根据实际情况开启
Preload: 谨慎开启
如果所有子域名都支持 HTTPS,可以开启 Include subdomains。
如果不确定,不要开启 preload,否则后续回退困难。
也可以在 Nginx 添加:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
十七、配置安全响应头
安全响应头可以降低 XSS、点击劫持、MIME 混淆等风险。
Nginx 示例:
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "geolocation=(), microphone=(), camera=()" always;
如果业务允许,可以添加 CSP:
add_header Content-Security-Policy "default-src 'self'; img-src 'self' data: https:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https:; style-src 'self' 'unsafe-inline' https:;" always;
完整 Nginx 示例:
server {
listen 443 ssl http2;
server_name example.com www.example.com;
ssl_certificate /etc/nginx/ssl/cloudflare/origin.pem;
ssl_certificate_key /etc/nginx/ssl/cloudflare/origin.key;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "geolocation=(), microphone=(), camera=()" always;
root /var/www/example.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
十八、防止直接 IP 访问源站
除了防火墙限制外,还建议在 Nginx 配置默认站点,拒绝非指定域名访问。
server {
listen 80 default_server;
listen 443 ssl default_server;
server_name _;
ssl_certificate /etc/nginx/ssl/cloudflare/origin.pem;
ssl_certificate_key /etc/nginx/ssl/cloudflare/origin.key;
return 444;
}
444 是 Nginx 特殊状态码,表示直接关闭连接。
测试配置:
sudo nginx -t
sudo systemctl reload nginx
十九、Cloudflare Page Rules / Configuration Rules
可以为不同路径设置不同安全策略。
1. 后台路径禁用缓存
URL: example.com/admin/*
Cache Level: Bypass
Security Level: High
2. API 路径禁用缓存
URL: example.com/api/*
Cache Level: Bypass
3. 静态资源缓存
URL: example.com/static/*
Cache Level: Cache Everything
Edge Cache TTL: 1 month
对于新版 Cloudflare,建议使用:
Rules -> Cache Rules
Rules -> Configuration Rules
Rules -> Redirect Rules
二十、Cloudflare Zero Trust 保护后台
对于管理后台、内部门户、运维面板,推荐使用 Cloudflare Zero Trust Access。
适用场景:
/admin/dashboard/wp-admin- Grafana
- Jenkins
- GitLab
- Kibana
- Portainer
- 宝塔面板
- 内部 API 文档
配置思路:
Zero Trust -> Access -> Applications -> Add an application
设置访问策略:
只允许指定邮箱域名
只允许指定邮箱账号
启用 OTP
启用 GitHub / Google / Azure AD 登录
这样即使后台路径暴露,也需要先通过 Cloudflare Access 身份认证。
二十一、源站 SSH 安全加固
Cloudflare 保护的是 Web 流量,默认不保护 SSH。因此服务器 SSH 也需要加固。
1. 修改 SSH 端口
sudo nano /etc/ssh/sshd_config
修改:
Port 2222
重启 SSH:
sudo systemctl restart ssh
放行新端口:
sudo ufw allow 2222/tcp
确认新端口可以连接后,再关闭旧端口。
2. 禁止 root 登录
sudo nano /etc/ssh/sshd_config
设置:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
重启:
sudo systemctl restart ssh
3. 使用 fail2ban 防爆破
安装:
sudo apt update
sudo apt install -y fail2ban
创建配置:
sudo nano /etc/fail2ban/jail.local
写入:
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 3600
findtime = 600
重启:
sudo systemctl restart fail2ban
查看状态:
sudo fail2ban-client status sshd
二十二、日志审计与攻击分析
Cloudflare 提供 Security Events,可以查看被 WAF、规则、挑战拦截的请求。
路径:
Security -> Events
重点关注:
- 攻击来源国家
- 高频请求 IP
- 被拦截路径
- User-Agent
- 命中的 WAF 规则
- 请求方法
- URI 查询参数
源站也应保留 Nginx 日志:
tail -f /var/log/nginx/example.com.access.log
tail -f /var/log/nginx/example.com.error.log
查看访问最多的 IP:
awk '{print $1}' /var/log/nginx/example.com.access.log | sort | uniq -c | sort -nr | head
查看访问最多的路径:
awk '{print $7}' /var/log/nginx/example.com.access.log | sort | uniq -c | sort -nr | head
查看 404 扫描:
awk '$9==404 {print $7}' /var/log/nginx/example.com.access.log | sort | uniq -c | sort -nr | head
二十三、常见问题排查
1. 出现 521 错误
原因通常是 Cloudflare 无法连接源站。
检查:
sudo systemctl status nginx
sudo ss -tulnp | grep nginx
sudo ufw status
确认 Cloudflare IP 已放行,80/443 正常监听。
2. 出现 525 错误
表示 SSL 握手失败。
检查:
sudo nginx -t
openssl s_client -connect example.com:443 -servername example.com
确认源站 SSL 证书路径正确。
3. 出现 526 错误
表示证书校验失败,通常发生在 Full Strict 模式。
解决:
- 使用有效证书
- 使用 Cloudflare Origin Certificate
- 检查证书域名是否匹配
4. 获取不到真实 IP
检查 Nginx 是否配置:
real_ip_header CF-Connecting-IP;
set_real_ip_from Cloudflare_IP段;
然后重载:
sudo nginx -t
sudo systemctl reload nginx
二十四、推荐加固清单
最终建议你按照以下清单逐项确认:
[ ] 域名 DNS 已接入 Cloudflare
[ ] Web 记录已开启 Proxied
[ ] SSL/TLS 使用 Full Strict
[ ] 源站安装 Cloudflare Origin Certificate
[ ] 源站防火墙只允许 Cloudflare IP 访问 80/443
[ ] Nginx 已恢复真实访问者 IP
[ ] 默认站点已拒绝直接 IP 访问
[ ] WAF Managed Rules 已开启
[ ] OWASP Core Ruleset 已开启
[ ] 后台路径已增加 Challenge 或 Zero Trust
[ ] 登录/API 接口已配置限速
[ ] XML-RPC、.env、.git 等敏感路径已拦截
[ ] HSTS 已按需开启
[ ] 安全响应头已配置
[ ] SSH 已禁用 root 和密码登录
[ ] fail2ban 已启用
[ ] Cloudflare Security Events 定期审计
[ ] Cloudflare IP 段更新脚本已定时执行
二十五、总结
Cloudflare 是非常强大的安全平台,但安全效果取决于配置是否完整。很多站点虽然接入了 Cloudflare,但因为源站 IP 暴露、防火墙未限制回源、TLS 模式错误、后台路径未保护,最终仍然被绕过攻击。
一套有效的 Cloudflare 安全加固方案应重点做到:
- DNS 代理隐藏源站
- Full Strict 保证端到端加密
- 源站防火墙只允许 Cloudflare 回源
- WAF 拦截常见 Web 攻击
- Rate Limiting 抑制爆破和刷接口
- Zero Trust 保护后台入口
- 日志审计持续发现异常
如果只能做一项最重要的配置,那一定是:
在源站防火墙中只允许 Cloudflare IP 访问 80 和 443 端口。
只有这样,Cloudflare 的 DDoS 防护、WAF、Bot 防护和访问控制才真正无法被绕过。