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

Cloudflare 漏洞修复实战手册:从 WAF、Tunnel 到源站加固的完整命令指南

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

Cloudflare 最新漏洞修复教程|附完整命令

说明:Cloudflare 的产品形态比较多,包括 CDN、WAF、Zero Trust、Cloudflare Tunnel、cloudflared 客户端、WARP 客户端、Pages、Workers、R2、API Token 等。很多“Cloudflare 漏洞”并不是单纯在 Cloudflare 控制台里点一下就能修复,而是需要同时检查边缘安全策略、源站配置、客户端版本、API 权限、访问日志和密钥轮换

由于安全漏洞会持续更新,本文不绑定某一个固定 CVE,而是整理一套适用于大多数 Cloudflare 相关安全事件的通用修复流程,并附带常用完整命令。你可以将本文作为应急排查和加固手册使用。


一、为什么 Cloudflare 漏洞修复不能只看控制台?

很多网站接入 Cloudflare 后,会误以为只要打开 CDN 代理,网站就天然安全了。实际上 Cloudflare 主要负责边缘防护,例如隐藏源站 IP、抵御 DDoS、过滤恶意请求、提供 WAF 规则等。但如果源站服务器、应用程序、API Token、Tunnel 客户端或防火墙配置存在问题,攻击者仍然可能绕过 Cloudflare 直接攻击源站。

常见风险包括:

  1. 源站 IP 泄露
    攻击者绕过 Cloudflare,直接访问服务器真实 IP。

  2. cloudflared 版本过旧
    Cloudflare Tunnel 客户端存在安全风险或兼容性问题。

  3. WAF 规则未开启或规则集过旧
    常见 Web 攻击无法被有效拦截,例如 SQL 注入、XSS、路径穿越等。

  4. API Token 权限过大
    一旦泄露,攻击者可修改 DNS、关闭安全规则或接管配置。

  5. SSL/TLS 模式配置不当
    例如仍然使用 Flexible 模式,导致 Cloudflare 到源站之间未加密。

  6. 源站防火墙未限制 Cloudflare IP
    即使 DNS 已经代理,攻击者仍然可以直接访问源站端口。

  7. Zero Trust 或 Access 策略配置过宽
    内部应用暴露在公网,缺少身份认证或设备校验。

因此,修复 Cloudflare 相关漏洞时,应按“确认影响范围 → 更新组件 → 加固边缘规则 → 锁定源站 → 轮换凭据 → 验证修复”的顺序进行。


二、修复前准备:备份与信息收集

在执行任何修复操作之前,建议先收集当前环境信息,避免误操作导致服务中断。

1. 查看系统信息

uname -a
cat /etc/os-release

2. 查看当前 cloudflared 版本

如果你使用了 Cloudflare Tunnel,需要先确认 cloudflared 版本。

cloudflared --version

如果系统提示找不到命令,说明服务器可能没有安装 cloudflared,或者未加入环境变量。

可以使用以下命令查找:

which cloudflared
find / -name cloudflared 2>/dev/null

3. 查看 cloudflared 服务状态

systemctl status cloudflared

查看详细日志:

journalctl -u cloudflared -n 100 --no-pager

实时查看日志:

journalctl -u cloudflared -f

4. 备份 Tunnel 配置

cloudflared 配置通常位于以下目录:

/etc/cloudflared/
~/.cloudflared/

执行备份:

sudo mkdir -p /backup/cloudflare-$(date +%F)
sudo cp -a /etc/cloudflared /backup/cloudflare-$(date +%F)/ 2>/dev/null
sudo cp -a ~/.cloudflared /backup/cloudflare-$(date +%F)/ 2>/dev/null

查看备份结果:

ls -lah /backup/cloudflare-$(date +%F)/

三、第一步:更新 cloudflared 到最新版本

如果漏洞与 Cloudflare Tunnel 或 cloudflared 客户端有关,第一优先级就是升级客户端。

1. Debian / Ubuntu 系统升级 cloudflared

先更新软件源:

sudo apt update

如果 cloudflared 是通过 apt 安装的,可直接升级:

sudo apt install --only-upgrade cloudflared -y

如果提示找不到软件包,可以重新添加 Cloudflare 官方源。

安装依赖:

sudo apt install curl gpg apt-transport-https lsb-release -y

添加 Cloudflare GPG Key:

curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null

添加软件源:

echo "deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflared.list

更新并安装:

sudo apt update
sudo apt install cloudflared -y

确认版本:

cloudflared --version

重启服务:

sudo systemctl restart cloudflared
sudo systemctl status cloudflared

2. CentOS / RHEL / Rocky Linux / AlmaLinux 升级 cloudflared

安装或升级:

sudo yum update -y
sudo yum install cloudflared -y

如果系统使用 dnf

sudo dnf update -y
sudo dnf install cloudflared -y

如果软件源中没有 cloudflared,可以下载官方 RPM 包安装。以 x86_64 为例:

curl -L -o cloudflared.rpm https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-x86_64.rpm
sudo rpm -Uvh cloudflared.rpm

确认版本:

cloudflared --version

重启服务:

sudo systemctl restart cloudflared
sudo systemctl status cloudflared

3. 使用 Docker 部署的 cloudflared 更新方式

如果你是用 Docker 运行 cloudflared,需要拉取最新镜像并重新创建容器。

查看当前容器:

docker ps | grep cloudflared

拉取最新镜像:

docker pull cloudflare/cloudflared:latest

停止旧容器:

docker stop cloudflared

删除旧容器:

docker rm cloudflared

重新启动容器,示例:

docker run -d \
  --name cloudflared \
  --restart unless-stopped \
  cloudflare/cloudflared:latest \
  tunnel --no-autoupdate run --token YOUR_TUNNEL_TOKEN

查看日志:

docker logs -f cloudflared

注意:如果你使用 Docker Compose,请修改 compose 文件后执行更新。

示例 docker-compose.yml

services:
  cloudflared:
    image: cloudflare/cloudflared:latest
    container_name: cloudflared
    restart: unless-stopped
    command: tunnel --no-autoupdate run --token YOUR_TUNNEL_TOKEN

更新命令:

docker compose pull
docker compose up -d
docker compose logs -f cloudflared

四、第二步:检查并修复 Cloudflare Tunnel 配置

如果 Tunnel 配置不当,可能导致内部服务被错误暴露。

1. 查看 Tunnel 配置文件

sudo cat /etc/cloudflared/config.yml

常见配置示例:

tunnel: your-tunnel-id
credentials-file: /etc/cloudflared/your-tunnel-id.json

ingress:
  - hostname: app.example.com
    service: http://127.0.0.1:8080
  - service: http_status:404

请重点确认:

  • hostname 是否为预期域名;
  • service 是否指向正确的本地服务;
  • 是否存在多余暴露的内网端口;
  • 是否有兜底 http_status:404
  • 是否暴露了 Redis、MySQL、Elasticsearch、SSH 等敏感服务。

2. 删除不必要的暴露项

错误示例:

ingress:
  - hostname: db.example.com
    service: tcp://127.0.0.1:3306
  - hostname: redis.example.com
    service: tcp://127.0.0.1:6379
  - service: http_status:404

除非有严格的 Zero Trust 认证,否则不建议将数据库、缓存、管理端口通过 Tunnel 暴露。

修改配置:

sudo nano /etc/cloudflared/config.yml

修改后测试配置:

cloudflared tunnel ingress validate

测试路由匹配:

cloudflared tunnel ingress rule https://app.example.com

重启服务:

sudo systemctl restart cloudflared

查看日志:

journalctl -u cloudflared -n 50 --no-pager

五、第三步:开启并强化 Cloudflare WAF

Cloudflare WAF 是拦截常见攻击的重要防线。即使源站代码存在漏洞,WAF 也能在一定程度上降低风险。

1. 建议开启的安全功能

在 Cloudflare 控制台中进入:

Security → WAF

建议开启:

  • Cloudflare Managed Ruleset;
  • OWASP Core Ruleset;
  • Bot Fight Mode 或 Super Bot Fight Mode;
  • Rate Limiting Rules;
  • Security Level 至少设置为 Medium;
  • Challenge Passage 设置合理时间;
  • Browser Integrity Check;
  • Hotlink Protection,如有需要。

2. 创建基础 WAF 自定义规则

例如拦截常见管理后台路径:

(http.request.uri.path contains "/admin" or http.request.uri.path contains "/wp-admin")

动作为:

Managed Challenge

如果你的后台只允许固定 IP,可以使用:

(http.request.uri.path contains "/admin" and not ip.src in {1.2.3.4 5.6.7.8})

动作为:

Block

3. 拦截可疑扫描路径

表达式示例:

http.request.uri.path contains "/.env" or
http.request.uri.path contains "/.git" or
http.request.uri.path contains "/config.php" or
http.request.uri.path contains "/backup" or
http.request.uri.path contains "/phpinfo"

建议动作:

Block

4. 限制敏感接口请求频率

例如登录接口 /login

http.request.uri.path eq "/login"

速率限制建议:

10 requests per 1 minute

动作:

Managed Challenge

对于 API 接口,可以根据业务设置更严格的频率限制。例如:

http.request.uri.path starts_with "/api/"

建议结合来源 IP、国家、User-Agent、请求方法进行细化。


六、第四步:修复 SSL/TLS 配置风险

Cloudflare 的 SSL/TLS 模式非常关键。如果使用 Flexible 模式,用户到 Cloudflare 是 HTTPS,但 Cloudflare 到源站可能是 HTTP,这会带来中间人攻击和数据泄露风险。

1. 推荐模式

进入:

SSL/TLS → Overview

推荐选择:

Full 或 Full Strict

更推荐:

Full Strict

2. 安装源站证书

Cloudflare 可以签发 Origin Certificate。你可以在控制台:

SSL/TLS → Origin Server → Create Certificate

生成证书后,在源站安装。

假设证书保存为:

/etc/ssl/cloudflare/origin.pem
/etc/ssl/cloudflare/origin.key

创建目录:

sudo mkdir -p /etc/ssl/cloudflare
sudo chmod 700 /etc/ssl/cloudflare

上传证书后设置权限:

sudo chmod 600 /etc/ssl/cloudflare/origin.key
sudo chmod 644 /etc/ssl/cloudflare/origin.pem

3. Nginx 配置示例

编辑站点配置:

sudo nano /etc/nginx/sites-available/example.com

示例配置:

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/ssl/cloudflare/origin.pem;
    ssl_certificate_key /etc/ssl/cloudflare/origin.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers off;

    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

    root /var/www/html;
    index index.html index.htm index.php;

    location / {
        try_files $uri $uri/ =404;
    }
}

测试配置:

sudo nginx -t

重载 Nginx:

sudo systemctl reload nginx

4. Apache 配置示例

启用 SSL 模块:

sudo a2enmod ssl
sudo a2enmod headers

编辑配置:

sudo nano /etc/apache2/sites-available/example.com-ssl.conf

示例:


    ServerName example.com
    ServerAlias www.example.com

    DocumentRoot /var/www/html

    SSLEngine on
    SSLCertificateFile /etc/ssl/cloudflare/origin.pem
    SSLCertificateKeyFile /etc/ssl/cloudflare/origin.key

    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

启用站点:

sudo a2ensite example.com-ssl.conf
sudo apachectl configtest
sudo systemctl reload apache2

七、第五步:限制源站只允许 Cloudflare IP 访问

这是防止绕过 Cloudflare 的关键步骤。即使攻击者知道源站 IP,也无法直接访问 Web 服务。

1. 获取 Cloudflare IP 段

Cloudflare IPv4:

curl -s https://www.cloudflare.com/ips-v4

Cloudflare IPv6:

curl -s https://www.cloudflare.com/ips-v6

保存到本地:

curl -s https://www.cloudflare.com/ips-v4 -o /tmp/cf-ips-v4.txt
curl -s https://www.cloudflare.com/ips-v6 -o /tmp/cf-ips-v6.txt

2. 使用 UFW 限制访问

如果你的服务器使用 UFW,可以执行:

sudo ufw default deny incoming
sudo ufw default allow outgoing

允许 SSH,避免把自己锁在外面:

sudo ufw allow 22/tcp

允许 Cloudflare IPv4 访问 80 和 443:

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

允许 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

启用 UFW:

sudo ufw enable

查看规则:

sudo ufw status numbered

3. 使用 firewalld 限制访问

CentOS、RHEL、Rocky Linux 常用 firewalld。

启动服务:

sudo systemctl enable firewalld --now

允许 SSH:

sudo firewall-cmd --permanent --add-service=ssh

创建 Cloudflare zone:

sudo firewall-cmd --permanent --new-zone=cloudflare

添加 Cloudflare IP:

for ip in $(curl -s https://www.cloudflare.com/ips-v4); do
  sudo firewall-cmd --permanent --zone=cloudflare --add-source=$ip
done
for ip in $(curl -s https://www.cloudflare.com/ips-v6); do
  sudo firewall-cmd --permanent --zone=cloudflare --add-source=$ip
done

允许 HTTP 和 HTTPS:

sudo firewall-cmd --permanent --zone=cloudflare --add-service=http
sudo firewall-cmd --permanent --zone=cloudflare --add-service=https

重载规则:

sudo firewall-cmd --reload

查看配置:

sudo firewall-cmd --zone=cloudflare --list-all

4. 使用 iptables 限制访问

如果你使用 iptables,可以先允许本机回环和已建立连接:

sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

允许 SSH:

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

允许 Cloudflare IP 访问 80/443:

for ip in $(curl -s https://www.cloudflare.com/ips-v4); do
  sudo iptables -A INPUT -p tcp -s $ip --dport 80 -j ACCEPT
  sudo iptables -A INPUT -p tcp -s $ip --dport 443 -j ACCEPT
done

拒绝其他来源访问 80/443:

sudo iptables -A INPUT -p tcp --dport 80 -j DROP
sudo iptables -A INPUT -p tcp --dport 443 -j DROP

保存规则:

Debian / Ubuntu:

sudo apt install iptables-persistent -y
sudo netfilter-persistent save

CentOS / RHEL:

sudo service iptables save

八、第六步:轮换 Cloudflare API Token 和密钥

如果怀疑 API Token、Global API Key、Tunnel Token、服务账号凭据泄露,必须立即轮换。

1. 检查服务器中是否存在敏感凭据

grep -R "api_token\|CF_API\|CLOUDFLARE\|cloudflare" /etc /var/www /home 2>/dev/null

检查环境变量:

env | grep -i cloudflare

检查 Docker Compose:

grep -R "CF_\|CLOUDFLARE" /opt /srv /var/www 2>/dev/null

2. 删除不必要的明文凭据

例如 .env 文件中存在:

CF_API_TOKEN=xxxxxxxx

应替换为新的最小权限 Token,并确保文件权限正确:

chmod 600 .env

3. Cloudflare 控制台轮换 Token

进入:

My Profile → API Tokens

建议:

  • 删除不再使用的 Token;
  • 禁用 Global API Key 的使用;
  • 使用最小权限 API Token;
  • 限定 Zone 范围;
  • 限定操作权限,例如只允许 DNS Edit 或 Zone Read;
  • 为 CI/CD 单独创建 Token;
  • 定期轮换。

九、第七步:检查 DNS 代理状态和源站泄露

1. 检查 DNS 是否经过 Cloudflare 代理

使用 dig 查询:

dig example.com

如果返回的是 Cloudflare IP,说明代理可能正常。如果返回源站真实 IP,则可能未开启代理。

也可以查询:

dig +short example.com
dig +short www.example.com

2. 检查是否存在未代理子域名

常见泄露源站的子域名包括:

origin.example.com
direct.example.com
server.example.com
cpanel.example.com
mail.example.com
dev.example.com
test.example.com

如果这些子域名指向源站真实 IP,应考虑删除、代理或限制访问。

3. 检查历史 DNS 记录

即使当前 DNS 已隐藏,历史记录仍可能被第三方收录。因此防火墙限制源站访问比单纯隐藏 IP 更可靠。


十、第八步:加固源站 Web 服务

Cloudflare 是第一道防线,源站本身仍然需要安全加固。

1. 更新系统补丁

Debian / Ubuntu:

sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y

CentOS / RHEL:

sudo yum update -y

Rocky / AlmaLinux:

sudo dnf update -y

2. 更新 Nginx

sudo apt update
sudo apt install --only-upgrade nginx -y
sudo nginx -t
sudo systemctl reload nginx

CentOS 系:

sudo yum update nginx -y
sudo nginx -t
sudo systemctl reload nginx

3. 更新 Apache

Debian / Ubuntu:

sudo apt install --only-upgrade apache2 -y
sudo apachectl configtest
sudo systemctl reload apache2

CentOS 系:

sudo yum update httpd -y
sudo apachectl configtest
sudo systemctl reload httpd

4. 更新 PHP

Debian / Ubuntu:

sudo apt update
sudo apt upgrade php php-cli php-fpm php-common -y

重启 PHP-FPM:

sudo systemctl restart php*-fpm

5. 检查开放端口

sudo ss -tulnp

或:

sudo netstat -tulnp

如果没有 netstat:

sudo apt install net-tools -y

重点检查是否暴露了:

  • 3306 MySQL;
  • 5432 PostgreSQL;
  • 6379 Redis;
  • 9200 Elasticsearch;
  • 27017 MongoDB;
  • 8080/8000 管理后台;
  • 22 SSH 是否允许公网任意访问。

十一、第九步:检查日志,确认是否已被攻击

修复漏洞不等于攻击没有发生。修复后应查看日志,判断是否存在入侵痕迹。

1. 查看 Nginx 访问日志

sudo tail -n 200 /var/log/nginx/access.log

搜索敏感路径:

sudo grep -Ei "(\.env|\.git|wp-admin|phpinfo|config|backup|passwd|shadow|select.+from|union.+select)" /var/log/nginx/access.log

2. 查看 Nginx 错误日志

sudo tail -n 200 /var/log/nginx/error.log

3. 查看 Apache 日志

sudo tail -n 200 /var/log/apache2/access.log
sudo tail -n 200 /var/log/apache2/error.log

CentOS 系路径可能是:

sudo tail -n 200 /var/log/httpd/access_log
sudo tail -n 200 /var/log/httpd/error_log

4. 检查异常登录

last
lastb

查看 SSH 登录日志:

Debian / Ubuntu:

sudo grep "Accepted" /var/log/auth.log
sudo grep "Failed password" /var/log/auth.log

CentOS / RHEL:

sudo grep "Accepted" /var/log/secure
sudo grep "Failed password" /var/log/secure

5. 检查异常进程

ps aux --sort=-%cpu | head -20
ps aux --sort=-%mem | head -20

查看网络连接:

sudo ss -antup

检查定时任务:

crontab -l
sudo ls -lah /etc/cron.*
sudo cat /etc/crontab

十二、第十步:验证漏洞是否修复

修复完成后,需要从外部网络验证访问路径是否符合预期。

1. 验证源站是否无法被直接访问

假设源站 IP 是 YOUR_ORIGIN_IP

curl -I http://YOUR_ORIGIN_IP
curl -I https://YOUR_ORIGIN_IP -k

如果已经限制只允许 Cloudflare IP,普通外部网络直接访问应失败或无响应。

2. 验证域名访问正常

curl -I https://example.com

查看响应头是否包含 Cloudflare 信息:

curl -I https://example.com | grep -i cloudflare

通常可能看到:

server: cloudflare
cf-cache-status:
cf-ray:

3. 验证 TLS

openssl s_client -connect example.com:443 -servername example.com

检查是否启用安全协议:

nmap --script ssl-enum-ciphers -p 443 example.com

如果没有 nmap:

sudo apt install nmap -y

4. 验证 WAF 是否生效

可以访问一个不存在或敏感路径测试,例如:

curl -I https://example.com/.env

如果你已经设置 WAF 拦截 .env,应返回 403、Challenge 或 Cloudflare 拦截页面。


十三、推荐的 Cloudflare 安全基线配置

为了降低后续漏洞风险,建议按以下基线配置:

项目 推荐配置
SSL/TLS 模式 Full Strict
Always Use HTTPS 开启
HSTS 谨慎开启,确认全站 HTTPS 后启用
WAF Managed Rules 开启
OWASP Ruleset 开启
Bot 防护 开启
Rate Limiting 登录、注册、API 接口必须配置
DNS 代理 Web 业务开启橙云代理
源站防火墙 只允许 Cloudflare IP 访问 80/443
API Token 最小权限、定期轮换
Tunnel 删除不必要 ingress,开启 Access
日志 开启 Logpush 或定期审计
管理后台 IP 白名单或 Zero Trust 保护

十四、一键更新 Cloudflare IP 防火墙脚本

下面给出一个适用于 UFW 的脚本,用于自动刷新 Cloudflare IP 访问规则。

创建脚本:

sudo nano /usr/local/bin/update-cloudflare-ufw.sh

写入内容:

#!/bin/bash
set -e

echo "[1/5] Backup current UFW rules..."
sudo ufw status numbered > /tmp/ufw-status-before-cloudflare.txt

echo "[2/5] Allow SSH..."
sudo ufw allow 22/tcp

echo "[3/5] Fetch Cloudflare IPs..."
CF_IPV4=$(curl -s https://www.cloudflare.com/ips-v4)
CF_IPV6=$(curl -s https://www.cloudflare.com/ips-v6)

echo "[4/5] Add Cloudflare IPv4 rules..."
for ip in $CF_IPV4; do
  sudo ufw allow from $ip to any port 80 proto tcp || true
  sudo ufw allow from $ip to any port 443 proto tcp || true
done

echo "[5/5] Add Cloudflare IPv6 rules..."
for ip in $CF_IPV6; do
  sudo ufw allow from $ip to any port 80 proto tcp || true
  sudo ufw allow from $ip to any port 443 proto tcp || true
done

sudo ufw deny 80/tcp || true
sudo ufw deny 443/tcp || true

echo "Done. Current UFW status:"
sudo ufw status

赋予执行权限:

sudo chmod +x /usr/local/bin/update-cloudflare-ufw.sh

执行脚本:

sudo /usr/local/bin/update-cloudflare-ufw.sh

设置每周自动更新:

sudo crontab -e

添加:

0 3 * * 1 /usr/local/bin/update-cloudflare-ufw.sh >/var/log/update-cloudflare-ufw.log 2>&1

十五、应急处置建议

如果你怀疑漏洞已经被利用,建议立即执行以下操作:

  1. 暂时提高 Cloudflare 安全等级;
  2. 对敏感路径启用 Managed Challenge;
  3. 暂停可疑 API Token;
  4. 轮换 Tunnel Token;
  5. 修改服务器 SSH 密码或密钥;
  6. 检查 WebShell、异常进程和定时任务;
  7. 备份日志,避免证据丢失;
  8. 对业务系统进行依赖升级;
  9. 检查数据库是否存在异常账号;
  10. 必要时将源站切换到干净服务器。

提高安全等级可以在控制台:

Security → Settings → Security Level → High 或 Under Attack

如果网站正在遭遇大规模攻击,可以临时开启:

Under Attack Mode

但该模式可能影响用户体验,不建议长期使用。


十六、总结

Cloudflare 相关漏洞修复不是单点操作,而是一套完整的安全治理流程。最关键的步骤包括:更新 cloudflared、检查 Tunnel 暴露范围、开启 WAF、切换 SSL/TLS 到 Full Strict、限制源站只允许 Cloudflare IP 访问、轮换 API Token、审计日志并验证修复效果。

如果只在 Cloudflare 控制台开启某个规则,而源站仍然暴露在公网,攻击者依旧可能绕过 CDN 直接攻击服务器。因此,真正可靠的修复方案必须同时覆盖 Cloudflare 边缘侧和源站服务器侧。

建议将本文中的命令整理为日常运维脚本,并建立定期检查机制。尤其是 Cloudflare IP 白名单、cloudflared 版本、API Token 权限、WAF 命中日志和源站开放端口,应至少每月检查一次。对于高风险业务,如登录系统、支付接口、后台管理系统和内部应用,更应结合 Cloudflare Zero Trust、访问控制、设备校验和多因素认证进行纵深防御。

目录结构
全文