Cloudflare對於架設網站的人來講,還真是擁有不少功能
從DNS的操作、CDN、防火牆安全防護、郵件路由、發行SSL…等眾多功能
我在這裡要介紹的是如何不安裝安全防護的Plugin
單純使用Cloudflare的一些規則就可以達成安全防護Plugin的防火牆功能
其實這樣做有一個最大的好處就是不用安裝其他外掛,而且設定良好的話也不會影響本身網頁主機
可以說是分攤網站主機的負擔,執行速度上也能夠稍微輕快些
以下我以幾個觀念分別做設定
設定白名單IP
對於後台的部分,我們想當然爾一定是自己或是允許的人才能進入,所以這時候需特定對象才能進來
可參考之前的文章
白名單設定好之後,我們將以幾個方面設定來提升安全防護
※在DNS的設定中,主機的A位置必須設定為「通過 Proxy 處理」狀態,否則以下的規則都會無法正常動作
阻斷登入、管理者頁面的攻擊
登入、管理者頁面這種地方,說真的就是不應該有其他人員進去,所以才會要設定白名單(非管理人員有什麼理由要去後台看呢?)
接下來的設定請按照下面的文章圖片做設定
需要強調的部分為中間IP畫框框的地方,因為條件設定後,代表除了指定的IP部份以外不可以訪問
這裡用IP的表現方式為
單一IP:使用「不等於」
IP區段:使用「不在於」
之前曾經提過的IP清單:使用「不在清單內」
如果說我們很清楚我們要的東西是什麼,其實複製好直接貼上,然後按下「部署」按鈕就可以
下面的部分則是我這裡的運算式寫法,你可以直接複製拿去用,就不需要一一輸入(但是記得白名單要先處理好喔)
(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") or (http.request.uri.path contains "/wp-login.php")
阻斷不良的網路爬蟲
先解決了未知的連線要進到後台後,接下來就是要防止一些莫名其妙的網路爬蟲進來騷擾
因為網路爬蟲會針對幾個特性做耙梳的動作,因此設定成Cloudflare認知的網路爬蟲,以及自己認為優良的網路爬蟲可以通過
並且「要跳過的 WAF 元件」如下
・所有剩餘的自訂規則
・所有限速規則
・所有受控規則
・所有超級機器人對抗模式規則
這裡的運算式寫法如下
(cf.client.bot) or (http.user_agent contains "Metorik API Client") or (http.user_agent contains "Wordfence Central API") or (http.request.uri.query contains "wc-api=wc_shipstation") or (http.user_agent eq "Better Uptime Bot") or (http.user_agent eq "ShortPixel") or (http.user_agent contains "umbrella bot")
阻斷不當存取特定路徑或檔案
這算是比較進階的部分,撇除了上述網路爬蟲外到不希望去的地方騷擾外,甚至會對一些特定路徑或檔案騷擾,這裡則是針對特定路徑和檔案不讓其騷擾
以上列出的為我個人認為重要的路徑以及檔案不該被外部存取,供參考
以下為這裡的運算式寫法
(http.request.uri.path contains "/.env") or (http.request.uri.path contains "wp-config.php") or (http.request.uri.path contains "/xmlrpc.php") or (http.request.uri.path contains "/.htaccess") or (http.request.uri.path contains "/wp-content/debug.log") or (http.request.uri.path contains "/wp-settings.php") or (http.request.uri.path contains "^/wp-includes/ .*\\\\.php$" and http.referer eq "*cyrians.com*")
阻斷垃圾留言和發信訊息
其實我個人這時候比較偏好外掛,這裡我推薦Simple Cloudflare Turnstile – CAPTCHA Alternative,因為這裡他們採用了Cloudflare Turnstile的技術,可以替代Google CAPTCHA那種要不斷刷圖說這是啥啥啥的蠢方案
但如果真的非常在意,就請參考下面設定
下面為參考用的運算式寫法(記得域名要改喔)
(http.request.uri.path eq "/wp-comments-post.php" and http.request.method eq "POST" and not http.referer contains "cyrians.com")
如果設定都沒問題的話,不妨嘗試用白名單外的IP來嘗試(例如用手機網路)
但必須要講一點的是,以上方式只能防君子無法防小人,特別是你把奇怪的東西往網站裡面塞(如安裝來源不明的外掛),那東西就會像是木馬一樣,這點就算是Cloudflare也救不了的
以上為[網站防護]使用Cloudflare的規則設定達成網站的安全防護,希望能夠幫助你
參考資料
Cloudflare Firewall Rules for Securing WordPress
Cloudflare Firewall Rules for Securing WordPress Websites
Secure, Protect and Lock Down your WordPress site with Cloudflare Custom WAF Rules (was Firewall Rules)
9 Cloudflare Page Rules For WordPress Sites (But Most Sites Only Need 3 Of Them)
只要花 30 秒登入 FB 或 Google,不用花任何錢就能支持我
您的支持將會是我創作的最大動力!