我在 WordCamp Taipei 2018 分享這幾年經營免費資源網路社群的經驗,當中也提到我選用的工具服務和理由,作為一個樂於分享的使用者,其實沒有什麼不可告人的「秘方」,反倒很希望能夠將自身經驗拋出來讓大家參考,獲得更多回饋,通常在交流過程中可以使自己學習很多。雖然沒有任何作法可以 100% 符合所有網站需求,但我還是希望透過文章傳遞一些你可能會用到、足以解決問題的觀點,當然這些不應太過複雜,至少要能讓大家願意閱讀,我寫的文章才會有所用處。
在演講時我不斷提到一個推薦的服務 Cloudflare,兼具我重視的速度和安全性,除了是一款內容傳遞網路(CDN)服務外,更重要的是它提供許多安全工具,可以增加網站的防護力,不要覺得你的網站很安全或不會被盯上,事實上有很多的自動化程式都是隨機尋找可下手攻擊或植入惡意程式的目標,因此平常就要做好安全措施,總不可能等到被入侵才來修補漏洞。
如果你使用 WordPress 架站,最需要防護的控制台(wp-admin)和登入頁面(wp-login.php)絕對別輕忽,早先很多網站都是教你透過 .htaccess
限制可連線的 IP 位址,若你已經開始使用 Cloudflare 的話,可以把這部分丟給 Cloudflare 協助處理,我相信它在安全防護上會更強大也更具有彈性和空間。
本文要介紹 Cloudflare 其中一個模組「Zone Lockdown」,這個模組在防火牆(Firewall)頁面底下,可以想見它和防護有關,簡單來說,利用 Zone Lockdown 功能可設定要加強防護的區域,讓使用者預先設定某些路徑僅能讓某個 IP(或 IP 範圍)來源存取,如果運用在 WordPress 最基本的用法是把登入頁面和控制台設定進去,如此一來就能確保只有你可以存取控制台,不僅大幅降低被攻擊入侵的機會,也能不被暴力測試帳號密碼消耗主機資源。
我之前也推薦過另一個方法:啟用 Jetpack「單一登入」機制教學,讓你的 WordPress 網站更安全(含兩步驟驗證),也能讓 WordPress 更加安全,你可以挑一個適合自己需求的使用,那麼接下來我會更深入說明 Zone Lockdown 功能。
使用教學
STEP 1
首先,你可以在登入 Cloudflare、選擇你的區域(網域名稱)後點選 Firewall 找到這項功能。
Zone Lockdown 暫不提供 Cloudflare 免費帳戶使用,如果你是免費方案,會要求升級到 Pro 或更高的方案才能開啟這項工具。Pro 帳戶可提供三個規則設定,Business 則有 10 個額度,其實數量不用太多,若你已經升級到最基本的 Pro 方案就可以滿足基本需求,除非你想設定很複雜的規則。
STEP 2
如果你是付費方案,應該會看到 Zone Lockdown 功能已被開啟,點選「Create Lockdown Rule」建立第一個網址防護規則。
STEP 3
在這裡我以一般 WordPress 網站(自架站)為例,首先,設定一下規則名稱,例如可以命名為「僅限從辦公室 IP 位址登入 WordPress」,設定一個讓你可以一眼看出來的名稱即可,重點在於第二個欄位,也就是設定要讓 Zone Lockdown 防護的網址,可以設定為:
- *example.com/wp-login.php*
- *example.com/wp-admin/*
請將上面的 example.com
替換成你的網域名稱,如果格式不同也自行調整一下。
在第三個欄位「IP Range」將你平常使用的固定 IP 設定進去,可使用 IP 區段或是 IPv6 位址,最後點選「Save and Deploy」就能保存並將設定啟用,一切都是這麼簡單。
STEP 4
Cloudflare 各項模組功能都有快速開關,記得將規則切換到綠色的 On 才算啟用。
STEP 5
當有人連線到你設定防護的路徑,來源不在 IP 位址的白名單中,就會被 Zone Lockdown 模組自動擋掉,看到的會像下圖防火牆封鎖畫面(Access Denied)。
被阻擋的當下,Cloudflare 防火牆就會將此事件紀錄下來,可以在控制台看到被封鎖的來源、時間、存取的路徑、IP 位址及 User Agent 等資訊,當然如果是你不小心被阻擋,可以在 Firewall 中把自己加入白名單,就能解除問題,或者也可隨時將 Zone Lockdown 暫停或關閉。