搶救網域控制站大作戰

發佈日期: 2007 年 2 月 9 日

作者: 謝合宜

大家都很清楚網路控制站是 AD 網域中最重要的伺服器,除了要建置兩台以上來維持容錯的功能之外,平時規律的系統資料備份也是非常重要的。我想大部分的網路管理人員都會積極地在平日透過「系統狀態備份」來維護系統的災難復原機制。不過有沒有想過如果這些平時的維護措施出現問題時要如何處理呢?我遇到過一個很緊急的客戶案子,客戶告知 AD 掛了。掛了?到底怎麼回事呢?到了客戶機房一看,使用兩台網域控制站 (Windows 2000 Server),同時出現問題:網域管理員只能在網域控制站進行登入,在一般使用者電腦也無法登入;開啟 AD 相關管理工具皆會出現錯誤訊息而無法進行確認與修復處理工作。要命的是:平時所進行的系統狀態資料備份 (如圖1) 有進行,不過不幸的是未曾進行確認與試著驗證進行還原嚐試,因此備份到磁帶中的資料其實是空的 (也就是說根本沒備份到任何資料!)

圖 1:系統狀態備份,含 AD 資料庫

圖 1:系統狀態備份,含 AD 資料庫

既然網域控制站出問題,得來找出到底出了甚麼問題!首先大家需要先知道,透過 DCPROMO.exe 來完成網域控制站架設,DCPROMO 會協助處理好的安裝程序大致有:

  • 啟動 Kerberos V5 服務

  • 建立 AD 架構

  • 建立 SYSVOL 共用目錄

  • 處理好 DNS 的動態註冊資料

  • 套用預設的兩個群組原則設定 (Default Domain Policy 和 Default Domain Controllers Policy)

這個客戶的狀況蠻特殊的,花了一些時間來找出所出現的問題,確認了:

  • 系統管理共用 (administrative share) 不見了,也就是 ADMIN$/C$/IPC$/NETLOGON$/SYSVOL 都消失

  • 後來又發現預設的群組原則 (Default Domain GPO 與 Default Domain Controllers GPO) 也不見了

  • 通用目錄的運作出現問題 (這是最後才發現,因為搶救回網域控制站之後,網域管理員的登入沒問題,可是一般使用者還是無法進行登入)

圖 2:預設的系統共用,ADMIN$/C$/IPC$/NETLOGON$/SYSVOL

圖 2:預設的系統共用,ADMIN$/C$/IPC$/NETLOGON$/SYSVOL

首先經過技術文件的搜尋,發現可能是遭遇到惡意程式碼的攻擊所造成的情形 (KB842715)。確認大致的問題情形,因此開始著手進行網域控制站的搶救工作。不過在這裡,還是強烈提醒:如果有進行系統狀態備份工作的,這些的努力是可以避免的。

預計的搶救工作成幾個部分:

  • 重建系統管理共用

  • 重建 SYSVOL 共用

  • 重建預設的群組原則

  • 重設通用目錄伺服器

重建系統管理共用

網域控制站上應該會有一些隱藏(或未隱藏)的系統管理共用位置:

  • DriveLetter$:共用的根目錄磁碟代號共用

  • ADMIN$:遠端管理電腦使用的共用

  • IPC$:具名管道 (Name Pipes) 連線使用

  • NETLOGON:網域控制站所使用的共用

  • SYSVOL:網域控制站的共用,用來處理群組原則與一些管理用途

  • PRINT$:遠端管理印表機的共用

而這些的共用是由登錄檔的設定來控制,惡意程式碼可能透過修改登錄檔值來移除這些系統管理共用。因此要修復這些共用,請開啟登錄檔編輯程式,找到下列的登錄檔鍵值位置:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\AutoShareServer

設定鍵值為 REG_DWORD=1

圖 3:修復系統管理共用的登錄檔位置

圖 3:修復系統管理共用的登錄檔位置

接著重新啟動 Server Service。如此即可修復系統管理共用。

重建 SYSVOL 共用目錄

SYSVOL 共用目錄是網域控制站非常重要的共用目錄,GPO 的設定值儲存在這個目錄底下,然後透過 File Replication Service(FRS) 複製 GPO 設定到其他的網域控制站。要重建 SYSVOL 共用目錄可以透過 KB315457 這份文件的步驟,透過登錄檔的修改設定,並重新啟動 NTFRS 服務即可重建 SYSVOL。

重建預設的群組原則

AD 網域建立,網域中會有兩個預設的 GPO 來控制整個網域與網域控制站的安全控管設定值。我們會建議請不要任意更動這兩個預設 GPO,以免 AD 的運作出現奇怪的問題。因此,當這兩個預設的 GPO 出現問題,可以透過系統 c:\windows\repair 目錄下的 DCGPOFIX.exe 工具程式來進行修復工作。這個工具可將預設網域原則和預設網域控制站原則還原到它們安裝後的原始狀態。工具程式的使用可以直接參考 Windows Server 2003 TechCenter 的文件。

我的經驗,透過 DCGPOFIX 來修復預設 GPO 之後,可能還需要手動將預設 GPO 連結到正確位置才行 (網域與 Domain Controllers 組織單位)。

當然如果要手動慢慢重新建立這兩個 GPO 也是可以,KB555647 可以成為非常好的指引。

重設通用目錄伺服器

最後有關通用目錄伺服器 (GC Server),它的功能眾多,而其很重要的功能就在於萬用群組 (Universal Group) 的成員關係維護。因此相信大家都很清楚:當無法連結使用通用目錄伺服器時,一般使用者的帳戶資訊無法確認萬用群組的情形,因此使用者將無法登入網域。

我在重建好網域控制站之後,最後用一般使用者帳戶測試登入才發現還是無法登入,因此透過 Active Directory 站台與服務直接指定通用伺服器即解決問題。

圖 4:通用目錄伺服器的設定

圖 4:通用目錄伺服器的設定

總結

這個案例花了我不少努力來進行處理,因為花了很多時間去找出 "到底哪些設定" 出問題了!其實,如果平時我們有正常對伺服器的設定與資料進行備份,並且確實進行確認動作,這樣的災難發生很可能只要花半個小時即可解決,而且是客戶自行處理即可。所以請大家一定要正確且規律地進行平日的系統維護哦。

顯示: