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的規則設定達成網站的安全防護,希望能夠幫助你