相信有很多用家會使用Cloudflare 的CDN功能讓網站提速,而其實Cloudflare 還有許多實用功能,包括AI過濾,防火牆等等,而今次會分享透過Zerotrust 加強WordPress後台保安。
注意事項
一、以下教學假設用家已經有Cloudflare 帳號而且已經為網域設定好指向
二、Cloudflare蠻常改版的,假如過了幾個月才看到這篇文章,有些截圖或者連結有機會已經不再適用。
三、教學是針對wp-login登入防護,如果需要進一步防護應該考慮封鎖xmlrpc.php 或限制特定IP才能連線到xmlprc.php,相關設定可以透過WordPress插件或者Cloudflare防火牆進行。
先講結論,從用家角度,透過這個教學我們得到的是類似「兩步認證」的防護效果,但跟一般安裝兩步認證插件到WordPress不一樣,可以想像成先連線到公司VPN再登入到內部主機的概念 (事實上Cloudflare Zerotrust本身的確可以做到Tunnel的效果),有著更好的防護。

登入Cloudflare後台 https://dash.cloudflare.com/ ,然後按左邊「Zero trust」,假如從來未有用過,應該會讓你先設定「team name」,而「team name」後續可以在「Zero trust」> 「設定」>「自訂網頁」內隨時修改。

在「Zero trust」> 「Access」> 「原則」> 「新增原則」,設定認證方式用來接收認證碼,最基本的設定就是使用電郵,用家可以輸入超過一個郵箱地址,假如是機構WordPress,想授權所有同仁登入,可以在這邊授權一整個網域,例如 @gmail.com 。有需要的話,可以除了電郵認證以外,再加入只能在指定地區登入的要求。

在「Zero trust」> 「Access」> 「應用程式」> 「加入應用程式」,選擇「自我裝載」(Selfhost)

在「設定應用程式」,我們需要指定要防護的連結,主要是 wp-login.php*,wp-admin要看情況,因為有些情況前台訪客也需要連線到wp-admin的特定檔案。

同一頁的下方按一下「選取現有原則」,把一開始新增的原則勾起來。按「確認」後按兩次「下一步」(那兩頁是一些自訂頁面設定,後續可以自己再修改,這裡不再贅述)

在「Zero trust」> 「設定」 > 「認證」 > 按「應用程式啟動器」旁邊的「管理」,一樣是按「選取現有原則」,然後把一樣的原則勾起來,這樣已經大功告成!

從現在開始,登入WordPress後台就會先看到Cloudflare Zerotrust 的頁面

Cloudflare 會發送類似上圖的兩部認證郵件,輸入正確認證碼後就會跳轉回到原來的WordPress登入頁面。
Cloudflare Zerotrust 功能強大(而且不少功能也是免費能用),登入防護只是Zerotrust 其中一個能做到的小事情,有興趣的用家可以多研究一下。
