vSphere虛擬交換機安全策略解讀-混雜模式、MAC地址更改、僞傳輸

       數據安全戰略非常重要,必須做好計劃; 特別是在數據中心,所有虛擬資產都必須得到很好的保護。 一個圖謀不軌的hacker可能會劫持VM並重新配置以滿足他的邪惡目的。本文詳細講述了vSphere虛擬交換機基於2層的安全策略。

       有3個安全策略可供選擇:混雜模式、MAC地址更改、僞傳輸。

       既然是2層安全策略,而MAC地址又是處於2層,所以這3個策略都與MAC地址有關。


       背景知識:

        對於物理機,有2個MAC地址:

       ■固化在物理網卡ROM中的MAC地址,不可更改,該地址稱爲”初始MAC地址“;

       ■操作系統也有個MAC地址,叫做”有效MAC地址“(也就是網卡地址),該地址能在網卡屬性或者註冊表中更改,如:

           timg.jpg

          可見通過物理機網卡發送到網絡上的幀,源MAC不一定是固化的原始MAC。          

          在默認的情況下,初始MAC地址和有效MAC地址是相同的,除非用戶更改。


          虛擬機也有類似的概念,不同的是虛擬機有3個MAC地址:

          ■存在於VMX配置文件中的MAC地址(類似於固化的初始MAC地址)

          示例:ethernet0.generatedAddress = "00:50:56:8e:ca:14"

          ■虛擬操作系統的網卡地址(也就是有效MAC地址)

          ■運行時MAC地址(Runtime MAC address,虛擬交換機收到的MAC地址)

          地位超然的ESXi主機當然對其管轄下的所有VM的這3個MAC地址瞭然於胸。


          名詞解釋:

          入站幀:進入虛擬交換機的幀

          出站幀:離開虛擬交換機的幀

          主機:運行ESXi的物理服務器

          客戶機:虛擬機VM


          有了以上知識儲備,就可以詳細解讀這3個安全策略了。


          安全策略既可以在虛擬交換機級別設置,也可以在端口組級別設置,如果是後者,初始情況下這3個策略都是灰色,代表執行虛擬交換機級別的策略,選中以後,端口組策略就覆蓋了交換機的策略。


          MAC地址更改:

          ESXi發現有VM篡改了MAC地址,把網卡MAC地址改爲與VMX文件中定義的MAC地址不同(有效MAC地址與初始MAC地址不同),該咋辦?

        2805760_1365597713Pc68.png

          我們這樣思考:

          首先,ESXi明確知道內部所有客戶機的3個MAC地址及其所屬端口;

          其次,發現客戶機VM1的網卡MAC其VMX文件中定義的MAC不符(A≠C),說明VM1修改了有效MAC

          但這種修改是善意的,還是惡意的呢?虛擬交換機就要做出選擇:

          拒絕 - VM1修改了MAC?它想幹嘛?想冒充其它的VM麼?VM1連接的虛擬端口被禁用!

          接受 - 這是善意的修改,我啥也不做。

          Hacker經常用MAC欺騙(MAC模擬)來冒充另一個虛擬機,或通過將MAC更改爲隨機值將自己隱身。 將此項設爲“拒絕”就切斷了可疑分子的網絡連接。

       

          僞傳輸:

          該策略與“MAC地址更改”很類似,但控制的是“源MAC地址”的合法性,

          既然提到了“源”,也就有了方向,本策略控制是否允許合法的源MAC向外傳輸流量。

          主要用途是“嵌套虛擬機”場景,這個概念有點繞腦袋,需要仔細說明,如下圖:

            圖片1.png

          在物理EXSi主機裏再建立一個虛擬的ESXi主機,裏面的VM3和VM4是嵌套虛擬機,也就是“虛擬機裏的虛擬機”。

          物理ESXi主機虛擬ESXi主機分配了4個網卡,MAC地址分別給了C,D,E,F。

          如果嵌套VM3和嵌套VM4通過網卡F向外發送數據,出去的源MAC地址就不是F而是A或B。

          虛擬交換機A一旦發現:接收幀的源MAC與發送該幀的網卡MAC地址不符(運行時MAC與有效MAC地址不符),該咋辦?

          拒絕 - 從這個網卡出來的幀的源MAC,不是該網卡的MAC(A≠F),好奇怪的事情,丟棄該幀 ,也就意味着拒絕嵌套VM發送流量;

          接受 - 接受嵌套VM的流量,MAC地址A,B,C,D,E,F都可以從網卡F離開虛擬機向外傳輸。

          如果本策略設置爲“拒絕”,除了阻止“嵌套虛擬機”的發包,還可以阻止VM以僞造的源MAC地址向外發欺騙包。


           總結:“MAC地址更改”和“僞傳輸”處理方法的區別:

          前者是粗暴地切斷與VM連接的虛擬端口,是“端口”層面的操作;

          後者是丟棄幀,是“幀”層面的操作。


          混雜模式:

         在同一個VLAN裏的VM能收到本VLAN的全部數據包,客戶安裝WireShark或者IDS,就可以看到到達其它VM的數據包(只能收到本端口組定義的VLAN的流量)。

         注:該功能可能被惡意使用。

          示例:

圖片1.png

ESXi主機192.168.1.202之下有3個XP虛擬機,當前是在“xp-03 47”控制檯,IP是192.168.1.47,安裝了嗅探軟件Ethereal。

        “xp-04 44” ping “xp-05 31”,如果處於交換環境,ICMP數據包只能在這2個虛擬機中往返,xp03是看不到的,但設“混雜模式”爲“接受”之後,xp-03就能看到這些數據包了,注意ICMP協議包源地址和目標地址。


         虛擬交換機與物理交換機的異同

         相同點:VMware 虛擬交換機(常稱爲vSwitch )不對流量進行特殊或者專利的修改。所有流入虛擬交換機的幀遵循IEEE 802.3協議的相同標準,遵循OSI 模型數據鏈路層的概念框架,以及TCP/IP 網絡接口層的實際應用。同時,參考VMware官方的硬件兼容性列表,vSwitch支持多個廠商的網卡。

         不同點:

         ■可以調整接口數量

         ■交換邏輯與物理交換機不同。

            如果一個幀進入交換機,目標是未知的MAC 地址,物理交換機就會進入學習狀態-在所有端口泛洪該幀。但對於虛擬交換機,由於明確知道內部虛擬機的MAC地址及其屬於哪個端口(虛擬機端口和Vmkernel端口),所以不需要經歷MAC地址學習的過程-該幀會被忽略。

            類似地,如果一個幀從虛擬端口進入虛擬交換機(例如從一個VM 發出),目標是未知的MAC 地址,它將通過物理上聯鏈路處理。這使得虛擬交換機的二層交換策略變得非常簡潔。


            虛擬交換機的交換邏輯如下:

           1 )以太網幀進入虛擬交換機。

           2 )如果目標是已知的MAC 地址,將該幀交換到擁有該地址的虛擬端口。

           3 ) 如果目標是未和的MAC 地址:

                  a )如果來自外部源, 拋棄該幀。

                  b )如果來自內部源,將其發到物理上聯鏈路。


                          圖片1.png


           希望這篇文章能夠給你一個清晰的概念。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章