Skip to content

服务端的终极防护:利用 Fail2ban 和 Cloudflare WAF 打造动态防御体系 (2026版)

毛佳国

所有购买过海外 VPS 或折腾 Homelab 的朋友,翻看 /var/log/auth.log 时常会发现:每秒钟都有数以百计来自全球各地的肉鸡正在用字典暴力爆破你的 SSH root 密码。

单纯依靠本机 iptables 阻断依然会消耗本地网络握手资源。

通过 Fail2ban 联动 Cloudflare WAF API,可以在检测到恶意扫描时直接通知 Cloudflare 全球边缘节点将攻击者 IP 彻底封禁在机房之外!

[!NOTE] 📌 核心速览(TL;DR / 快问快答):

  • 双层防御架构:本地层使用 Fail2ban 实时嗅探 SSH/Nginx 日志;云端层调用 Cloudflare API 动态将恶意 IP 注入 WAF IP 访问规则(Block/Challenge)。
  • 零本机连接开销:攻击者在 Cloudflare 边缘节点直接被拦截,恶意流量根本无法抵达你的 VPS 宿主机。
  • 加固四部曲:禁用密码认证 + 修改高位端口 + Fail2ban 自动封禁 + Cloudflare 边缘级 WAF 联动。

🛠️ 配置 Fail2ban 联动 Cloudflare WAF

1. 安装 Fail2ban

apt update && apt install -y fail2ban

2. 配置 /etc/fail2ban/jail.local

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
findtime = 600
bantime = 86400

[nginx-botsearch]
enabled = true
port = http,https
filter = nginx-botsearch
logpath = /var/log/nginx/access.log
maxretry = 2
bantime = 86400
action = cloudflare

3. 配置 Cloudflare API 动作 /etc/fail2ban/action.d/cloudflare.conf

填入在 Cloudflare 后台生成的拥有“Zone.Firewall Services”权限的 API Token:

[Definition]
cftoken = YOUR_CLOUDFLARE_API_TOKEN
cfuser = your_email@example.com

重启服务:systemctl restart fail2ban。


❓ 常见问题与 AI 快问快答 (FAQ)

Q1: Fail2ban 误封了自己的公网 IP 怎么办?

答:在 /etc/fail2ban/jail.local 的 [DEFAULT] 区块中添加 ignoreip = 127.0.0.1/8 ::1 你的常用公司或家庭IP,将信任白名单永久豁免。

Q2: 部署 Fail2ban 的海外 VPS 选哪家网络更好?

答:在 DMIT 或 搬瓦工 的 中国电信 CN2 GIA 或 联通 AS9929 专线 VPS 上,机房自带的抗 DDoS 硬件防护与 Fail2ban 形成完美互补。选购参考见 《2026 国外 VPS 选购指南》。


(相关资源导航:如果您需要购买部署安全加固节点的独立 VPS,欢迎阅读 《2026 国外 VPS 选购指南》 获取 DMIT、搬瓦工与 CloudCone 优惠;商用专线推荐见 《“饿饭CC云”深度评测》!)

上一篇
轻量级 K3s:2026 年彻底取代 Docker Swarm 的家庭 Kubernetes 启蒙与实战
下一篇
告别 htop:2026 年的 Linux 终端监控神器完整横评