特別報導:Windows Server 2008

Active Directory 網域服務中的新功能

Gil Kirkpatrick

 

摘要:

  • 透過 ADDS 使用全新的伺服器管理員
  • 在 Server Core 上執行網域服務
  • 唯讀網域控制站
  • 密碼、備份和稽核方面的變更

Microsoft 在 Windows 2000 引進了 Active Directory 的世界。之後的重大版本 Windows Server 2003,則大幅改進 Active Directory,

但並沒有什麼驚天動地的變更。如今的 Active Directory® 可謂是相當成熟且穩固的目錄服務。即便如此,Active Directory 小組仍在最新的版本中提供了幾項重大的進階功能,以提升此核心網路服務的安全性和管理性。

回到這個世紀交替之時,Active Directory 不過是在使用者登入時驗證他的身分、套用群組原則到使用者及其電腦,以及幫助他找出他正在尋找的印表機的一項技術。之後沒幾年,Microsoft 便推出它的獨立變體,稱為 Active Directory 應用程式模式 (ADAM)。

到 2006 年,這全然改觀。Active Directory 不再是特定的技術,它現在是一項產品,可識別許多 Windows® 內建識別和存取控制服務。[圖 1] 簡單介紹了 Active Directory 產品的組成成分。

Figure 1 Active Directory 元件

現行 Active Directory 技術 舊稱 描述
Active Directory 網域服務 (ADDS) Active Directory 我們過去稱為 Active Directory。它為網域使用者和電腦提供 Kerberos 及以 NTLM 為主的驗證,並且會管理 OU、使用者、群組、群組原則等,還有更多。
Active Directory 輕量型目錄服務 (ADLDS) Active Directory 應用程式模式 (ADAM) 以 ADDS 所使用的相同原始程式碼為基礎的高效能 LDAP 伺服器。
Active Directory 憑證服務 (ADCS) 憑證服務 使用 X.509 憑證提供強式驗證。
Active Directory Rights Management Services (ADRMS) 版權管理伺服器 透過建立版權保護的檔案和容器,來保護數位資產 (例如文件和電子郵件) 免遭未經授權的使用。
Active Directory Federation Services (ADFS) Active Directory Federation Services 為 WS-* 相容的 Web 服務提供 Web 單一登入和身分識別同盟。

所以正確來說,本文其實是討論網域服務。但為了不造成混淆,我們談的仍舊是您自 2000 年來就愛用的 Active Directory。

Windows Server 2008 中的伺服器管理員

我接下來要討論的前兩項 Active Directory 改進,其實並不是 Active Directory 網域服務 (ADDS) 的變更,它們實際上是 Windows 中影響您管理 Active Directory 的變更。第一項是在您第一次啟動 Windows Server® 2008 伺服器時會馬上出現的全新伺服器管理員 (第二項是 Server Core 安裝,我稍後會談到)。

伺服器管理員看起來可能跟 Windows Server 2003 中的「設定您的伺服器精靈」很類似,預設也是在安裝 Windows Server 2003 之後顯示。然而,那個版本對日常的管理作業並沒有什麼用處,而且我認識的每個人都勾選 [登入時不要顯示這個畫面] 方塊。

另一方面說來,Windows Server 2008 中的伺服器管理員則相當實用 (請參閱 Byron Hynes 在本期《TechNet Magazine》的文章,以概略了解伺服器管理員)。首先,如您在 [圖 2] 所見,伺服器管理員現在是 Microsoft® Management Console (MMC) 嵌入式管理單元,而不是 Microsoft HTML 應用程式 (HTA)。這表示它具備功能完整、既熟悉又便於自訂的使用者介面。不需要額外的設定,伺服器管理員便可讓您管理伺服器角色 (像是 DNS、ADDS 和 IIS 等重要服務) 和功能 (軟體元件,例如 Microsoft .NET Framework、BitLockerTM 磁碟機加密和 Windows PowerShellTM) 的安裝。除了新增和移除軟體的功能之外,伺服器管理員還提供單一窗口來執行診斷工具 (例如事件檢視器和 PerfMon) 和系統設定公用程式 (例如裝置管理員和 Windows 防火牆嵌入式管理單元)。如果您新增 Active Directory 的 MMC 嵌入式管理單元 — 比如,[使用者和電腦]、[網域和信任],以及 [站台及服務] — 您將擁有一個相當不賴的介面來執行 Windows Server 2008 網域控制站 (DC) 的日常管理工作。

[圖 2] Windows Server 2008 中的伺服器管理員

[圖 2]** Windows Server 2008 中的伺服器管理員 **(按影像可放大)

Windows Server 2008 Server Core

Windows Server Core 是全新的 Windows 安裝選項,它提供精簡版的 Windows,當中只包含執行某些重要伺服器角色所需的元件,包括 Active Directory 網域服務 ([圖 3] 列出 Server Core 支援的角色)。雖然 Server Core 安裝有個圖形化 UI,但它並不會執行 Windows 桌面殼層,而且幾乎沒有任何圖形化工具可用來管理和設定 Windows (見 [圖 4])。在此您只有一個命令視窗可以用,可能讓您像熱鍋上的螞蟻一樣不知所措。我要怎麼變更電腦名稱?又該如何設定靜態 IP 位址?

[圖 4] Server Core UI 中沒什麼可看的

[圖 4]** Server Core UI 中沒什麼可看的 **(按影像可放大)

您在進行 Server Core 安裝的前幾分鐘可能會坐立不安。花點時間讓您自己重新熟悉一下 WMIC、NETSH 和 NETDOM,您很快就能輕鬆進行所有例行的安裝和設定工作。而且您還是有 Regedit 和記事本可以滿足您圖形化工具的需要。

Server Core 的主要優點是,進行典型 Windows 安裝所需的程式碼大半都已移除,因為這些核心伺服器角色可能不需要那些程式碼。這不僅能縮小可能受到惡意程式碼攻擊的面積 (這是件好事),還能減少必須在 DC 上執行的修補程式和重新開機次數 (這甚至更棒)。而且您所需的磁碟使用量和硬碟也小很多 — 這通常沒什麼大不了的,不過在虛擬化的伺服器環境中倒是蠻有利的。

缺乏圖形化公用程式會因此讓管理 ADDS 困難重重嗎?完全不會!您可以在工作站上執行公用程式,然後透過網路連線到網域控制站,從遠端執行幾乎所有的管理工作。我預計絕大多數的 DC 終究會在 Server Core 安裝上執行。

DCPROMO 變更

您在 ADDS 裡面會注意到的第一項變更,就是全新的 DCPROMO。它的運作方式就跟 Windows Server 2003 中的 DCPROMO 一樣,但是它已經徹底重新改寫過,以更利於使用。譬如,您不用再輸入網域系統管理員認證 — DCPROMO 可以使用您目前的登入來升級伺服器。您也不用再輸入 DCPROMO /ADV 來存取 [進階模式] DCPROMO 選項 — 現在在第一個 DCPROMO 對話方塊上有個可以用來啟用這些選項的核取方塊。進階模式也可讓您選擇現有的網域控制站來進行複寫。這表示您可以卸下生產 DC 身上的 DCPROMO 複寫負載。

當您將 DC 升級到新網域或樹系時,DCPROMO 會提供選項讓您設定樹系和網域功能等級,而不是讓您之後才進行這些設定。您也可以在升級過程中指定要放置 DC 的 Active Directory 站台,這在自動 DCPROMO 的情況下相當有用。DCPROMO 甚至還會根據 DC 的 IP 位址來推薦最佳的 DC 站台。

新的 DCPROMO 還會將所有設定選項全都收集到單一頁面上,提供一個位置讓您選擇新的 DC 是要作為通用類別目錄 (GC)、DNS 伺服器,還是唯讀 DC。您不必在 Active Directory [站台及服務] 嵌入式管理單元中,進入難找的地方將 DC 標示為 GC。

但或許新 DCPROMO 裡面最棒的功能是,能夠在升級程序開始前將所有 DCPROMO 設定全都儲存到一個回應檔中。這比手動修補回應檔還要簡單得多 — 而且也比較不會出錯。您之後可以使用該回應檔在其他伺服器上執行自動 DCPROMO 作業。而對於那些熱愛指令碼的人,您現在也可以從命令列存取所有 DCPROMO 選項。

唯讀網域控制站

在 Active Directory 早期,企業常常在使用者可能登入的每個站台部署網域控制站。譬如,銀行在每家分行放置 DC 這種作法就很常見。當中的邏輯是要讓分行的使用者即使在 WAN 失敗時,也能登入和存取區域網路的資源。

當時企業並不是很了解保護 DC 實體安全的必要。我還看過網域控制站被塞在路過的人很容易存取的辦公桌下。Active Directory 架構設計師在幾年之後才完全了解到不安全 DC 所產生的安全性風險,IT 組織於是開始將它們的 DC 合併到較集中化的資料中心。分公司使用者之後得透過 WAN 進行驗證,但為了提高安全性,付出這樣的代價還算值得。

Windows Server 2008 中的 Active Directory 藉著引進唯讀網域控制站 (即 RODC) 而改變了原先相同地位的分公司部署。這成為 Windows Server 2008 網域服務中最重要的變更。

Active Directory 小組在設計 RODC 時,把焦點放在分公司案例的需求上,所採取的目標是「在分公司發生的,就留在分公司」。重點是如果您將 DC 部署在實體上不安全的分公司裡面,您終究無法防止該 DC (以及信任該 DC 的機器) 受到危害,但是您可以避免危害的情況從分公司向外擴散到網域的其餘部分。

要注意的是,即使 RODC 對 ADDS 基礎結構產生了巨大的變更,但要實作它們還是很簡單。您的網域必須是位於 Windows Server 2003 樹系功能等級,而且網域裡面必須至少有一個 Windows Server 2008 DC。RODC 除了可作為分公司的解決方案之外,它也非常適合用於網際網路面向的環境,還有將 DC 放置在網路週邊的情況下。

DC 擅離職守

在分公司中有好幾種威脅要考慮。第一種是「DC 遭竊」案例,也就是有人偷走 DC 或 DC 的磁碟。除了會使本機服務遭到中斷之外,也可能有攻擊者最終獲知網域中所有使用者名稱和密碼,藉此提高他的權限來存取受保護資源或導致拒絕服務的風險。為了應付這項威脅,RODC 預設並不會將密碼雜湊儲存在 RODC 的目錄資訊樹 (Directory Information Tree,DIT) 中。因此若要向網域驗證使用者,當使用首先向特定 RODC 進行驗證時,RODC 會將要求傳送給網域內的完整網域控制站 (FDC)。FDC 會處理該要求,若成功,RODC 便會發出密碼雜湊的複寫要求。

遭到入侵的 RODC 很有可能會要求機密帳戶的密碼雜湊。為了加以防範,網域系統管理員可以針對各個 RODC 設定密碼複寫原則。密碼複寫原則是由 RODC 的電腦物件上的兩個屬性構成。msDS-RevealOnDemandGroup 屬性包含其密碼可快取在 RODC 上的群組、使用者或電腦帳戶的分辨名稱 (這些一般是跟 RODC 位於相同站台的使用者和電腦)。而 msDS-NeverRevealGroup 則包含其密碼不可快取在 RODC 的群組、使用者或電腦帳戶的分辨名稱 (例如,網域系統管理員帳戶絕對不應該將它的密碼雜湊快取在 RODC 上)。當 RODC 要求特定帳戶的密碼雜湊時,FDC 會比照密碼複寫原則來評估要求,以判斷是否應該將密碼雜湊複寫到 RODC。當 DC 遭竊時,這可將受影響的範圍侷限在那些在遭竊的 RODC 從網路移除當時快取的密碼,並且也消除了重要密碼遭到入侵的可能性。

RODC 電腦物件包含其他兩個屬性可幫助您判斷到底是哪些帳戶應該快取它們的密碼。msDS-AuthenticatedAtDC 屬性會列出已向 RODC 驗證的密碼,而 msDS-RevealedList 屬性則會命名其密碼目前是由 RODC 儲存的帳戶。

使用者和電腦密碼雜並不是唯一存放在 DC 上的秘密。KrbTGT 帳戶包括在每個網域控制站上執行的 Kerberos 金鑰發佈中心 (KDC) 服務的金鑰。在典型案例中,網路中的每個 KDC 都是共用相同的 KrbTGT 帳戶,而攻擊者有可能從失竊的 DC 中擷取這些金鑰,並利用它們來攻擊網域的其餘部分。不過,每個 RODC 都有自己的 KrbTGT 帳戶和金鑰,可消除該風險。

應用程式也常常把密碼或其他秘密存在 DIT 中。如果攻擊者要偷取 DC,她很可能會竊取這些應用程式密碼,並利用它們來取得應用程式的存取權。為了減緩這個風險,Windows Server 2008 網域服務容許系統管理員定義「唯讀 DC 已篩選屬性集」(Read-Only DC Filtered Attribute Set,RO-FAS)。屬於 RO-FAS 一部分的屬性永遠都不會複寫到 RODC,因此也無法從遭入侵的 DC 中擷取到它們。您可以在架構中將相對應 attributeSchema 物件的 searchFlags 屬性設為位元 9 (0x0200),將屬性指定到 RO-FAS。

城門內的野蠻人

另外一種分公司網域控制站的威脅,是發生在本機伺服器系統管理員利用 DC 的權限來提高其權限,藉此獲得其他網域資源的存取權或發動拒絕服務攻擊。再次強調,如果本機系統管理員能夠實際存取網域控制站,那麼對於入侵可能也無計可施。不過倒是可以防止攻擊者使用分公司網域控制站來入侵網域當中的其他 DC。

在網域中完整的 DC 並不會信任 RODC 為網域控制站。從信任的觀點看來,FDC 會將 RODC 當作網域中的成員伺服器來對待。RODC 並不是企業網域控制站或網域控制站群組的成員。RODC 帳戶更新目錄內容的能力非常有限,因此即使攻擊者真的入侵 RODC 帳戶,她所獲得的權限也幾乎無用武之地。

RODC 甚至不會顯示在標準 DS 複寫拓樸中。因為 RODC 看起來像一般的成員伺服器,而不像網域控制站,所以知識一致性檢查程式 (KCC,這是每個 DC 上負責計算 DS 應用程式拓樸的處理程序) 不會從 RODC 建立連線物件。完整 DC 或 RODC 全都不會嘗試從 RODC 複寫。但是,RODC 會建立一個連線物件來代表完整 DC 的輸入複寫授權合約,不過這個連線物件只存在於 RODC 的複本中,其他 DC 完全沒有該連線物件的複本。從複寫的觀點來看,RODC 就像是目錄物件的蟑螂屋。物件只能往內複寫,不能往外複寫。

RODC 上的系統管理角色區隔

分公司 DC 常常是由包辦一切工作 (從在網域控制站上執行備份到清除關鍵字) 的本機伺服器系統管理員來管理。但是將在網域控制站上進行一般維護工作所需的權利授與網站系統管理員,其實有其安全性風險,而且網站系統管理員有可能會提高她在網域中的權限。RODC 提供了兩種系統管理角色區隔來舒緩這項威脅。

透過第一種形式的角色區隔,網域系統管理員可以依正常的方式使用 DCPROMO 來升級 RODC,或者她可以使用包含兩個步驟的程序,安全地將實際的升級程序委派給分公司網站系統管理員,而無需授與任何網域系統管理權限。網域系統管理員可使用 Active Directory [使用者和電腦] MMC 嵌入式管理單元,在網域中預先建立 RODC 電腦帳戶,如 [圖 5] 所示。

[圖 5] 預先建立 RODC 電腦帳戶

[圖 5]** 預先建立 RODC 電腦帳戶 **(按影像可放大)

選取 [預先建立唯讀網域控制站帳戶] 會執行精簡版的 DCPROMO,它會執行所有需要網域系統管理存取權的工作,包括建立電腦帳戶、指派 RODC 到網站、指定 DC 的角色、指定密碼複寫原則,以及定義在 RODC 上需要權限以完成 DCPROMO 作業的使用者或群組。委派的系統管理員或群組是存放在 RODC 電腦物件的 managedBy 屬性中。

委派的系統管理員接下來可以在伺服器本身執行 DCPROMO。DCPROMO 會偵測預先建立的帳戶,然後將伺服器轉換成 RODC。透過這種方式執行 DCPROMO 就不需要網域系統管理員認證。

RODC 提供系統管理角色區隔的第二種方法,是在 RODC 本身上面建立本機系統管理角色。這些角色看起來像電腦本機群組 — 它們是儲存在 RODC 的登錄內,而且只能在 RODC 上提高權限。但是系統管理員是使用 NTDSUTIL 來管理本機 RODC 角色,而不是使用 [電腦管理] MMC 嵌入式管理單元來管理它們。[圖 6] 列出 RODC 上的本機系統管理角色。這些角色會一對一的對應到 Windows 中的內建群組。

Figure 6 本機 RODC 系統管理角色

帳戶操作員 (Account Operator)
系統管理員 (Administrator)
備份操作員 (Backup Operator)
憑證服務 DCOM 存取 (Certificate Service DCOM Access)
密碼編譯操作員 (Cryptographic Operator)
分散式 COM 使用者 (Distributed COM User)
事件記錄讀取者 (Event Log Reader)
來賓 (Guest)
IIS_IUSRS
Incoming Forest Trust Builder
網路設定操作員 (Network Configuration Operator)
效能記錄使用者 (Performance Log User)
效能監視器使用者 (Performance Monitor User)
Windows 2000 前版相容存取 (Pre-Windows 2000 Compatible Access)
列印操作員 (Print Operator)
遠端桌面使用者 (Remote Desktop User)
複寫者 (Replicator)
伺服器操作員 (Server Operator)
終端機伺服器授權伺服器 (Terminal Server License Server)
使用者 (User)
Windows 授權存取群組 (Windows Authorization Access Group)

RODC 奇觀

因為 RODC 是唯讀的,而且其他網域控制站也不能從它們進行複寫,所以 RODC 呈現了一些非預期的行為。比方說,DC 的輸出複寫夥伴一般會偵測到延遲物件 — 表示除了在特定 DC 上以外,其他地方都已刪除該物件,因為 DC 無法複寫超過樹系的標記存留時間。但是因為 RODC 並沒有輸入複寫夥伴,所以它們不會偵測到延遲物件。

RODC 不支持 LDAP 更新 (新增、修改、刪除、重新命名或移動) 作業。相反地,RODC 只會傳回錯誤,並提供 LDAP 轉介給可寫入的 DC 進行該作業。如果發行 LDAP 更新的應用程式不當處理轉介作業,應用程式很可能會失敗。

最後,若是樹系中其他網域的使用者嘗試向 RODC 驗證,RODC 必須能夠存取它自己網域中的完整 DC,才能取得信任密碼,適當地將驗證要求傳遞給在使用者網域中的 DC。如果 RODC 和在其網域中的完整 DC 之間的網路連線無法使用,驗證就會失敗。

更細緻的密碼原則

Windows Server 2008 ADDS 為響應熱烈要求,提供在網域中定義一個以上的密碼原則的功能。您大概已經知道,Windows 2000 和 Windows Server 2003 Active Directory 中的每個網域都只支援一個密碼原則,它會套用到網域中的所有安全性主體。如果特定的使用者群組需要不同的密碼原則,您就得建立不同的網域。但是現在在 Windows Server 2008 ADDS 中一項稱為「更細緻的密碼原則」新功能,可讓您在一個網域中定義多個密碼原則。

新策略是使用群組將更細緻的密碼原則套用到使用者身上。定義更細緻的密碼原則,您首先是在 CN=Password Settings Container, CN=System, DC=<domain> 容器中新建一個新的 msDS-PasswordSettings 物件。msDS-PasswordSettings 物件 (簡稱 PSO) 包含與群組原則中的密碼原則設定類似的屬性 (見 [圖 7])。

Figure 7 mSDS-PasswordSettings 物件中的屬性

屬性 描述
mSDS-PasswordReversibleEncryptionEnabled 指出密碼是否使用可還原加密進行加密的布林值。
mSDS-PasswordHistoryLength 密碼歷程記錄中所維護的項目數量。
mSDS-PasswordComplexityEnabled 指出是否已啟用密碼複雜性限制的布林值。
mSDS-MinimumPasswordLength 定義密碼最小長度的整數。
mSDS-MinimumPasswordAge 指出密碼在可以變更前的最短使用期限的 INTEGER8。
mSDS-MaximumPasswordAge 指出密碼在必須變更前的最長使用期限的 INTEGER8。
mSDS-LockoutThreshold 指出鎖定前允許的登入失敗次數的整數。
mSDS-LockoutObservationWindow 指出觸發鎖定之前必須發生的連續失敗登入之間的十億分之一秒數的 INTEGER8。
mSDS-LockoutDuration 指出帳戶鎖定的十億分之一秒數的 INTEGER8。

您之後藉著新增使用者或群組名稱到 PSO 具有多值的 mDS-PSOAppliesTo 屬性的方式,對使用者或群組指派密碼原則。只要您接受不將密碼原則套用到 OU 的概念,其實就很直接明瞭。不過還是有些複雜的地方。

使用者通常是許多群組的成員,所以要是多項與使用者相關的密碼原則因為這些群組成員關係而產生衝突怎麼辦?在這種情況下,ADDS 會評估優先順序,來判斷應該套用哪個密碼原則。它的運作方式如下:

  1. 如果密碼原則直接與使用者物件連結 (而不是透過群組成員資格),將套用該密碼原則。
  2. 如果有多個密碼原則直接與使用者連結,將套用具有最低優先順序值 (由 PSO 的 msDS-PasswordSettingsPrecendence 屬性值決定)。
  3. 如果有多個 PSO 具有相同的優先順序,將套用具有最低 objectGUID 值的 PSO。
  4. 如果沒有任何 PSO 直接與使用者連結,ADDS 將評估與該使用者的群組連結的 PSO。如果不只一個 PSO,將套用在 msDS-PasswordSettingsPrecedence 屬性中具有最低值的 PSO。
  5. 如果有一個以上的 PSO 具有相同的優先順序值,將套用具有最低 objectGUID 值的 PSO。
  6. 如果沒有任何 PSO 與使用者相關聯,將使用網域密碼原則。

使用者物件有一個叫做 msDS-ResultantPSO 的新屬性,有助於區分套用到使用者的是哪一個 PSO。這個屬性包含掌控使用者密碼的 PSO 的分辨名稱。

更細緻的密碼原則所賦予的彈性遠超過您所需,但是您必須小心管理這些原則,不要將它們複雜化。系統中並沒有隨附任何公用程式,讓您定義更細緻的密碼原則,您必須使用 ADSIEdit 或另尋協力廠商公用程式。

可重新啟動的 Active Directory 服務

您每次將網域控制站停機進行 DIT 維護,就會對網路服務層級造成一些中斷。Windows Server 2008 DC 有項新功能可讓您在不完全關閉 DC 的情況下停止目錄服務。

NET STOP NTDS 命令會停止 Windows Server 2008 DC 上的 ADDS。這麼做時,DC 上的本機安全性授權 (LSASS) 會繼續執行,但是它會卸載所有 ADDS 相關的 DLL,而目錄服務會變得無法使用。LSASS 接下來基本上會像在成員伺服器上一樣運作,把網域驗證要求轉送到 DC。因為處理 ADDS 的 DLL 已經卸載,您於是可以套用 ADDS 相關的修補程式,或對 DIT 執行離線磁碟重組。啟動 ADDS 很簡單,只要輸入 NET START NTDS 就行了。不過,若要從系統狀態備份還原 DIT,您還是需要開機到目錄服務修復模式。

您必須了解,目錄服務並不是真正的 Windows 服務。它仍舊是 LSASS 不可或缺的元件,而且您必須關閉機器才能停止 LSASS。不過在 Windows Server 2008 中啟動和停止目錄服務的功能,算是蠻便利的一個選項。

備份與復原

整個備份與復原的機制在 Windows Server 2008 中已經改頭換面。我在此不多細述,不過全新的 Windows Server Backup 有幾項影響 ADDS 的變更。

Windows Server Backup 是一套以磁碟區為主的備份解決方案,也就是說它會一次備份整個磁碟區。它也只會備份到磁碟 (或類似磁碟) 裝置 — 完全不支援磁帶。

WBADMIN 命令列備份公用程式有個系統狀態備份選項。使用 WBADMIN START SYSTEMSTATEBACKUP 命令,您現在可以建立一個備份映像,包含還原網域控制站上的 Active Directory 所需的所有重要系統檔案。不過備份組中最多能有五個磁碟區,但是備份組中的磁碟區只能包含系統狀態還原所需的檔案。更煩人的是,自 Windows Server 2008 的 RC0 組建版開始,不能對網路共用執行系統狀態備份。您必須要有本機磁碟區來存放系統狀態備份映像,而且該磁碟區不能屬於系統狀態備份磁碟區組的一部分。您可能必須在執行系統狀態備份的每個網域控制站上加入新的磁碟區。

執行系統狀態還原很簡單,只要將 DC 開機到 [目錄服務還原模式],並執行 WBADMIN START SYSTEMSTATERECOVERY 命令就成了。結果會產生非授權還原的 DIT,您可以在上面使用 NTDSUTIL 授權還原特定物件,就跟在 Windows Server 2003 中進行的一樣。

Windows Server Backup 還有一點特別值得一提:它會以虛擬硬碟 (VHD) 格式存放備份映像。這跟 Microsoft Virtual Server 2005 用來儲存其虛擬硬碟映像的格式一樣。這表示您可以把使用 Windows Server Backup 建立的備份映像,掛接成執行在 Microsoft Virtual Server 下的虛擬機器中的磁碟機。之後就可以把它當作一般磁碟機一樣瀏覽當中的備份內容!

另外一項與 ADDS 備份有關的變更,是您現在能夠使用磁碟區陰影複製服務來建立 Active Directory 的時間點快照集。當使用 NTDSUTIL 建立快照集時,磁碟區陰影複製服務會在更新作業覆寫 DIT 的每個磁碟區塊之前,先儲存它的前映像。透過將儲存的前映像與 DIT 目前的版本相結合,磁碟區陰影複製服務不費吹灰之力,就可以建構 DIT 的完整快照集。典型的快照集只需要花幾秒的時間就可以建成,無論 DIT 的大小為何。

這本身算是個相當有趣的功能,但是其實用處不大。不過,在 Windows Server 2008 中,ADDS 包含了一個稱為 DSAMAIN 的命令列公用程式,可在唯讀模式中掛接快照集映像。這提供了獨立的 LDAP 伺服器,就跟內含製作快照集當時目錄裡面內容的 ADLDS 執行個體沒什麼兩樣。您可以使用 LDAP 公用程式或其他 LDAP 工具來瀏覽目錄,並擷取稍早時間點的目錄物件版本。

透過 DFS-R 進行 SYSVOL 複寫

Windows Server 2003 R2 的特色是提供了經過改造的分散式檔案服務 (Distributed File Service,DFS),它併入了一套嶄新的檔案複寫機制,稱為 DFS-R。它採用遠端差異壓縮,這可藉著判斷目標檔案的哪個區塊需要複寫,以便使它與來源檔案同步,進而大幅縮減檔案複寫的流量。然而,Windows Server 2003 R2 仍舊使用檔案複寫服務 (而不是 DFS-R) 來複寫網域控制站之間的 SYSVOL。因此,SYSVOL 複寫仍然是 Active Directory 系統管理員頭痛的根源之一。

在 Windows Server 2008 網域功能等級執行時,Windows Server 2008 可使用 DFS-R 來複寫 SYSVOL,藉此提高 SYSVOL 複寫的速度和穩固性。因此,將較大型的檔案放在 SYSVOL 中,供所有的 DC 存取是很合理的。若要將 DFS-R 用於 SYSVOL,您必須先使用 DRSRMIG 公用程式先將舊版的 SYSVOL 資料移轉到 DFS-R。這個程序分成四個步驟:

  • 建立 DFS-R 所需的 Active Directory 物件。
  • 在每個網域控制站上建立 SYSVOL 的新檔案結構。
  • 切換所有網域控制站以使用新的 SYSVOL。
  • 移除舊版 SYSVOL。

根據 SYSVOL 的大小還有您擁有的網域控制站數量而定,這個程序可能會花一段時間完成,不過效能和可靠性方面的提升將值回票價。

稽核方面的改進

Active Directory 裡面適用於 Windows Server 2003 的稽核系統有好也有壞。一方面,它提供一套相當完善、富彈性又安全的解決方案,可用來追蹤目錄當中的變更。但有些人可能會反駁,覺得它有幾項嚴重的使用性問題。

在 Windows Server 2003 網域控制站啟用稽核目錄變更功能,可說是孤注一擲的決定 — 不是開啟,就是關閉。而且忙碌的企業 DC 上大量的稽核流量,讓稽核看來頗不切實際。為了設定稽核系統以產生您真正需要的訊息,而擺弄個別的安全性識別元,不但麻煩又容易出錯。稽核訊息本身往往很隱密,而且在許多情況下都不含您所要的資訊,例如已變更屬性的前後值。另外,使用原始的 Windows 工具來收集、封存多個網域控制站的訊息,以及建立它們之間的關聯,其實並不可行。

Windows Server 2008 中的目錄服務稽核系統解決了當中的一些問題。首先,有四個新的稽核子類別可用於目錄服務稽核:DS 存取、DS 變更、DS 複寫,以及詳細的 DS 複寫。所以,如果您只想稽核目錄變更,就不用費力地處理所有的讀取和複寫事件。但是如果您想要在稽核記錄中包含物件刪除作業,就必須啟用 [DS 存取]。這會產生所有 DS 物件存取的訊息,基本上是讓您再次身陷產生太多訊息的困境中。所以要不要設定安全性識別元,針對您所關心的物件產生稽核訊息,就讓您自己決定吧。

稽核訊息已經過大整頓,除了更方便讀取之外,也包含您所需的資料。特別是,目錄變更現在產生的稽核記錄項目,會包含已變更屬性的新舊值。這可說是一大改進。它唯一的缺點是新舊值是出現在不同的稽核記錄項目中,所以您必須建立它們的關聯,才能真正了解所做的變更。許多附加的稽核記錄收集產品,包括 Microsoft Audit Collection Services,都支援這類的相關性。

改良的 UI

Active Directory [使用者和電腦]、[站台及服務] 和 [網域和信任] MMC 嵌入式管理單元向來就足以管理 Active Directory。在 Windows Server 2008 中,基本的系統管理工具已經過大掃除,並介紹了幾項不錯的新功能。如果您啟用 [進階功能],每個物件的 [內容] 對話方塊會另外顯示一個標題為 [屬性編輯器] 的索引標籤。這跟 ADSIEdit 使用的屬性編輯器索引標籤相同,可讓您偵查和編輯物件的所有屬性。現在此索引標籤本身更容易解碼已編碼的屬性,例如 userAccountControl 屬性。[圖 8] 說明屬性編輯器如何完美整合。

[圖 8] Active Directory [使用者和電腦] 中的屬性編輯器

[圖 8]** Active Directory [使用者和電腦] 中的屬性編輯器 **(按影像可放大)

總結

除了我在本文中討論到的重點之外,您還可以在 Windows Server 2008 的 ADDS 中找到其他更多的改進功能。譬如,若網域是位於 Windows Server 2008 網域功能等級,KDC 便會使用 256 位元進階加密標準 (AES-256)。您可以在任何 DS 物件的 [物件] 索引標籤上勾選適當的方塊,來啟用物件的 [預防意外刪除 (Accidental Deletion Prevention)]。提供資料管理服務的可延伸儲存引擎已經過增強,以使用單一位元錯誤修正,藉此降低磁碟子系統因軟硬體錯誤而損毀 DIT 的可能性。DNS 服務會在完全載入 DNS 資料庫之前開始處理要求。DC 定位程式模組已經過加強,當它在預期的站台中找不到 DC 時,會嘗試在最接近的下一個站台尋找 DC,而不是直接使用它在網域中隨便找到的任何 DC。而 NTDSUTIL 現在支援 RODC 和磁碟區陰影複製服務快照集。

Windows Server 2008 顯然在 Active Directory 網域服務中提供了許多改進功能。將所有這些變更結合起來,可大幅提升 ADDS 的安全性和管理性。不過最棒的是,將 Windows Server 2008 整合到您的 Active Directory 環境不必進行繁雜的移轉作業 — 反而是簡單又循序漸進的過程。

Gil Kirkpatrick 是 NetPro 的技術長,他從 1996 年開始開發 Active Directory 軟體。他與來自 HP 的 Guido Grillenmeier 共同推行大受歡迎的 Active Directory Disaster Recovery 工作室。Gil 也是 Directory Experts Conference (www.dec2007.com) 的創辦人。

© 2008 Microsoft Corporation and CMP Media, LLC. 保留所有權利;未經允許,嚴禁部分或全部複製.