Ssl

是否可以使用負載均衡器加密內部網路伺服器之間的流量

  • December 7, 2021

我目前正在使用 Let’s Encrypt 為大約 100 多個後端伺服器獲取伺服器證書。每隔 90 天,我必須與其他團隊合作,通過 DNS-01 挑戰更新我的證書。我找到了一個關於負載均衡器的解決方案,聽起來我只需要在負載均衡器中進行 DNS-01 質詢,然後所有流量都會被加密:

SSL 終止在負載均衡器前面加密外部流量。如果我們想加密負載均衡器和內部網路伺服器之間的流量,我們可能會有 SSL 直通。但是我們內部網路伺服器(後端伺服器)之間的流量呢?

如果我在中間實施負載平衡器,如果我們決定實施 SSL 終止或 SSL 直通,是否可以加密內部網路伺服器之間的流量?

我是負載均衡器的新手,感謝您的幫助!

您始終可以加密屬於已定義組的任何系統之間的流量。IPsec 傳輸模式是專門為此創建的。這些伺服器承擔哪些角色(後端、前端等)並不重要,在這種情況下它們只是 IP 節點。將此視為一種通用解決方案,它使“是的,有可能”成為所有問題的有效答案,例如“是否可以加密 A 和 B 之間的流量”。但是,有時它並不方便,因此通常還有其他選擇。


其他選項取決於您需要此加密*的目的。*不要回答“只是為了安全”,沒有“只是為了安全”這回事。有威脅模型,也有應對這些已定義威脅的安全模型。例如,簡單來說,HTTP 的威脅模型是中間人,他可以竊聽並註入自己的數據,將自己偽裝成有效的伺服器和/或有效的客戶端;HTTPS 旨在通過對所有通信進行加密和簽名來實現這一點。MitM 充其量可以通過所有流量而無法竊聽或完全中斷通信。那麼,在防禦什麼,你的威脅是什麼?

您的後端和平衡器之間的網路不受信任?為什麼?這些網路應該只包括平衡器和後端,而不包括其他任何東西,你那裡有哪些不受信任的參與者?但是,在這種情況下,傳輸模式中的 IPsec 是可接受的解決方案,因為它將加密線路上的所有內容。

您還可以在平衡器和後端之間(以及後端本身之間)使用 HTTPS。沒關係,您的平衡器將終止使用者 HTTPS,以純文字形式查看請求和回复,能夠破壞它們(添加/刪除/更改標頭),並且能夠通過分析內容來選擇後端和處理,例如,選擇一個後端用於靜態內容,其他用於動態內容。然後它將建立另一個到後端的 HTTPS 連接。後端的唯一 HTTPS 客戶端將是平衡器和其他後端,因此它們使用全域認可的證書並不重要。(例如,Google Frontends 不檢查位於 Google Cloud 中的 HTTPS 後端的證書,因此即使是自簽名證書也可以使用。)您可以創建自己的內部 CA,為所有後端和平衡器頒發證書,並通過安裝使它們受信任每個系統儲存中的 CA 證書。只有平衡器需要配置全域有效的證書,並且僅在面向客戶端的一側。Let’s Encrypt 自動化可能也是這些平衡器的職責,因為已頒發的證書將安裝在它們上。

你不信任你的負載均衡器?SSL 直通可能會有所幫助,但它也有其自身的缺點。在此設置中,平衡器是創建 HTTPS 的中間人之一。因此它無法訪問 HTTP 詳細資訊來平衡請求,甚至無法知道 http Host 標頭值來區分 vhost;它不能注入額外的代理頭,比如那些“代理”,等等;連接按預期受到保護。它所能做的就是希望跟踪連接,否則會盲目地將數據包轉發到某個後端。在這種情況下,您無需在其上配置任何證書,甚至無需配置任何伺服器名稱。只需指定後端的 IP。此外,在這種情況下,必須在所有後端安裝有效證書,因為事先不知道哪個後端將獲得哪個請求。

引用自:https://serverfault.com/questions/1085604