使用 Cloudflare WAF 保護 WordPress:阻止 wp-login 攻擊與封鎖 XMLRPC(完整教學)

當你的 WordPress 網站開啟 Cloudflare 橙色雲(Proxy)後,其實 HTTP 攻擊應該在 Cloudflare Edge 層解決,而不是在伺服器層解決

很多人仍然使用 Fail2ban 嘗試封鎖 wp-login 攻擊,但在橙雲模式下:

  • 真正連線來源是 Cloudflare IP
  • iptables 無法阻擋真實攻擊者
  • 即使封鎖 IP 仍然會有流量進來

✅ 正確做法是使用 Cloudflare WAF Custom Rules。

本教學會示範兩條最重要的規則:

  1. 保護 wp-login.php
  2. 封鎖 xmlrpc.php

✅ 第一條規則:保護 wp-login.php

為什麼需要?

WordPress 的登入頁面:

/wp-login.php

是全球機器人暴力破解的主要目標。

即使你沒有公開登入頁,掃描機器仍然會嘗試。


🔧 建立規則步驟

Step 1:進入 Cloudflare

  1. 登入 Cloudflare
  2. 選擇你的網站
  3. 點擊:
Security → WAF → Custom Rules
  1. 點擊:
Create rule

Step 2:設定 Rule Name

請填寫:

WP-Login Protection

Step 3:點擊「Edit expression」

不要使用上方 Select 下拉選單。

請點擊右側:

Edit expression

Step 4:貼上以下 Expression

(http.request.uri.path contains "/wp-login.php")

如果你希望自己的固定 IP 不被影響,可以使用:

(http.request.uri.path contains "/wp-login.php")
and not ip.src in {你的IP地址}

例如:

(http.request.uri.path contains "/wp-login.php")
and not ip.src in {1.2.3.4}

Step 5:選擇 Action

在「Then take action」中選擇:

Managed Challenge

不要使用 Block,除非你 100% 不需要外部登入。


Step 6:點擊 Deploy

完成 ✅


✅ 效果說明

設定後:

  • 大部分 bot 會被 Challenge 阻擋
  • 真人用戶幾乎無感
  • 攻擊流量不再直接打到伺服器
  • CPU 使用率會下降

✅ 第二條規則:封鎖 XMLRPC


為什麼需要?

WordPress 的:

/xmlrpc.php

經常被利用作:

  • 暴力破解
  • Pingback 攻擊
  • DDoS 放大攻擊

如果你沒有使用:

  • Jetpack
  • WordPress App
  • 遠端發佈功能

✅ 建議直接封鎖。


🔧 建立規則步驟

Step 1:Create rule

同樣進入:

Security → WAF → Custom Rules

點擊:

Create rule

Step 2:Rule Name

填寫:

Block XMLRPC

Step 3:Edit expression

貼上:

(http.request.uri.path contains "/xmlrpc.php")

Step 4:Action

選擇:

Block


Step 5:Deploy

完成 ✅


✅ 建議規則順序

在 Custom Rules 頁面,請確保順序如下:

  1. Block XMLRPC
  2. WP-Login Protection

Cloudflare 會由上而下執行規則。


✅ 設定完成後的架構

啟用後流量流程變成:

攻擊者 → Cloudflare WAF → 被挑戰/封鎖 → 無法到達伺服器

而不是:

攻擊者 → 伺服器 → Fail2ban 分析 → 再封鎖

✅ 安全性更高
✅ 伺服器負載更低
✅ 不再需要 Fail2ban API 同步


✅ 常見問題

Q1:會不會影響 Google?

不會。

Cloudflare 會識別合法 bot,Managed Challenge 不會影響正常搜尋引擎。


Q2:是否還需要 Fail2ban?

建議:

  • 保留 Fail2ban 用於 SSH
  • 保護未使用 Cloudflare 的網站
  • 保護 API 服務

但對 HTTP WordPress 攻擊,可以完全交給 Cloudflare。


✅ 總結

只需兩條規則,你就可以:

  • 阻止 90% WordPress 掃描攻擊
  • 減少伺服器負載
  • 不再依賴 API 封鎖
  • 架構更清晰

Cloudflare WAF 應該成為橙雲網站的第一層防線,而不是伺服器。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *