所有购买过海外 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 = [email protected]
重启服务: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云”深度评测》!)