当你的网站逐渐有了起色,通过了 AdSense 审核,并在 Google 获得了不错的排名后,你面临的就不再只是真实的访客了,还有无数的自动化脚本、恶意爬虫甚至是试探性的 DDoS 攻击。

作为个人站长或独立开发者,硬抗攻击是极其昂贵的。今天,分享如何白嫖 Cloudflare 强大的边缘计算网络,为你的博客或电商后台配置一道极其坚固的 WAF(Web 应用防火墙)护城河。

一、基础防线:开启”5 秒盾”与机器验证

当你的监控大盘(比如我们之前配置的 Grafana)突然发出警报,显示服务器 CPU 飙升、Nginx 日志疯狂滚动时,第一反应绝对不是去拉黑 IP,因为攻击源往往是海量的僵尸网络。

极速救火方案:

登录 Cloudflare 控制台,进入 安全性 (Security)设置 (Settings),找到 安全级别 (Security Level),直接将其拉到最高的 I'm Under Attack(我正遭受攻击)。

这会强制所有访问你网站的用户在进入前等待 5 秒的浏览器计算验证,能瞬间拦下 99% 毫无计算能力的低级脚本和 CC 攻击。

⚠️ 这个模式会严重拖慢真实用户的首次访问体验,只在确实遭受攻击时开启,平时不要一直挂着。

二、精准狙击:自定义 WAF 规则

“5 秒盾”是救急用的,不能常开,否则会影响真实用户的体验。在和平时期,我们需要更优雅的防御。

进入 安全性 → WAF,我们可以创建自定义规则(免费版可创建 5 条,完全够用):

规则 1:拦截恶意 User-Agent

很多爬虫连伪装都懒得做。在匹配字段选择 User Agent,包含以下字符串的请求直接 Block

  • python-requests
  • Go-http-client
  • curl/
  • zgrab
  • Nmap Scripting Engine

规则 2:地理位置封锁 (Geo-blocking)

如果你的中文博客或海外历史频道的受众极度明确,发现有大量来自某些毫无业务交集国家(比如某些常年作为肉鸡的节点国)的异常请求,可以直接建立规则:

  • 字段:Country
  • 操作符:equals
  • 值:目标国家代码(如 KP, RU 等看你的攻击来源)
  • 动作:Managed Challenge(托管质询,比直接 Block 更友好,会先做 JS 挑战)

规则 3:路径保护

对敏感路径(如后台管理、API 接口)加强防护:

  • 字段:URI Path
  • 操作符:contains
  • 值:/wp-admin/api/admin
  • 动作:Managed Challenge

三、Rate Limiting 速率限制

为了防止某些恶意用户刷你的核心 API(比如登录接口、搜索接口),可以配置速率限制。Cloudflare 免费版提供基础的速率限制能力:

  • 路径:/search
  • 阈值:同一个 IP 在 10 秒内超过 20 次访问
  • 动作:Block,持续时间 1 小时

对于评论接口(如果你开启了评论系统),也要加上速率限制,防止评论垃圾邮件。

四、Bot Management

Cloudflare 提供了免费的 Bot Fight Mode(机器人战斗模式),在 安全性 → Bots 中可以开启。它会自动识别并拦截已知的恶意爬虫。对于流量不大的个人站点,开启后几乎零误伤。

如果想要更精细的控制,可以在 WAF 规则中使用 Bot Score 字段——根据请求的”机器人嫌疑度”打分,分数越高越可能是机器人。你可以设置规则:如果 Bot Score > 30,执行 Managed Challenge。

五、安全标头增强

Cloudflare 还可以帮你自动注入一些安全相关的 HTTP 响应头:

  • HSTSSSL/TLS → 边缘证书):强制浏览器始终使用 HTTPS
  • 安全标头安全性 → 设置):自动添加 X-Frame-Options、X-Content-Type-Options 等

六、监控告警

最后,建议开启 Cloudflare 的安全事件通知。在 通知 (Notifications) 中,可以设置当 DDoS 攻击被检测到时,通过邮件接收告警。这样你就不需要 24 小时盯着 Grafana 大盘了。

总结

在云原生时代,安全运维的理念已经从”硬抗”变成了”边缘拦截”。把脏流量和恶意请求在物理层面上挡在 Cloudflare 的全球节点之外,让我们的核心服务器只处理纯净的真实请求——这才是最高效、零成本的安全架构。