如果您是在網站上運行博客或網站的網站管理員 WordPress,很可能網絡安全是您的首要任務之一。 只要您的域啟用了 Cloudflare,您就可以 添加 WordPress- 特定的 Cloudflare 防火牆規則 以提高您網站的安全性,甚至在攻擊進入您的服務器之前很久就防止攻擊。
如果您使用 Cloudflare 的免費計劃,您可以添加 5 條規則(專業計劃為您提供 20 條)。
Cloudflare 可以輕鬆快速地創建防火牆規則,並且每個規則都提供了極好的靈活性: 您不僅可以對每條規則做很多事情,而且通常可以合併規則,騰出空間讓您做更多事情。
在本文中,我將深入了解您可以應用的一些不同的防火牆規則來補充和增強您的 WordPress 網站現有的安全功能。
摘要:如何保護你的 WordPress 帶有 Cloudflare 防火牆的網站
- Cloudflare 的 Web 應用程序防火牆 (WAF) 是一種軟件工具,可讓您保護您的 WordPress 網站。
- Cloudflare 防火牆規則讓您 黑名單或白名單請求 根據您設置的靈活標準。
- 至 為您打造密不透風的保護 WordPress 網站,使用 Cloudflare,您可以:將您自己的 IP 地址列入白名單,保護您的管理區域,按地區或國家/地區阻止訪問者,阻止惡意機器人和暴力攻擊,阻止 XML-RPC 攻擊,並防止垃圾評論。
將您自己的 IP 地址列入白名單
為避免後續出現問題, 將您自己網站的 IP 地址列入白名單應該是您列表中的第一項任務 之前 您啟用任何防火牆規則。
為什麼以及如何在 Cloudflare 中將您的 IP 地址列入白名單
這主要是因為如果您選擇阻止您的網站,您可能會發現自己被鎖定在自己的網站之外。 WordPress 其他人的管理區域。
要將您網站的 IP 地址列入白名單,請轉到 Cloudflare 儀表板安全部分並選擇“WAF”。 然後點擊“工具”並在“IP訪問規則”框中輸入您的IP地址,然後從下拉菜單中選擇“白名單”。
要查找您的 IP 地址,您可以執行以下操作 Google 搜索“what's my IP”,它會返回你的 IPv4 地址,如果你需要你的 IPv6,你可以去 https://www.whatismyip.com/
請記住, 如果您的 IP 地址發生變化,您必須重新輸入/將新 IP 地址列入白名單,以避免被鎖定在您的管理區域之外。
除了將您網站的確切 IP 地址列入白名單之外, 您還可以選擇將整個 IP 範圍列入白名單。
如果您有一個動態 IP 地址(即,一個被設置為持續輕微變化的 IP 地址),那麼這絕對是您更好的選擇,因為不斷地重新輸入新 IP 地址並將其列入白名單將是一個很大的痛苦。
你也可以 將您的整個國家列入白名單。
這絕對是最不安全的選擇,因為它可能使您的管理區域容易受到來自您所在國家/地區的攻擊。
然而, 如果您經常出差工作並且經常發現自己在訪問您的 WordPress 來自不同 Wi-Fi 連接的站點,將您的國家/地區列入白名單可能是您最方便的選擇。
請記住,您列入白名單的任何 IP 地址或國家/地區都將不受所有其他防火牆規則的約束,因此您不必擔心為每個規則設置單獨的例外。
保護 WordPress 儀表板(WP-管理區)
現在您已將 IP 地址和/或國家/地區列入白名單,是時候了 緊緊鎖定您的 wp-admin 儀表板,以便只有您可以訪問它。
為什麼以及如何保護 WordPress Cloudflare 中的儀表板
不用說,您不希望未知的外人能夠在您不知情或未經您許可的情況下訪問您的管理區域並進行更改。
因此, 您需要製定防火牆規則,以防止外部訪問您的儀表板。
然而, 之前 你鎖定你的 WordPress 儀錶盤, 你必須做兩個重要的例外。
- /wp-admin/admin-ajax.php。 此命令允許您的網站顯示動態內容,因此需要某些插件從外部訪問才能正常運行。 因此,即使它存儲在 /wp-admin/ 文件夾中,如果您不希望您的網站向訪問者顯示錯誤消息,則需要從外部訪問它。
- /wp-admin/theme-editor.php。 該命令啟用 WordPress 每次更改或編輯網站主題時運行錯誤檢查。 如果您忽略將此添加為例外,您的更改將不會保存,並且您將收到一條錯誤消息,內容為“無法與站點通信以檢查致命錯誤”。
要創建防火牆規則,請先轉到 Cloudflare 儀表板中的安全 > WAF,然後單擊“創建防火牆規則”按鈕。
要在保護 wp-admin 儀表板區域時添加這些例外,您需要創建以下規則:
- 字段:URI路徑
- 運算符:包含
- 值:/wp-admin/
[和]
- 字段:URI路徑
- 運算符:不包含
- 值:/wp-admin/admin-ajax.php
[和]
- 字段:URI路徑
- 運算符:不包含
- 值:/wp-admin/theme-editor.php
[行動:封鎖]
完成後,單擊 “部署” 設置防火牆規則。
或者,您可以單擊“編輯表達式”並將以下內容粘貼到:
(http.request.uri.path contains "/wp-admin/" and not http.request.uri.path contains "/wp-admin/admin-ajax.php" and not http.request.uri.path contains "/wp-admin/theme-editor.php")
封鎖國家/大陸
就像您可以將國家/地區列入白名單以訪問您的管理儀表板一樣。
你也可以 設置防火牆規則,將國家甚至整個大陸列入黑名單,禁止查看或訪問您的網站。
為什麼以及如何在 Cloudflare 中阻止國家/大陸
為什麼要阻止整個國家或大陸訪問您的網站?
好吧,如果您的網站服務於特定國家或地理區域並且與全球無關,那麼 阻止來自不相關國家和/或大陸的訪問是限制來自國外的惡意軟件攻擊和惡意流量風險的簡單方法,而不會阻止訪問您網站的合法目標受眾。
要建立此規則,您需要再次開啟您的 的CloudFlare 儀表板並轉到 安全 > WAF > 創建防火牆規則。
要將設置更改為僅允許特定國家/地區,請輸入以下內容:
- 領域:國家或大陸
- 接線員:“在”
- 價值:選擇您想要的國家或大洲 白名單
(注意:如果你想只允許來自一個國家的流量,你可以輸入“equals”作為操作符。)
如果您選擇屏蔽特定國家或地區,請輸入以下內容:
- 領域:國家或大陸
- 接線員:“不在”
- 價值:選擇您想要的國家或大洲 阻止
注意:如果您需要技術支持並且您的網絡託管服務商的支持團隊位於您已屏蔽的國家或大陸,則此規則可能會適得其反。
對於大多數人來說,這可能不是問題,但您應該注意這一點。
這是一個示例,說明如何拒絕從某個國家/地區訪問您的網站,其中向來自該國家/地區的用戶顯示 JavaScript 挑戰 在嘗試訪問您的網站之前。
阻止惡意機器人
根據他們的用戶代理, Cloudflare 使您能夠阻止對試圖滲透您網站的惡意機器人的訪問。
如果您已經在使用 7G,那麼您不必擔心設置此規則:7G WAF 通過引用惡意機器人的綜合列表來阻止服務器級別的威脅。
但是,如果您不使用 7G, 您需要配置一個防火牆規則,在惡意機器人造成任何損害之前識別並阻止它們。
為什麼以及如何在 Cloudflare 中阻止惡意機器人
像往常一樣,首先轉到您的 Cloudflare 儀表板,然後轉到 安全 > WAF > 創建防火牆規則。
然後,將您的防火牆規則表達式設置為:
- 字段:用戶代理
- 運算符:“等於”或“包含”
- 值:您要阻止的惡意機器人或惡意代理的名稱
就像屏蔽國家一樣,機器人可以按名稱單獨屏蔽。 要同時阻止多個機器人,請使用右側的“或”選項將其他機器人添加到列表中。
然後點擊 “部署” 完成後按一下按鈕。
然而,由於 Cloudflare 已經啟動,手動阻止惡意機器人變得多餘 “機器人戰鬥模式” 適用於所有免費用戶。
“超級機器人戰鬥模式” 適用於 Pro 或 Business 計劃用戶。
這意味著現在所有類型的 Cloudflare 用戶都會自動阻止不良機器人。
阻止蠻力攻擊 (wp-login.php)
蠻力攻擊,也稱為 wp-login 攻擊,是最常見的攻擊目標 WordPress 站點。
事實上,如果您查看您的服務器日誌,您可能會發現來自全球不同位置的 IP 地址形式的此類攻擊的證據,這些地址試圖訪問您的 wp-login.php 文件。
幸運的是, Cloudflare 允許您設置防火牆規則以成功阻止暴力攻擊。
為什麼以及如何在 Cloudflare 中保護 wp-login.php
儘管大多數蠻力攻擊都是自動掃描,但功能不足以通過 WordPress的防禦,定個規矩來阻攔,讓自己放心,還是不錯的。
然而, 此規則僅適用於您是站點上唯一的管理員/用戶。 如果有多個管理員,或者您的站點使用會員插件,那麼您應該跳過此規則。
要創建此規則,請返回 安全 > WAF > 創建防火牆規則。
選擇此規則的名稱後,輸入以下內容:
- 字段:URI路徑
- 運算符:包含
- 值:/wp-login.php
[行動:封鎖]
或者,您可以單擊“編輯表達式”並將以下內容粘貼到:
(http.request.uri.path contains "/wp-login.php")
部署規則後, Cloudflare 將開始阻止來自除您的白名單 IP 之外的任何來源的所有訪問 wp-login 的嘗試。
作為額外的獎勵, 您可以通過查看 Cloudflare 的防火牆事件部分來驗證此保護是否已啟動並運行, 您應該能夠在其中看到任何嘗試的蠻力攻擊的記錄。
阻止 XML-RPC 攻擊 (xmlrpc.php)
另一種不太常見(但仍然很危險)的攻擊類型是 XML-RPC 攻擊。
XML-RPC 是一個遠程過程調用 WordPress,攻擊者可能會以暴力攻擊為目標以獲取身份驗證憑據。
為什麼以及如何在 Cloudflare 中阻止 XML-RPC
儘管 XML-RPC 有合法用途,例如將內容髮佈到多個 WordPress 同時博客或訪問您的 WordPress 智能手機上的網站,您通常可以部署此規則而不必擔心意外後果。
要阻止針對 XML-RPC 程序的暴力攻擊,請首先訪問 安全 > WAF > 創建防火牆規則。
然後創建以下規則:
- 字段:URI路徑
- 運算符:包含
- 值:/xmlrpc.php
[行動:封鎖]
或者,您可以單擊“編輯表達式”並將以下內容粘貼到:
(http.request.uri.path contains "/xmlrpc.php")
就這樣,只需幾個簡單的步驟,您就可以保護您的 WordPress 來自兩種最常見的暴力攻擊類型的網站。
防止評論垃圾郵件 (wp-comments-post.php)
如果您是網站管理員,那麼您網站上的垃圾郵件只是生活中令人討厭的事實之一。
幸運的是, Cloudflare Firewall 提供了多種規則,您可以部署這些規則來阻止許多常見類型的垃圾郵件,包括垃圾評論。
為什麼以及如何在 Cloudflare 中阻止 wp-comments-post.php
如果評論垃圾郵件已成為您網站上的問題(或者,更好的是,如果您想主動防止它成為問題),您可以限制 wp-comments-post.php 以限制機器人流量。
這是使用 Cloudflare 在 DNS 級別完成的 JS 挑戰,而且它的工作方式也比較簡單:垃圾評論是自動化的,自動化的源不能處理JS。
然後他們在 JS 挑戰中失敗了,瞧—— 垃圾郵件在 DNS 級別被阻止,請求甚至永遠不會到達您的服務器。
那麼,如何創建此規則?
像往常一樣, 進入安全 > WAF 頁面並選擇“創建防火牆規則”。
確保為該規則指定一個可識別的名稱,例如“評論垃圾郵件”。
然後,設置以下內容:
- 字段:URI
- 運算符:等於
- 值:wp-comments-post.php
[和]
- 字段:請求方法
- 運算符:等於
- 值:發布
[和]
- 字段:推薦人
- 運算符:不包含
- 值:[yourdomain.com]
【動作:JS挑戰】
小心將動作設置為 JS 挑戰,因為這將確保在不干擾網站上的一般用戶操作的情況下阻止評論。
輸入這些值後, 單擊“部署”以創建您的規則。
總結:如何保護您的 WordPress 具有 Cloudflare 防火牆規則的站點
在網絡安全軍備競賽中,Cloudflare 防火牆規則是您的武器庫中最有效的武器之一。
即使使用免費的 Cloudflare 帳戶,您也可以部署許多不同的規則來保護您的 WordPress 網站抵禦一些最常見的垃圾郵件和惡意軟件威脅。
只需幾個(大部分)簡單的擊鍵,您就可以提高網站的安全性 讓訪客順利運行。
更多關於改善你的 WordPress 網站的安全性,請查看我的 轉換指南 WordPress 網站到靜態 HTML.
參考
https://developers.cloudflare.com/firewall/
https://developers.cloudflare.com/fundamentals/get-started/concepts/cloudflare-challenges/
https://www.websiterating.com/blog/web-hosting/glossary/what-is-cloudflare/