盡管Hyper-V的高級網絡安全特性不可能適用于所有情況,但是管理員可以使用其構建額外的防御層級,防止惡意入侵,保護虛擬化環境。
當微軟發布Windows Server 2012時,對Hyper-V進行了大幅度調整,并且在Windows Server 2012 R2當中完成了進一步改進。在Hyper-V增加的新功能當中包含了一些提升安全性的高級網絡特性,比如DHCP Guard和Router Guard。
這些高級網絡特性運行在虛擬機層,以虛擬網卡(vNIC)為基礎。用戶可以在Hyper-V Manager當中查看這些配置,右鍵單擊虛擬機,在快捷菜單當中選擇“Setting”命令。之后系統會彈出虛擬機配置對話框,點開虛擬機的vNIC下拉列表,之后選擇“Advanced Features”配置界面。如圖A所示。如果虛擬機包含多個vNIC,那么每個vNIC都擁有獨立的Advanced Features配置界面。
圖A.高級特性 以網卡為單位進行管理
這些特性當中有兩種高級特性應該首先了解,分別是DHCP(動態主機配置協議) Guard和Router Guard,如上圖所示。這兩種保護機制能夠防止未授權的網絡服務訪問虛擬機。
Router Guard工作原理
Router Guard能夠防止虛擬機當成路由器使用,這樣就能夠在虛擬機操作系統被劫持時保護虛擬網絡。表面上,這種特性的使用場景非常有限。畢竟,大多數入侵者并不會將虛擬機作為路由器使用——盡管這種情況曾經發生過。即便如此,Router Guard特性還是擁有其發揮空間的。
設想當前環境中存在一臺跨越多個虛擬網絡、提供路由服務的特殊虛擬機。通常這種虛擬機會包含一塊并不直接參與路由進程的虛擬網卡,這塊虛擬網卡會用于管理流量或者類似目的。盡管這塊虛擬網卡不需要執行路由功能,網絡流量通常也不會被路由到管理網絡當中,但是在這種情況當中,管理員可以在管理網絡網卡上啟用Router Guard功能,防止其被加入到可路由范圍當中。
當然,路由和遠程訪問服務不會無故將數據流量路由到管理網絡當中。既然如此,在管理網絡當中啟用Router Guard不應該對虛擬機的原有行為產生影響。Router Guard只是一種額外的保護機制,防止管理員在更改配置時錯誤地將管理網絡加入到可路由進程當中或者防止路由器被挾持。
如果你想了解Router Guard究竟是如何工作的:它會丟棄路由宣告并且重定向消息。特別是,Router Guard會盡量避免以下類型的數據包:
ICMPv4 Type 5 (Redirect message 重定向消息)
ICMPv4 Type 9 (Router advertisement 路由宣告)
ICMPv6 Type 134 (Router advertisement 路由宣告)
ICMPv6 Type 137 (Redirect message 重定向消息)
用戶可以在MSDN(Microsoft Developer Network)網站上了解更多Router Guard的工作原理。
將DHCP Guard作為第二道防線
DHCP Guard部分需要解釋的問題更多。如果管理員曾經在Windows上部署過DHCP服務器,那么就會知道在部署過程當中需要使用活動目錄(AD)對新的DHCP服務器進行授權。這樣AD服務器就能夠區分合法DHCP服務器和仿冒DHCP服務器。但是現在的問題在于,非Windows DHCP服務器不需要通過AD授權就能夠開始工作。因此,DHCP Guard能夠作為抵御未授權DHCP服務器的第二道防線。這種特性被啟用之后會阻止虛擬機成為DHCP服務器。惡意軟件會將一臺普通機器變為DHCP服務器,而DHCP Guard的作用就是防止這種惡意軟件進行破壞。
DHCP Guard特性還可以被用來限制合法DHCP服務器。比如,在某個特定的網段當中不想使用DHCP服務器自動分配IP地址,那么可以在特定vNIC上啟用DHCP Guard特性。
Hyper-V的Router Guard和DHCP Guard特性被設計用來防止未授權的網絡服務訪問虛擬機。即便如此,微軟通常推薦根據實際需求啟用這些特性,而不是默認開啟,因為使用這些特性會對性能表現產生一些小的影響。