搜尋此網誌

2012年8月29日 星期三

[教戰守則] 談 VMware 虛擬交換器之 Promiscuous Mode

Podtech_VMware_Disaster_Recovery_Datac在早期使用集線器當做網路的連結設備時,因為集線器的特性是使用廣播方式傳遞封包,所以網路上的任何一台電腦只要"有心"就可以看到不屬於它的封包。不過網路介面 (網路卡) 通常為了效能的考量,並不會處理所有傳送過來的封包,而會先檢查這些封包是否確實是它應該加以處理的,唯有它應該處理的封包才會進入系統並處理之。而 Promiscuos Mode,屬於網路介面的一種運作模式,在這種模式運作下的網路介面,會忽略檢查的動作並把網路上傳送過來的所有封包都交給系統處理。也就是說,在集線器的環境下,只要電腦的網路介面進入 Promiscuous Mode 就可以把網路上的封包看透透,其中肯定包含了不少重要的資料 (如密碼)。

好在現在使用的網路設備多屬於較為聰明的交換器,交換器在正常的運作情況下不使用廣播方式傳遞封包,所以即使我們將電腦的網路介面設定為 Promiscuous Mode 也無法窺得別台電腦的封包。不過有時候,我們 (網路管理員) 確實需要窺得其他電腦的封包,其中最常見的一種狀況就是佈署 IDS/IDP 時。此時,我們可以透過交換器的 Port Mirror 功能,讓交換器把其他電腦的封包複製一份至 IDS/IDP 所連結的交換器埠,好讓 IDS/IDP 看到這些封包。這是實體交換器的特性,那麼對於虛擬環境下使用的虛擬交換器呢?

在 VMware vSphere 5 ESXi 下,虛擬機預設只能看到遞送給它的封包。對於需要看到其他電腦封包的需求,虛擬交換器並沒有 Port Mirror 的功能,不過倒是有支援 Promiscuous Mode 的功能。Promiscuous Mode 的功能設定可以指定在整個虛擬交換器上,也可以指定在特定的 Port Group 上。對於虛擬交換器而言,Promiscuous Mode 的設定預設是關閉的。而 Port Group 預設則是沒有任何設定,因此會直接繼承虛擬交換器的設定,也就是同樣是關閉的。如果我們想要虛擬機具備看到其他電腦封包的能力,我們就必須讓這台虛擬機所在的 Port Group 擁有 Promiscuous Mode 的功能。根據前面所提,這個功能可以從虛擬交換器或 Port Group 的層級加以開放。從安全的角度來看,建議的作法是將這台虛擬機放入一個專屬的 Port Group,並 (只) 針對這個 Port Group 開放 Promiscuous Mode 的功能。如此一來,這台虛擬機就可以看到這個虛擬交換器內所有收送的封包了 (包含其他 Port Group,但不包含 Management Traffic)。以此看之,Port Group 是用來方便管理的單位,而不是為了模擬不同的實體網路。如果我們想要單一虛擬機僅能看到虛擬交換器上部分的封包 (而非全部封包),必須搭配 VLAN 的設計方式,而不是光透過 Port Group 就可以達成。

網路封包窺視是一個很嚴重的問題,其可怕之處不只在於可以窺得很多重要的資料,更令管理者感到困擾的是封包窺視通常是一種很隱密的被動攻擊行為。不管是在實體或虛擬環境下,如果佈署上不一小心,就可能變成全都露而不自知了。因此對網路管理者而言,了解虛擬交換器的運作方式就成了虛擬化過程中一個必須認真對待的課題了。

沒有留言:

張貼留言

About