在擁有全球最多IT部門選用的VMware vSphere 7.x架構中,如何有效做到虛擬機器的完整安全防護,讓裝載著各種機密資訊與數據的虛擬機器高枕無憂呢?答案就是善用內建的原生金鑰提供者,一次做好虛擬機器的加密保護,本文將實際操作示範。
虛擬化平台不僅解決了IT部門在實體主機管理上的各種難題,同時也為用戶端所需的各項應用服務,提供了更快速、更可靠以及更穩定的存取體驗,但不可否認的是,它同時也帶來資訊安全風險的隱憂,其中最令IT部門擔心的就是敏感資訊外洩的防護問題。
曾經有某企業的IT人員詢問過筆者:「虛擬磁碟畢竟是一個檔案,萬一存放敏感資料的虛擬磁碟檔案遭到非法複製,這樣一來不就等同整台主機被偷走?」上述這個問題聽起來似乎有些誇張,但不表示不會在實務中發生,畢竟要非法複製一台虛擬機器,肯定比偷走一台實體主機來得快速且容易。
確實對於一台沒有受到任何加密保護的虛擬機器而言,無論整個虛擬機器或單一個虛擬磁碟遭到非法複製,惡意人士只要簡單地在相同虛擬化平台的版本中,啟動這個虛擬機器或掛接這個虛擬磁碟,即可完整存取到整個虛擬機器中的所有資訊與數據。為避免這樣的憾事發生,IT部門須要透過以金鑰服務為演算基礎的加密技術,預先做好虛擬機器的加密保護。
VMware在vSphere 7.0 Update 2或更新版本中已提供了原生金鑰提供者(vSphere Native Key Provider)的功能。原生金鑰提供者支援虛擬機器加密的相關功能,而不必額外部署外部金鑰伺服器(Key Management System,KMS),當然一樣可以繼續同過去的版本一樣,選擇整合現行外部金鑰伺服器(標準金鑰提供者)來使用。無論如何,有了原生的金鑰提供者,確實讓vSphere虛擬機器加密保護的架構與管理變得更加簡單!
另外值得注意的是,在vSphere 7.0 Update 2及更新版本中,除了增加原生金鑰提供者的功能外,當金鑰伺服器暫時斷線或無法使用的狀態下,所有已被加密的虛擬機器及使用vTPM功能的虛擬機器仍然可以繼續運作,若是使用較舊版本的vSphere,在虛擬機器所在ESXi主機的「摘要」頁面中,則可能出現如圖1所示的「主機需要啟用加密模式警示」錯誤訊息,導致虛擬機器無法進行開機。
接下來,將以實戰方式來依序講解如何更新vSphere 7.0 Update 2,以及如何建立原生金鑰提供者、使用虛擬機器加密原則、啟用虛擬機器vTPM加密功能。
vCenter Server更新
在前面介紹中已說明過,若想透過vSphere原生金鑰提供者進行虛擬機器的加密保護,必須確認整個vSphere架構中的vCenter Server與ESXi主機,皆已升級至Update 2以上版本。當確認目前的vCenter Server 7.0與ESXi 7.0的版本尚未更新至Update 2以上版本時,可以到my.vmware.com官網搜尋並手動下載選定版本的更新映像,如圖2所示。
為此,必須先完成現行vCenter Server 7.0的版本確認與更新。在vSphere Client網站內點選至vCenter Server節點的「摘要」頁面中,查看到關於版本的完整資訊。若發現目前的版本較舊,通常也會在網站頁面上方看到「有新的vCenter Server更新可用」提示訊息,一旦按下〔檢視更新〕按鈕,便會進一步開啟vCenter Server的「更新」頁面。在此可以檢視最新版本的發行日期、版本編號、組件編號、類型、嚴重性、是否需要重新開機,以及版本說明超連結等欄位。
當進一步點選「版本說明」欄位的「連結」,將會開啟官網的版本線上說明文件。若點選「產生報告」下的「互通性」檢查功能,則可以得知目前所有已部署的VMware相關解決方案的相容性清單。
緊接著,建議點選位於「產生報告」下的「更新前檢查」功能,將能夠得知目前是否有潛在的問題會導致系統更新失敗,如果執行結果出現「找不到任何問題。已通過更新前檢查」訊息,即表示可以按下〔開啟應用裝置管理〕按鈕,自動開啟並登入「vCenter Server管理網站」的「更新」頁面。最後,點選「暫存和安裝」超連結,執行最新版本的下載與更新任務。
不一定非得透過vCenter Server管理網站來完成更新,其實也可以藉由SSH遠端連線以命令參數的執行方式來進行。在開始之前,先開啟vCenter Server虛擬機器的「編輯設定」頁面,然後如圖3所示在「虛擬硬體」子頁面中掛載vCenter Server更新映像。
在成功以SSH工具連線登入vCenter Server後,便可以如圖4所示在Command命令提示下執行「software-packages stage --iso」命令,掛載最新vCenter Server Appliance 7.0 Update 2的更新映像。
掛載之後,若要檢視其內容,如圖5所示執行「software-packages list --staged」命令,即可查看其Bug修正的說明網址、升級支援的版本清單、更檔案的大小、下載網址、重要等級、發布日期等資訊。
如果確認要進行更新安裝,則執行「software-packages install --staged」命令。
成功完成更新任務後,在命令執行結果中便會出現「Installation process completed successfully」訊息提示。
成功完成vCenter Server 7.0 Update 2的版本更新後,當回到vSphere Client的vCenter Server摘要頁面中,如圖6所示,目前版本就會顯示為7.0.2。當然,也可以選擇直接安裝Update 3或更新的版本。關於版本資訊的檢視,也可選擇登入至vCenter Server Appliance網站查看。
ESXi主機更新
當完成vCenter Server 7.0的版本更新後,緊接著就可以將vSphere架構中的每一台ESXi 7.0主機同樣逐一更新至Update 2以上的版本。
在執行更新任務之前,只要將目前於此主機中運行的虛擬機器,透過「移轉」功能線上移動至其他運行中的ESXi 7.0主機,或是選擇將這些虛擬機器關機。在完成了ESXi主機上虛擬機器的移轉以及關機後,接下來使用ESXi 7.0 Update 2以上版本的安裝光碟或USB磁碟,來啟動就地更新的安裝操作。
在完成ESXi安裝啟動之後,便會列出目前本機所有連接的磁碟清單,此時只要選取目前ESXi的系統磁碟,即可開啟如圖7所示的「ESXi and VMFS Found」頁面。
接著,會開啟「Confirm Upgrade」確認頁面,如圖8所示,內容中已清楚描述到將把現行的ESXi 7.0.1升級至ESXi 7.0.2。按下〔F11〕鍵,開始進行更新作業。過程中如果出現「The CPU in this host may not be supported in future ESXi releases」提示訊息,表示此主機所使用的CPU在未來的ESXi新版本中可能將不再受到支援。目前可以不必理會,直接按下〔Enter〕鍵。
成功完成整個ESXi的更新任務後,就會出現「Upgrade Complete」訊息頁面。先移除安裝媒體,再按下〔Enter〕鍵來重新啟動系統。完成ESXi系統重新啟動後,如圖9所示,在ESXi的DCUI主控台頁面中,便會發現目前的版本已是VMware ESXi 7.0.2。
關於在ESXi主機的更新方法中,只要能夠透過SSH遠端連線至準備更新的ESXi主機,就可以在不停機的狀況下完成ESXi的更新安裝,然後再自行找離峰時間完成重新開機即可。
執行更新步驟時,先執行以下命令參數查看目前這個depot檔案的封裝內容,其中資料夾的所在路徑,必須輸入depot檔案實際的存放路徑,內容中可以發現有兩個檔案,其中ESXi-7.0.2-17630552-standard就是接下來會使用到的檔案。執行該命令參數以完成ESXi主機系統的更新任務,更新結果將輸出到一個名為output.txt文件中:
esxcli software profile update -d="/vmfs/ volumes/iSCSI Datastore/VMware-ESXi- 7.0U2-17630552-depot.zip" -p=ESXi-7.0.2- 17630552-standard --no-hardware-warning > /tmp/output.txt
接著,執行「cat /tmp/output.txt | more」命令參數,如果有發現「The update completed successfully」與「Reboot Required:true」訊息,即表示已更新成功。最後執行「reboot」命令,讓它重新啟動即可生效。
虛擬機器(VM)更新
當完成ESXi主機的更新後,在vSphere Client網站上就可以發現在此主機上運行的虛擬機器皆出現了「此虛擬機器可使用較新版本的VMware Tools」的訊息,如圖10所示,若要立即進行更新任務,則點選「升級VMware Tools」超連結。
緊接著,出現「升級VMware Tools」頁面。如圖11所示,可以採用「互動式升級」或是「自動升級」。前者必須進入到客體作業系統中執行安裝操作,而後者會自動於背景完成安裝,若有需要,還可以自行加入進階選項設定。必須注意的是,無論最終選擇哪一種升級方式,安裝之後通常都必須重新啟動虛擬機器,才能完成更新。
關於更新虛擬機器VMware Tools的方式,除了可以針對個別的虛擬機器執行外,對於擁有較多虛擬機器的運行環境,可透過資料中心節點頁面來查看「更新」頁面中各叢集下的虛擬機器VMware Tools版本狀態,而最新的更新狀態,只要選定叢集並點選「檢查狀態」即可得知。在此凡是出現「有升級可用」的狀態,便可以在批次勾選後點選「升級以符合主機」超連結,來完成大量虛擬機器的更新。
新增原生金鑰提供者
關於vSphere 7.0以上版本的金鑰提供者的管理,只要開啟並登入vSphere Client網站,點選至vCenter Server節點下的「安全性」→「金鑰提供者」頁面即可。如圖12所示,在「新增」選單中可以發現有【新增原生金鑰提供者】與【新增標準金鑰提供者】兩個選項,接下來的示範將會以前者的選項來做講解,如果採用的是第三方的標準金鑰提供者,則可以參考過去曾經發表過的整合HyTrust KeyControl金鑰管理伺服器介紹一文。
如圖13所示,在「新增原生金鑰提供者」頁面中,輸入一個全新的命名即可,至於是否要將「僅對受TPM保護的ESXi主機使用金鑰提供者」選項勾選,可視實際的安全需求來決定,如果是在巢狀的虛擬化環境中進行測試,請勿勾選此設定。在實務的運行環境中,雖然ESXi主機不需要TPM 2.0裝置,也可以使用原生金鑰提供者來對於虛擬機器進行加密保護,但是若多了一層TPM 2.0的保護,肯定會讓整體的運行更加安全。
完成原生金鑰提供者的新增後,便可以在下方的「詳細資料」子頁面中看到目前金鑰管理伺服器的上線狀態,按下〔備份〕按鈕繼續。
在「備份原生金鑰提供者」頁面中,可以直接按下〔備份原生金鑰提供者〕按鈕,或是先勾選「使用密碼保護原生金鑰提供者資料(建議)」選項,開啟密碼設定頁面,如圖14所示並勾選「我已將密碼儲存在安全的位置」選項,如此一來,將可以得到更加安全的保護措施。
請注意!必須妥善保存所設定好的密碼,因為當發生災害重建時,唯有此密碼才能夠恢復已加密的虛擬機器存取。
完成原生金鑰提供者的檔案(.p12)備份後,如圖15所示,在「金鑰管理伺服器」子頁面中就會出現已成功完成備份的圖示,並且在「金鑰提供者」狀態欄位中顯示為「作用中」。
虛擬機器儲存區原則
無論使用的金鑰管理伺服器是原生還是標準,只要完成vCenter Server與金鑰管理伺服器的信任連線後,就可以建立虛擬機器儲存區原則,讓後續需要受加密保護的虛擬機器能夠套用此原則。由於此做法是直接針對虛擬機器的檔案進行加密保護,因此適用在使用任何一種Guest OS的虛擬機器。
關於虛擬機器儲存區原則的管理,只要在vSphere Client網站的首頁選單點選「原則和設定檔」,如圖16所示,便能夠在「虛擬機器儲存區原則」頁面清單中,查看到目前預設已經有一個「VM Encryption Policy」可以使用,進一步也可在其下方的各個子頁面中檢視完整的配置資訊。
可以透過點選「建立」來完成自訂一個全新的原則設定,或者「複製」現行的任何一項原則再進行修改,或是乾脆點選「編輯」來修改現行預設的原則配置。無論如何,預設的「VM Encryption Policy」已經可以直接使用。
配置虛擬機器加密原則
確認已經完成了虛擬機器加密原則準備後,就可以對於選定的虛擬機器,點選「動作」選單中的【虛擬機器原則】→【編輯虛擬機器儲存區原則】,選擇所要套用的虛擬機器儲存區原則,進一步還可以自行決定是否要啟用「針對每個磁碟設定」功能。
另一種套用虛擬機器儲存區原則的方法是,先開啟虛擬機器的「編輯設定」頁面,再點選至「虛擬機器選項」子頁面,如圖17所示從「加密虛擬機器」下拉選單中挑選所要套用的虛擬機器儲存區原則。
請注意!如果針對已開啟電源的虛擬機器來配置儲存區的加密原則,在「最近的工作」清單中將會立即出現錯誤而造成失敗。
無論選擇何種操作方式完成虛擬機器加密原則的套用,一旦完成執行,便可以到虛擬機器的「編輯設定」頁面中,如圖18所示查看目前所有已加密的虛擬磁碟。後續於此虛擬機器所新增的虛擬磁碟,同樣可以受到加密原則的保護。
若想要對於準備新增的虛擬機器設定加密原則,只要在新增虛擬機器過程的「選取儲存區」頁面中,直接從「虛擬機器儲存區原則」選單中挑選虛擬機器的加密原則即可。
一旦虛擬機器成功套用了選定的虛擬機器儲存區原則,如圖19所示,在其摘要頁面中的「虛擬機器儲存區原則符合性」狀態就會顯示為「符合標準」。若發現尚未呈現最新的狀態資訊,可點選「檢查符合性」超連結進行狀態更新。
進一步,也可以回到「虛擬機器儲存區原則」管理頁面中,在選定虛擬機器加密原則後,點選至「虛擬機器符合性」子頁面,查看目前有哪些虛擬機器已經套用此加密原則。
關於虛擬機器加密原則的套用,如果在新增原生金鑰提供者的步驟中,已勾選「僅對受TPM保護的ESXi主機使用金鑰提供者」設定,將可能在「最近的工作」區域中出現如圖20所示的錯誤訊息,這表示此虛擬機器所在的主機尚未啟用BIOS中的TPM功能。
關於vTPM加密功能
TPM(Trusted Platform Module)與vTPM(Virtual Trusted Platform Module)之間有何差別呢?
其實兩者都是執行相同的功能,只是前者採硬體的信賴平台模組來作為認證或金鑰儲存區,後者則是以軟體式的處理方式來完成相同的任務,也就是使用虛擬機器中的.nvram檔案做為安全儲存區,而該檔案便是透過虛擬機器加密功能來進行加密作業。
若需要在vSphere 7.0 Update 2以上版本的虛擬機器中使用vTPM的加密功能,Guest OS必須是Windows Server 2016 (64 bit)或Windows 10 (64 bit)以上版本,如此才能在Windows的Guest OS中使用BitLocker功能來加密保護系統磁碟以及其他磁碟的資料安全。
想要知道虛擬機器是否已經啟用TPM裝置功能,可以先在vSphere Client網站中開啟虛擬機器的「編輯設定」頁面。如圖21所示,在「虛擬機器選項」子頁面中展開「開機選項」,然後勾選「在下次開機期間強制進入EFI設定畫面」選項,再重新啟動此虛擬機器。
在虛擬機器重新啟動並且開啟「Boot Manager」頁面後,選取「Enter Setup」來開啟「Boot Maintenance Manager」頁面,再選擇進入「TPM Configuration」,開啟「TrEE Configuration」頁面,如圖22所示便可以查看到目前TPM配置的版本,以及決定是否要啟用TPM清除功能。
啟用虛擬機器vTPM加密
關於虛擬機器vTPM功能的啟用,可選擇在執行新增虛擬機器的設定過程中,從「自訂硬體」頁面內按下〔新增裝置〕按鈕並挑選「信賴平台模組」選項來完成設定,新增之後如果該欄位出現「存在」訊息,即表示此虛擬機器能夠使用vTPM功能。
同樣的做法,也可以在關閉虛擬機器後開啟「編輯設定」頁面,接著點選至「虛擬硬體」子頁面中,如圖23所示按下〔新增裝置〕並挑選【信賴平台模組】來完成。必須注意的是,此操作只能在vSphere Client網站中進行,因為在VMware Host Client網站內只能從編輯虛擬機器設定中移除虛擬TPM裝置而無法進行新增。
上述的操作若尚未完成原生金鑰提供者的新增,或是第三方金鑰管理伺服器的部署,在「加密」→「加密選項」欄位設定中,將出現「需要金鑰管理伺服器」提示訊息,而無法繼續啟用加密功能設定。
在確認虛擬機器已啟用vTPM功能後,開啟虛擬機器電源,進入Guest OS的桌面。只要是相容的Windows版本,在打開「裝置管理員」介面中,便可以查看到「Security devices」節點下多了一個「Trusted Platform Module 2.0」,如圖24所示。
無論是在Windows Server 2019、Windows Server 2022或是Windows 10、Windows 11中,除了可透過傳統的MMC介面開啟「Device Manager」來檢視TPM裝置資訊外,也能夠選擇從Windows設定介面中檢視。
操作方法很簡單,只要在開啟「Windows Settings」後,點選進入「Update&Security」頁面,再點選「Windows Security」頁面中的「Device security」。接著,在「Device security」頁面中,點選位於「Security processor」選項中的「Security processor details」超連結。然後,便可以檢視有關TPM的版本資訊與現行狀態。
關於Windows在TPM的管理設定,除了可透過簡易的GUI操作介面外,對於進階的管理員而言,也可以透過內建的Windows PowerShell來完成,請參閱表1說明。若想知道某一個命令的用法與範例,只要執行「Get-Help 命令名稱 -Detailed」即可。
Guest OS安裝BitLocker功能
在確認已經成功啟用虛擬機器的vTPM 2.0加密防護功能後,接下來準備進入Windows Guest OS中,透過BitLocker功能來加密系統磁碟,以及任何需要受到保護的資料磁碟。而系統對於所產生的加密以及憑證的相關資訊,也會自動寫入至虛擬機器的.nvram檔案中,並且受到VM Encryption安全加密機制的保護。
無論是最新的Windows Server 2022還是Windows Server 2019、Windows Server 2016、Windows 10專業版以及企業版,皆提供支援相容VMware vSphere 7.x vTPM的BitLocker功能,只是Windows Server預設並沒有安裝此功能,而是須要透過「Server Manager」操作介面或Windows PowerShell命令進行安裝。
首先,在「Server Manager」操作介面部分,於「Manage」選單中點選【Add Roles and Features】。再連續按下〔Next〕按鈕,來到如圖25所示的「Features」頁面後,勾選「BitLocker Drive Encryption(BitLocker磁碟機加密)」選項並按下〔Next〕按鈕,完成安裝並重新開機。
若是想透過Windows PowerShell命令來安裝BitLocker功能,只要以管理員的身分執行下列命令參數即可,成功安裝之後,系統會自動重新開機:
Install-WindowsFeature BitLocker -IncludeAllSubFeature -Include Management Tools -Restart
啟用與設定BitLocker
BitLocker功能安裝完成後,就可以加密保護選定的磁碟。至於應該要加密哪些磁碟呢?一般來說,系統磁碟與資料磁碟都應該啟用加密保護,以確保虛擬機器被非法複製後,避免遭到惡意人士嘗試將作業系統啟動或是將資料磁碟掛接至其他虛擬機器進行竊取。
接下來,就來實際使用BitLocker功能。先在準備要加密的磁碟上按下滑鼠右鍵,,然後點選快速選單中的【Turn on BitLocker】。
開啟「How do you want to back up your recovery key?」頁面後,如圖26所示,建議點選「Save to a file」選項來選定要存放備份修復金鑰檔案的位置。必須注意的是,不可以選擇準備要加密或是已經加密的磁碟路徑,選擇外接的USB磁碟機最為理想,並且最好能夠複製此檔案至更多磁碟來妥善保存,因為當這台電腦發生故障而無法使用時,還是可以透過此修復金鑰檔案的認證,來繼續存取已加密磁碟中的所有資料。按下〔Next〕按鈕,繼續設定。
在「Choose how much of your drive to encrypt」頁面中,如果是針對全新尚未存放檔案的磁碟,則選取「Encrypt used disk space only」,這樣系統後續將會自動對於新增的檔案進行加密。相反地,若是針對已經存放許多檔案的磁碟,則建議選取「Encrypt entire drive」,以確保整個磁碟中的檔案階完整受到加密保護。選擇完畢,按下〔Next〕按鈕。
接著是「Choose which encryption mode to use」頁面,如圖27所示,如果針對抽取式的USB行動磁碟進行加密,而且這個磁碟機還會繼續在舊版的Windows 7或Windows 8/8.1作業系統中存取,則在此就必須選取「Compatible mode」。若加密的是本機的固定磁碟,並且也不會將此磁碟移動至舊版的Windows中存取,選取「New encryption mode」將可以獲得更高的安全性保護。
再按下〔Next〕按鈕,進入「Are you ready to encrypt this drive」頁面中,如圖28所示,必須確認已勾選「Run BitLocker system check」選項,以確保BitLocker能夠正確讀取修復及加密金鑰。按下〔Start encrypting〕按鈕後,可能會在Windows桌面的右下方,看到「重新啟動電腦後將會開始加密」的提示訊息,如圖29所示,在點選此訊息後立即重新啟動電腦。一旦成功完成加密任務,在桌面的右下方一樣會出現加密完成的訊息。
完成了選定磁碟的BitLocker加密後,往後如果需要管理BitLocker的所有磁碟配置,最快速的方法就是在選定磁碟的右鍵選單中點選【Manage BitLocker】。此外,也可以透過Windows的「控制台」或「設定」介面,來開啟BitLocker的管理介面。
如圖30所示,在「BitLocker Drive Encryption」管理頁面中,除了可以繼續選擇加密其他磁碟外,也能夠對於任何已經加密的磁碟執行暫停加密、備份加密金鑰以及關閉BitLocker加密功能等操作。如果需要管理有關於TPM的配置,可以點選左下方的「TPM Administration」超連結,若是一般磁碟的管理,則點選「Disk Management」超連結。
如同TPM的管理一樣,關於BitLocker的管理,除了同樣可以透過簡易的GUI操作介面外,也可以透過Windows PowerShell來完成,請參閱表2說明。
如果想要知道某一個命令的用法與範例,只要執行「Get-Help 命令名稱 -Detailed」即可。
結語
儘管vSphere 7.0 Update 2以上版本的更新,所提供的原生金鑰服務加密功能,可以有效防止虛擬機器遭到非法複製,但是這項安全措施的使用前提仍是要做好外部網路入侵的防禦工作,這包括了防火牆、防毒軟體以及客體作業系統更新管理,畢竟它們是資訊安全的鐵三角,至於進階的防護措施,則可以搭配入侵偵測系統的使用。有了資訊技術所建立的安全防護網後,最後還必須做好實體主機的安全管制,這包括門禁與人員的管理等等。總之,即便來到全面虛擬化的IT時代,就資訊安全管理的角度而言,無論是軟體、硬體、虛擬或是實體,通通都得納入管控的範圍,如此才能將資訊安全的風險降至最低。
<本文作者:顧武雄,Microsoft MVP 2004-2016、MCITP與MCTS認證專家、台灣微軟Technet、TechDays、Webcast、MVA特約資深顧問講師、VMware vExpert 2016-217、IBM Unified Communications/Notes/Domino/Connections Certified。>