由於 Cloudflare 與我們主機都是走 Internet,可能會導致某些設定被繞過的情況,本篇來說明如何透過調整 Server Side 的設定,提升整體的防護,以防止 CDN 與 Access 被繞過。
Cloudflare SSL 設定若選擇彈性模式,則會導致 Cloudflare 與原始伺服器間未加密,可能導致網路流量被盜取。
解決方法為,SSL 設定建議為「完整」或以上,使用更安全的連線。
如下圖所示,雖然目標 domain DNS 解析出來會是 Cloudflare IP,無法取得實際的 IP,但若有人知道實際的 IP,就可以訪問伺服器。
解決方法為,建議在伺服器上增加防火牆規則,只允許 Cloudflare 過來的連線,Cloudflare IP 範圍參考官方檔案。
上一步我們已經限制流量只能從 Cloudflare 過來,但若是有其他 Cloudflare 使用者,將伺服器 IP 綁到他的網域,就可以透過他的網域來瀏覽網站。
解決方法為,建議在伺服器上增加 http Layer 7 的 Virtual host 檢查,避免其他網域也能造訪服務。
我們已經限制了來源是 Cloudflare IP,檢查了 Hosts,還是有機會被繞過去,可以透過 Cloudflare Spectrum 或 Origin Rules 來突破限制。這時候就要確保 Cloudflare 與原始伺服器之間要多加 MTLS 驗證,Cloudflare MTLS 驗證有兩種,認證的原點提取(Authenticated Origin Pulls),原理是原始伺服器檢查憑證,不過該憑證是由 Cloudflare 產生,不是用戶專案;另外一種方案就是上傳自己得 MTLS 憑證。
使用 Cloudflare Tunnel 對外提供服務,就不需要 Public IP,因此就不會有上面繞過的問題,不過需要一台主機去運行主程式。
雖然這家在 Google map 評價低,但卻是我最常買的碳烤,雞排、魷魚、烤肉味道都不錯,將刷得很足很香,平常需要排隊才吃得到