便捷、安穩:網域控制站的安全虛擬化
作者:許俊龍
精誠資訊 恆逸教育訓練中心 資深講師
技術分類:資訊安全
安裝一個電腦的作業系統並不難搞,頂多就是輸入幾個選項,再來就只有等待安裝完成的時間;不過接踵而至的後續設定才是挑戰,除了有一大堆更新要安裝和多次的重新開機,企業通常還會需要一些共同的設定、營運必要的應用程式、以及單位專用的系統與組態,這些才是一個電腦最耗時也最傷神的!
所幸拜虛擬化技術已臻成熟之福,有的資訊人員會先建立一個所謂的「範本」虛擬機器,把上述所有內容都先建置完成,最後使用 "系統準備 (SysPrep)" 將 SID、電腦名稱... 等唯一識別資訊予以清除,然後運用這個範本複製成為另一個虛擬機器,如果再搭配了自動應答檔,這樣連電腦名稱、網路配置、甚至是特殊的應用程式需求,全都可以快速又便利地放在新的虛擬機器之中,大大地減少了建置部署所需耗費的時間與精力。
但是若是想要部署網域內額外的網域控制站 (Domain Controller,DC),因為涉及到驗證的安全性議題,一直以來都是得依賴管理人員從頭開始建置,縱然是虛擬機器,也得先完成伺服器的角色後,再經由升級的方式成為網域控制站,不能向其他伺服器般直接複製範本虛擬機器使用,帶來的是漫長的等待與後續的一堆設定;從智慧管理的層面看來,這真不是一個很有意義的做法!
在 Windows Server 2012 內建的伺服器虛擬化技術:Hyper-v 3.0 中,管理人員可以使用 "網域控制站的安全虛擬化 (Safe virtualization of domain controllers)" 的設定,經由複製 (Clone) 快速部署出網域內第二個以上的網域控制站虛擬機器,藉以讓資訊人員從中得到下列助益:
- 快速部署出網域內另一個網域控制站。
- 當需要進行災難修復時,得以迅速還原 AD 網域服務,即時恢復企業營運的持續性。
- 複製現有的網域控制站至分公司,快速滿足其日漸增加的容量需求。
- 彈性佈建與最佳化私有雲端部署,滿足擴大規模的需求。
- 建立實際執行之前的測試環境,先行部署及測試功能。
這個技術的先決條件檢查包括:
- 操作者必須是 Domain Admins 群組的成員,或具備受指派相等權限的人員。
- PDC 模擬器必須執行 Windows Server 2012 以上的作業系統,但不一定需要是虛擬機器。如果沒有完成這個要求,網域中就不會出現 "Cloneable Domain Controllers" 此群組,也就無法進行後續的設定。
- 已安裝 Hyper-V 伺服器主機的作業系統必須是 Windows Server 2012 以上。
- 複製來源虛擬機器網域控制站的作業系統必須是 Windows Server 2012 以上。
- 複製來源虛擬機器網域控制站不可以存在下列伺服器角色:
- 動態主機設定通訊協定 (DHCP)
- Active Directory 憑證服務 (AD CS)
- Active Directory 輕量型目錄服務 (AD LDS)
- 如果應用程式是不可複製的,需先在來源網域控制站移除,然後才能建立複製。
確定完全符合前置作業所需的要求後,我們就可以按照下列步驟完成複製網域控制站的虛擬機器了:
-
步驟一、授與來源虛擬網域控制站可以被複製的權限
開啟「Active Directory 使用者和電腦」或其他 AD 管理工具,將來源虛擬網域控制站物件 (預設是在 "Domain Controllers" 組織單位內),加入至 "Cloneable Domain Controllers" 群組之中。
-
步驟二、評估來源虛擬網域控制站上是否存在無法被複製的應用程式或服務
使用 Windows PowerShell 的 Active Directory 模組,執行指令 Get-ADDCCloningExcludedApplicationList
如果有必要,可以會同軟體廠商一起審視所傳回的服務和程式清單,判斷哪些可以被順利複製。在來源網域控制站移除清單中不能被複製的應用程式與服務,以避免複製失敗。
確定來源網域控制站的服務與程式都是可以被順利複製後,執行指令 Get-ADDCCloningExcludedApplicationList -GenerateXML
以在 CustomDCCloneAllowList.xml 檔案中產生這些服務和程式的資訊。
-
步驟三、在來源虛擬網域控制站產生複製網域控制站所需的設定檔
輸入下列 Windows PowerShell 指令與參數,定義目的端新虛擬網域控制站的資訊:
New-ADDCCloneConfigFile -CloneComputerName "電腦名稱" -Static -IPv4Address "IP位址" -IPv4SubnetMask "子網路遮罩,例如:255.255.0.0" -IPv4DefaultGateway "預設閘道器的IP位址" -IPv4DNSResolver "欲使用DNS伺服器的IP位址,可使用「@("慣用DNS伺服器位址","其他DNS伺服器位址")」方式指定多筆伺服器的位址" -SiteName "AD站台名稱,例如:Default-First-Site-Name"
執行成功後會在網域資料庫所在資料夾 (預設為 C:\Windows\NTDS\) 之中產生 DCCloneConfig.xml 此複製設定檔案。
-
步驟四、將來源虛擬網域控制站關機,並且匯出
如果存在快照檢核檔 (Checkpoint),需要先予以刪除。操作指令如下:
Stop-VM -Name "來源虛擬網域控制站名稱" -ComputerName "來源 Hyper-V 主機名稱" (如果是 Windows Server 2012 R2 的 Hyper-V 主機,因為支援在虛擬機器不停止運作的狀態下匯出,可以不必輸入此指令)
Get-VMSnapshot "來源虛擬網域控制站名稱" | Remove-VMSnapshot -IncludeAllChildSnapshots
Export-VM –Name "來源虛擬網域控制站名稱" -ComputerName "來源 Hyper-V 主機名稱" -Path "存放資料夾完整路徑名稱"
Start-VM -Name "來源虛擬網域控制站名稱" -ComputerName "來源 Hyper-V 主機名稱" (如果前述動作曾經停止虛擬機器,則需要輸入此指令以啟動來源虛擬網域控制站的運作)
以上動作也可以使用 "Hyper-V 管理員" 此主控台的圖形介面操作。
-
步驟五、匯入與複製目的端新虛擬網域控制站
除了需指定虛擬機器檔案的存放位置,建議也要變更匯入目的端新虛擬網域控制站的虛擬機器名稱,以免名稱相同造成搞混。操作如下:
$path = Get-ChildItem "存放資料夾名\Virtual Machines"
$vm = Import-VM -Path $path.fullname -Copy -GenerateNewId
Rename-VM $vm "新虛擬機器名稱"
Start-VM –Name "新虛擬機器名稱" -ComputerName "Hyper-V主機名稱"
以上動作如果是使用 "Hyper-V 管理員" 主控台的圖形介面操作,務必記得在匯入時選擇「複製虛擬機器建立新的唯一識別碼」。
匯入成功之後連線新的虛擬機器,就可以看到此目的端新虛擬網域控制站正在設定。
複製完成之後要驗證作業是否成功,可以進行下列的操作:
- 確認目的端新虛擬網域控制站不是以目錄服務還原模式 (DSRM) 的模式啟動。
- 萬一此網域控制站沒有順利啟動而是以 DSRM 模式開機,請查看事件檢視器中的記錄檔以及%systemroot%\debug 資料夾中 dcpromo 記錄檔的內容。
- 如果嘗試登入並出現沒有可用登入伺服器的錯誤訊息時,請試著在 DSRM 模式中登入。
- 檢查目的端新虛擬網域控制站的電腦名稱是否正確。
- 開啟 AD 管理工具,確認新的網域控制站物件已經產生。
- 網域控制站之間的複寫正常無誤模式中登入。