如何以不會讓我面臨 VLAN 跳躍風險的方式設置 VLAN?
我們計劃將生產網路從無 VLAN 配置遷移到帶標記的 VLAN (802.1q) 配置。此圖總結了計劃的配置:
一個重要的細節是,這些主機中的很大一部分實際上是單個裸機上的虛擬機。事實上,唯一的物理機器將是 DB01、DB02、防火牆和交換機。所有其他機器將在單個主機上虛擬化。
一個令人擔憂的問題是這種方法很複雜(暗示過度複雜),並且 VLAN 只是提供了一種安全假象,因為“VLAN 跳躍很容易”。
考慮到由於虛擬化,單個物理交換機埠將使用多個 VLAN,這是一個有效的問題嗎?我將如何正確設置我的 VLAN 以防止這種風險?
另外,我聽說 VMWare ESX 有一個叫做“虛擬交換機”的東西。這是 VMWare 管理程序獨有的嗎?如果沒有,它是否可用於 KVM(我計劃選擇的虛擬機管理程序)?這是如何發揮作用的?
除了關於為什麼人們告訴我不要使用 VLAN 來確保安全的資訊之外?以下是一些需要考慮的更具體和通用的位:
關於安全
性的一般想法 最安全的系統是將每個子網的主機連接到一個交換機,該交換機的埠數與所連接的設備將使用的埠數完全相同。在這樣的配置中,您不能將隨機機器插入您的安全網路,因為這樣做需要拔掉某些東西(理論上您的監控系統會注意到這一點)。
VLAN 在安全性方面為您提供了類似的東西,將您的交換機分解為更小的虛擬交換機(虛擬 LAN:VLAN),這些交換機在邏輯上彼此隔離,並且通過適當的配置,所有連接到它們的系統看起來就像它們是物理上的一樣孤立。
關於相對安全的 VLAN 設置的一般想法
我對支持 VLAN 的交換機的做法是,必須將所有流量分配給一個 VLAN,並具有以下基本配置:
將所有未使用的埠分配給“未使用”的 VLAN。
連接到特定電腦的所有埠都應本地分配給該電腦應位於的 VLAN。這些埠應位於一個且僅一個VLAN 中(除非我們現在將忽略某些例外情況)。
在這些埠上,所有傳入數據包(到交換機)都使用本地 VLAN 進行標記,而傳出數據包(來自交換機)將 (a) 僅源自分配的 vlan,並且 (b) 沒有標記並且看起來就像任何正常乙太網包。
唯一應該是“VLAN 中繼”(多個 VLAN 中的埠)的埠是中繼埠——那些在交換機之間傳輸流量的埠,或者連接到將自行拆分 VLAN 流量的防火牆的埠。
在中繼埠上,進入交換機的 vlan 標籤將受到尊重,並且不會從離開交換機的數據包中剝離 vlan 標籤。
上述配置意味著您可以輕鬆注入“VLAN 跳躍”流量的唯一位置是在中繼埠上(除非交換機的 VLAN 實現中出現軟體問題),並且與“最安全”的場景非常相似,這意味著拔掉某些東西重要並引起監控警報。同樣,如果您拔下主機以連接到它位於您的監控系統中的 VLAN,應該會注意到該主機的神秘消失並提醒您。
在這兩種情況下,我們都在談論涉及對伺服器進行物理訪問的攻擊——雖然打破 VLAN 隔離可能並非完全不可能,但在上述設置的環境中至少非常困難。
關於 VMWare 和 VLAN 安全的具體思考
VMWare 虛擬交換機可以分配給 VLAN——當這些虛擬交換機連接到 VMWare 主機上的物理介面時,發出的任何流量都將具有適當的 VLAN 標記。
您的 VMWare 機器的物理介面需要連接到 VLAN 中繼埠(攜帶需要訪問的 VLAN)。
在這種情況下,注意將管理 NIC 與虛擬機 NIC 分離的 VMWare 最佳實踐非常重要:您的管理 NIC 應連接到適當 VLAN 中的本機埠,並且您的虛擬機 NIC 應連接到具有虛擬機所需 VLAN 的中繼(理想情況下不應攜帶 VMWare 管理 VLAN)。
在實踐中,與我提到的項目以及我確信其他人會想出的項目相一致地執行這種分離,將產生一個相當安全的環境。