649 字
3 分鐘
[Day30] 安全防護 — 30 天入門 Cloudflare
2023-05-29
無標籤

最後一篇來講最重要安全防護的機制,由於 Cloudflare 與我們主機都是走 Internet,可能會導致某些設定被繞過的情況,本篇來說明如何透過調整 Server Side 的設定,提升整體的防護,以防止 CDN 與 Access 被繞過。


1. 防止他人盜取 Cloudflare 與原始伺服器間的網路封包#

Cloudflare SSL 設定若選擇彈性模式,則會導致 Cloudflare 與原始伺服器間未加密,可能導致網路流量被盜取。

解決方法為,SSL 設定建議為「完整」或以上,使用更安全的連線。


2. 防止他人直接訪問伺服器 IP#

如下圖所示,雖然目標 domain DNS 解析出來會是 Cloudflare IP,無法取得實際的 IP,但若有人知道實際的 IP,就可以訪問伺服器。

解決方法為,建議在伺服器上增加防火牆規則,只允許 Cloudflare 過來的連線,Cloudflare IP 範圍參考官方文件


3. 防止他人將網站綁到自己的網域#

上一步我們已經限制流量只能從 Cloudflare 過來,但若是有其他 Cloudflare 使用者,將伺服器 IP 綁到他的網域,就可以透過他的網域來瀏覽網站。

解決方法為,建議在伺服器上增加 http Layer 7 的 Virtual host 檢查,避免其他網域也能造訪服務。


4. 使用 Tunnel,防止他人透過 Spectrum 繞過 Access#

Spectrum 是 Cloudflare 提供的 L4 DDoS 防護服務,可以保護 server port 的網路流量,他也是作為 L4 的反向代理。而我們可以透過 Cloudflare Access 保護我們的服務,但若駭客知道我們伺服器的 IP,可以將 IP 加入 Spectrum,並搭配修改本機 host file,就可以繞過 Cloudflare Access 造訪服務。

解決方法為,使用 Cloudflare Access 時要搭配 Cloudflare Tunnel,避免伺服器有 Public IP。Tunnel 設定可參考這篇


5. 使用認證的原點提取,防止他人透過 Spectrum 繞過 Access#

同上述攻擊手法,也可以使用 Cloudflare SSL/TLS 中的認證的原點提取,可以避免未驗證的 Client 存取後端伺服器,參考前文


結語#

由於 Cloudflare 與伺服器之間是走 Internet,所以可能導致漏洞與攻擊,透過以上幾種做法,可以增加 Cloudflare 與伺服器的安全性。

感謝你看完本系列文,透過 30 天理解了 Cloudflare 有哪些服務,之後會再推出一系列更進階使用 Cloudflare 的文章。

▶ 閱讀更多本系列文:30 天入門 Cloudflare