策略執行多個來賓但具有單個外部 IPv4 的物理伺服器
我的主機 - 可以理解 - 減少新伺服器提供的 IPv4 地址,以便下次我將我的東西重新定位到新伺服器時,我將獲得大量 IPv6 地址,但只有一個 IPv4 地址。
對於我只執行一個實例的服務(例如 SMTP),這應該不是問題。我將簡單地通過(使用
iptables/6
)對這些東西進行 NAT。然而,對於其他服務——我在這里特別擔心 HTTP/S——我看到瞭如何將傳入流量傳遞到正確的來賓機器並顯然將出站數據再次傳送到客戶端的問題。我的主要問題是安全性。我想我可以(ab)使用一個常用的代理或一個也可以作為代理的網路伺服器(nginx、lighttpd)。但是,在這種情況下,訪客系統將此視為“本地請求”,某些訪問控制機制可能會失敗。此外,由於加密的流量,HTTPS 在這裡是一個大問題,儘管我可以讓主機系統完全實現 HTTPS 部分並從/到未加密的來賓系統代理(一直在使用 lighttpd 實例的單台機器上使用該方法作為處理一組特定 URI 的 Apache2 後端的前端)。
即使單個域的處理由單個訪客執行,我如何向外部世界提供相同的服務(此處為 HTTP/S)?或者更確切地說,這些天被認為是最佳實踐是什麼?
[internet] <--> [IPv4:host] <-+-> [guest:foo.org] | |-> [guest:bar.org] | |-> [guest:baz.org]
…或者我是否可以通過只
AAAA
向這些域提供記錄並讓客戶端處理所有事情來忽略所有這些問題?
除了“下次我將我的東西重新定位到新伺服器時,它將位於具有更多 IP 的新主機上”之外,我看不到這個結局。除非您計劃 3-5 年,或者您的使用者是真正的密友,否則這可能會以眼淚告終。
IPv6 仍然不是主流,沒有 IPv4,您將不會有任何訪問者。僅擁有 AAAA 記錄將使伺服器相當空閒。軼事經驗是,在 3-5 年內,每個人都會至少將他們的廉價無線路由器扔掉一次,也許當人們購買新無線路由器時,廉價路由器將支持它而無需 OpenWRT。
在安全方面,
X-Forwarded-For:
旨在讓伺服器知道連接到反向代理的 IP,因此您需要重寫站點的程式碼以使其查看標頭而不是連接本身。SNI是為處理 SSL 虛擬主機而開發的,幾乎所有目前的伺服器都支持它,因此從 Apache 或 Nginx 設置反向代理應該可以覆蓋你。如果任何客人需要客戶端 SSL 證書,我不知道該證書資訊是如何從代理傳遞的(我確定它是在標頭中發送的)。這裡真正的問題是,在 Windows XP 上,IE 不支持 SNI,並且將使用他們輸入的任何主機名獲取預設虛擬主機的證書,希望您的使用者將升級 Windows 或切換到 Firefox。