第三章 - 使用 Windows 2000 群組原則管理安全性

本頁索引

使用群組原則的重要性
測試環境
檢查您的網域環境
原則設計與實作
保護群組原則設定的安全
群組原則疑難排解
摘要

  決定好您環境的風險層級及建立了整體安全性原則之後,即可開始替環境加上保全措施。在以 Windows 2000 為基礎的環境中,通常都透過「群組原則」來達成。

  本章將教您如何使用安全性範本設定「群組原則物件」(GPO,Group Policy Object),以定義 Windows 2000 環境的安全性設定,同時也將討論支援使用這些 GPO 的簡單組織單位 (OU) 結構。

警告:在生產環境中實作本章的安全性範本之前,必須先在實驗室中進行完整的測試,確保套用後伺服器仍能正常運作。

使用群組原則的重要性

  安全性原則的目標,是定義您環境中用來設定及管理安全性的程序。「Windows 2000 群組原則」有助於實作針對您 Active Directory 網域中所有工作站及伺服器所制定的安全性原則中的技術建議。您可以同時使用「群組原則」及 OU 結構,為某些伺服器結構定義出特定的安全設定。

  使用「群組原則」實作安全性設定可確保原則的變更能夠套用到使用該原則的所有伺服器上,新伺服器也會自動得到這些新設定。

如何套用群組原則

  要安全有效地使用「群組原則」,必須先了解它的套用方式。一個使用者或電腦物件可受數個 GPO 所控制。這些 GPO 循序套用,其中的設定一直累積,除非設定之間有衝突,否則,後面套用的原則預設會覆寫先前的原則。

  第一個套用的原則是本機 GPO。所有執行 Windows 2000 的電腦都有存放一個本機 GPO。預設只會設定位於「安全性設定」下的節點。在本機 GPO 命名空間的其他部份的設定不是啟用就是停用。本機 GPO 儲存在每部伺服器的 %systemroot%\System32\GroupPolicy 資料夾內。

  套用過本機 GPO 之後,接著循序套用站台、網域、父 OU,最後是子 OU 的 GPO。下圖顯示了各個原則的套用方式:

圖 3.1 GPO 應用程式階層架構

  若每一層所定義的 GPO 不止一個,則由系統管理員指定其套用順序。

  使用者或電腦將套用「群組原則」中定義的設定,條件為:a) 其容器已套用「群組原則」,b) 它們出現在 GPO 的「判別存取控制清單」(DACL,Discretionary Access Control List) 中,且至少具有「套用群組原則」權限。

注意事項:Authenticated Users 這個內建群組預設擁有「套用群組原則」使用權限。這個群組包含了所有網域使用者和電腦。

確定群組原則已套用

  「群組原則」設定有一部份位於 Active Directory 中。這代表不會立即套用「群組原則」的變更。網域控制站首先必須將「群組原則」的變更複寫到其他網域控制站。這個動作在一個網站中大約要花費 15 分鐘,複寫至其他網站則需要更久的時間。複寫完這些變更之後,還要再過一段時間 (網域控制站需要 5 分鐘,其他電腦則大約需要 90 分鐘加減 30 分鐘) 才會在目的電腦上更新此原則。

  必要時您可以強制這些動作立即執行。

強制網域控制站複寫

  1. 開啟 [Active Directory 站台和服務],展開 [站台],展開 <站台名稱>,然後展開 [伺服器]。
  2. 展開 <DC 名稱 1> 及 <DC 名稱 2>,在每個伺服器中選取 [NTDS 設定]。
  3. 在右方窗格中,以滑鼠右鍵按一下連線物件名稱,然後選取 [立即複寫]。如此即可強制兩個網域控制站立即複寫。
  4. 對每個網域控制站重複執行步驟 2 和 3。

在伺服器上以手動方式更新原則

  • 在伺服器的命令提示下鍵入 Secedit /refreshpolicy machine_policy /enforce。這個命令要求伺服器檢查 Active Directory,看其中是否有更新的原則,如果有的話立即下載。

驗證有效的原則設定

  1. 啟動 [本機安全性原則]。
  2. 在 [安全性設定] 下按一下 [本機原則],然後按一下 [安全性選項]。
  3. 在右方窗格中檢視 [有效的設定] 欄位,以確認是否套用正確的安全性設定。

注意事項:在使用「群組原則」套用安全性設定之前,必須先對其屬性及互動有深入的了解。《Windows 2000 Group Policy》(Windows 2000 群組原則) 這份 Microsoft 白皮書中,對部署群組原則的方式有詳細的說明。詳細資訊請參閱本章最後的〈其他資訊〉一節。

群組原則結構

「群組原則」設定儲存在兩個地方:

  • GPO – 位於 Active Directory 內
  • 安全性範本檔案 – 位於本機檔案系統內

     對 GPO 所作的變更會直接儲存在 Active Directory 中,而安全性範本檔所作的變更則需在匯回 Active Directory 的 GPO 之後才會套用。

注意事項:本操作指南提供了可用來修改您 GPO 的範本。若您直接修改 GPO,它就無法與範本檔同步。因此建議您採用修改範本檔然後再匯回 GPO 的方式。

Windows 2000 附有許多安全性範本。在安全性較低的環境中,您可套用以下範本。

  • Basicwk.inf – 適用於 Windows 2000 Professional
  • Basicsv.inf – 適用於 Windows 2000 Server
  • Basicdc.inf – 適用於以 Windows 2000 為基礎的網域控制站

若要在以 Windows 2000 為基礎的電腦上實作較高的安全性,則有其他範本可供選擇。這些範本提供了比基本範本還多的安全性設定:

  • Securedc.inf 和 Hisecdc.inf – 適用於網域控制站
  • Securews.inf 和 Hisecws.inf – 適用於成員伺服器與工作站

  這些範本稱為累加範本,因為您必須先套用基本範本,然後再加入累加範本。本指南以 Hisecdc.inf 和 Hisecws.inf 為基礎,建立了新的安全性範本。其目的是要建立一個極為嚴格的環境,您可以選擇性地開啟它來獲得需要的功能,且仍能將安全性列為優先的考量。

注意事項:Windows 2000 預設安全性範本儲存在 %SystemRoot%\Security\Templates 資料夾的 .inf 檔案中。

安全性範本格式

  範本檔採用文字檔格式。您可以使用 MMC 嵌入式管理單元安全性範本 (Security Template),或是「記事本」等文字編輯器變更範本檔的內容。下表說明原則區段與範本檔案區段的對應關係。

表 3.1:與群組原則設定對應的安全性範本區段

原則區段 範本區段
帳戶原則 [System Access]
稽核原則 [System Log]
[Security Log]
[Application Log]
使用者權利 [Privilege Rights]
安全性選項 [Registry Values]
事件記錄檔 [Event Audit]
受限群組 [Group Membership]
系統服務 [Service General Setting]
登錄 [Registry Keys]
檔案系統 [File Security]
  安全性範本檔的某些區段 (如 \[File Security\] 及 \[Registry Keys\]) 含有特定的存取控制清單 (ACL)。這些 ACL 是以「安全性描述元定義語言」(SDDL,Security Descriptor Definition Language) 定義的文字字串。MSDN 上有關於編輯安全性範本及 SDDL 的詳細資訊。如需詳細資訊,請參閱本章最後的〈其他資訊〉一節。 ### 測試環境   在對生產環境執行任何變更之前,必須先在測試環境中先存取對 IT 系統的安全性所做的變更。測試環境應儘量模仿真實的生產環境。最低限度也要含有數部網域控制站及生產環境中所有的成員伺服器角色。   測試的目的在於確定環境在變更之後仍可正常運作,而且重要的是要能夠如預期般提升安全性層級。您必須詳細驗證所有變更,並對測試環境執行弱點評估。 **注意事項:替公司執行弱點評估的人員必須具備寫入權限。** ### 檢查您的網域環境   在生產環境中實作「群組原則」以前,請先確定網域環境是否穩定,以及運作是否正常。Active Directory 中必須驗證的主要部份包括 DNS 伺服器、網域控制站複寫,以及時間同步等等。您也必須使用一個測試環境來協助確定生產環境是否穩定。 **驗證 DNS 設定**   DNS 的名稱解析是伺服器與網域控制站能否正常運作的最重要因素。若某個網域實作了數個 DNS 伺服器,那麼每個 DNS 伺服器都必須經過測試。您必須執行以下測試: 在網域控制站上: - 使用詳細 (verbose) 選項執行 dcdiag /v 與 netdiag /v,以測試每個網域控制站上的 DNS,並檢查輸出中是否有任何錯誤。DCDIAG 和 NETDIAG 可以在 Windows 2000 安裝光碟的 \[Support Tools\] 目錄下找到。 - 停止 Net Logon 服務再重新啟動,然後檢查「事件記錄檔」中有沒有任何錯誤。Net Logon 服務會動態地將服務記錄登錄到該網域控制站的 DNS 中,如果無法順利登錄 DNS 記錄,則會產生錯誤訊息。這些服務記錄可以在 %SystemRoot%\\System32\\Config 目錄的 netlogon.dns 檔案中找到。 - 在成員伺服器上使用 nslookup 或執行 netdiag /v 來驗證 DNS 是否可正常作。 **網域控制站複寫** 在實作「群組原則」之前很重要的一點是數部網域控制站之間的複寫必須正常。如果複寫不順利,就無法將「群組原則」的變更複寫到所有網域控制站。如此一來,在尋找網域控制站的「群組原則」變更的伺服器之間,就會出現不一致的情形。若伺服器指向已執行變更的網域控制站,將會更新伺服器;反之,若伺服器指向仍在等候「群組原則」複寫的網域控制站,就不會更新伺服器。 **使用 Repadmin 強制及驗證複寫**   Repadmin 是 Windows 2000 光碟的 \[Support\] 目錄下所附的一個命令列工具。它可以來判斷目的伺服器的目錄複寫協力電腦,然後送出命令,將來源伺服器與目的伺服器同步化。這個動作是使用來源伺服器的物件通用唯一識別碼 (GUID) 來達成的。 **使用 repadmin 強制兩部網域控制站之間的複寫** 1. 在網域控制站的命令提示下鍵入: repadmin /showreps <目的伺服器名稱> 2. 在輸出的 \[Inbound Neighbors\] 區段中,找出需要同步化的目錄磁碟分割,以及要與目的伺服器同步化的來源伺服器。記錄來源伺服器的物件 GUID 值。 3. 輸入以下命令以初始複寫: repadmin /sync <directory\_partition\_DN> <destination\_server\_name> <source\_server\_objectGuid> **注意事項:一旦您取得每部網域控制站的物件 GUID 之後,便能建立一個批次指令碼,使用 repadmin 工具來初始伺服器之間的複寫,並提供複寫是否成功的狀態訊息。** **集中管理安全性範本**   用在生產環境中的安全性範本,請務必存放在安全的地方,只有負責實作「群組原則」的系統管理員才能存取。安全性範本預設存放在每部網域控制站的 %SystemRoot%\\security\\templates 資料夾內。您無法跨網域控制站執行這個資料夾的複寫。因此,必須選擇一個網域控制站來存放安全性範本的主要複本,以免出現範本的版本控制問題。 **時間設定**   系統時間必須精確,且所有伺服器均使用相同的時間來源,這一點相當重要。Windows 2000 W32Time 服務提供在 Active Directory 網域中執行的 Windows 2000 電腦時間同步服務。W32Time 服務可確保以 Windows 2000 為基礎的用戶端的時鐘與網域中各個網域控制站保持同步。這一點是 Kerberos 驗證的必要項,此外,它對分析事件記錄檔也有幫助。 W32Time 服務使用「簡單網路時間通訊協定」(SNTP,Simple Network Time Protocol) 來同步化時鐘,如 RFC 1769 所述。在 Windows 2000 樹系中,時間同步化的方式如下: - 樹系根網域中的網域主控制站 (PDC) 模擬器操作主機是公司的官方時間來源。 - 樹系中其他網域的所有 PDC 操作主機在選擇要用來同步化時間的 PDC 模擬器時,均遵循網域的階層架構。 - 網域中所有網域控制站均與其網域中作為入埠時間協力電腦的 PDC 模擬器操作主機進行同步化。 - 所有成員伺服器與用戶端桌上型電腦均使用驗證網域控制站作為其入埠時間協力電腦。 要確保時間正確,樹系根網域中的 PDC 模擬器必須與外部 SNTP 時間伺服器同步化。若要設定此動作,請執行以下的 net time 命令,其中 <server\_list> 是您的伺服器清單:net time /setsntp:<server\_list> **注意事項:若您樹系根網域中的 PDC 模擬器位於防火牆後面,您必須開啟防火牆上的 UDP 連接埠 123,以允許 PDC 模擬器連線到一個以 Internet 為基礎的 SNTP 時間伺服器。**    若您的網路使用較舊的 Windows 作業系統,則在這些電腦上,可以在登入指令碼中使用以下命令進行時鐘同步化,其中 <timecomputer> 是網路上的網域控制站: net time \\\\<timecomputer> /set /yes **注意事項:使用 Windows 以外作業系統的電腦,也必須將其時鐘與外部時間來源同步化,讓登錄的事件可依時間分析。詳細資訊請參閱「Microsoft Knowledge Base」(Microsoft 知識庫) 文件 Q216734《How to Configure an Authoritative Time Server in Windows》(如何在 Windows 中設定官方時間伺服器)。** ### 原則設計與實作 要有效率地使用「群組原則」,必須小心地決定如何套用這些原則。要簡化套用及檢查「群組原則」安全性設定的程序,建議您將安全性設定套用在兩個層級上: - 網域層級。處理一般常見的安全需求,例如所有伺服器均須強制執行的帳戶原則及稽核原則。 - OU 層級。處理並非網路上所有伺服器均通用的特定伺服器安全需求。例如,基礎結構伺服器的安全需求便與執行 IIS 的伺服器不同。 影響安全性的「群組原則」設定可分為幾個區段。 表 3.2:群組原則的區段及其用途 | 原則區段 | 說明 | |-------------------------|--------------------------------------| | 帳戶原則\\密碼原則 | 設定的密碼期限、長度及複雜度 | | 帳戶原則\\帳戶鎖定原則 | 設定的鎖定期限、臨界值和重設計數器 | | 帳戶原則\\Kerberos 原則 | 設定的票證存留時間 | | 本機原則\\稽核原則 | 啟用/停用記錄特定事件 | | 本機原則\\使用者權利 | 定義本機登入、從網路存取等的權限 | | 本機原則\\安全性選項 | 修改與安全性相關的特定登錄值 | | 事件記錄檔 | 啟用成功和失敗監視 | | 受限群組 | 系統管理員可以控制誰屬於某個特定群組 | | 系統服務 | 控制每個服務的啟動模式 | | 登錄 | 設定登錄機碼的使用權限 | | 檔案系統 | 設定資料夾、子資料夾及檔案的使用權限 |   所有電腦都有預先定義的本機原則。Active Directory 網域建立之初,即同時建立了預設網域及網域控制站原則。在修改任何預設原則之前,必須先將其中所含的設定記錄下來,一旦發生問題,才能迅速地回復先前的狀態。 **伺服器角色**   本指南中定義了許多伺服器角色,並建立了安全性範本來增進這些角色的安全性。 表 3.3:Windows 2000 伺服器角色 | 伺服器角色 | 說明 | 安全性範本 | |---------------------------------|-------------------------------------------------------------------------------------------------|------------------------------------------------| | Windows 2000 網域控制站 | Active Directory 網域控制站 | BaselineDC.inf | | Windows 2000 應用程式伺服器 | 鎖定的成員伺服器,其上可安裝如 Exchange 2000 等服務。若要使服務能正確運作,安全性必須放鬆一些。 | Baseline.inf | | Windows 2000 檔案及印表機伺服器 | 鎖定的檔案及印表機伺服器。 | Baseline.inf 及 File and Print Incremental.inf | | Windows 2000 基本架構伺服器 | 鎖定的 DNS、Windows Internet 名稱服務 (WINS) 以及 DHCP 伺服器。 | Baseline.inf 及 Infrastructure Incremental.inf | | Windows 2000 IIS 伺服器 | 鎖定的 IIS 伺服器。 | Baseline.inf 及 IIS Incremental.inf |   這些角色的安全需求各不相同。每個角色適當的安全性設定在第 4 章〈依據角色保障伺服器的安全〉將有詳細的討論。 **注意事項:本指南假設伺服器均執行特定的預先定義角色。如果您伺服器的角色與此處不符,或屬於多用途伺服器,請使用此處所定義的設定作為指引,建立自己的安全性範本。但請牢記,伺服器所執行的功能越多,可能遭受攻擊的安全弱點也相對增多。** **支援伺服器角色的 Active Directory 結構**   如先前所提到的,套用「群組原則」的方式有很多,無論是使用多重 GPO 或者套用在階層架構中的各種層級。本指南定義了許多可用來保障各種伺服器角色安全的「群組原則」設定。您必須確定您的 Active Directory 結構允許套用這些設定。   為了協助您保護以 Windows 2000 為基礎環境的安全,我們預先定義了一些安全性範本,讓您匯入 GPO 內。但是,若想直接使用這些範本,必須先確定是否有適當的 Active Directory 結構。本指南所定義的 GPO 適用於下圖所示的 OU 結構。 ![](images/Dd548240.ch03-2(zh-tw,TechNet.10).gif) 圖 3.2 已定義的 GPO 適用的 OU 結構 **注意事項:此處的網域結構並不重要,因為網域及 OU 群組原則只套用於它們被定義的網域上。站台結構同樣也不重要,因為本書並未在站台層級定義 GPO。** 建立 OU 結構 1. 啟動 \[Active Directory使用者和電腦\]。 2. 以滑鼠右鍵按一下網域名稱,選取 \[新增\],再選取 \[組織單位\]。 3. 鍵入 Member Servers,然後按一下 \[確定\]。 4. 以滑鼠右鍵按一下 \[成員伺服器\],選取 \[新增\],再選取 \[組織單位\]。 5. 鍵入 Application Servers,然後按一下 \[確定\]。 6. 重複執行步驟 5 和 6,分別設定 \[檔案及印表機伺服器\]、\[IIS 伺服器\] 和 \[基礎結構伺服器\]。    OU 結構值得我們深入探究。 **網域層級原則**   Windows 2000 網域建置之後,便會建立一個預設網域原則。對於要套用到整個網域的安全性設定,您可以利用以下兩種方式達成: - 另外建立一個原則,將它連結到預設原則之上 - 修改現有的預設原則   修改現有的原則通常比較簡單,但建立額外網域原則的好處,是這個額外原則若有問題可以停用,讓預設網域原則回復控制。   請記住,網域通常含有用戶端電腦和使用者以及伺服器。所以,如果您想鎖定伺服器,那麼在網域層級定義特定設定通常是不太實際。較實際的做法是將您的伺服器安全性設定限制為必須在網域層級進行設定。   在本操作指南中,我們未在網域層級定義特定的設定,因為許多設定 (如密碼長度) 會隨著公司整體安全性原則而改變。但是,我們仍舊提出一些一般性的建議,請參閱第 4 章〈依據角色保障伺服器的安全〉。 **注意事項:密碼及帳戶原則只有在網域層級設定 (代表您只能在一個網域中設定一個密碼及帳戶原則) 時,才會影響到網域帳戶。若這些原則設定在 OU 層級或其他地方,只會影響到本機帳戶。如需詳細資訊,請參閱「Microsoft Knowledge Base」(Microsoft 知識庫) 文件 Q259576〈Group Policy Application Rules for Domain Controllers〉(網域控制站的群組原則套用原則)。** **成員伺服器 OU**   您為成員伺服器所定義的許多安全性設定,其套用範圍都必須涵蓋每個成員伺服器角色。為了簡化這個程序,我們建立了一個名為 Baseline.inf 的基礎安全性範本,您可以將它匯入 GPO 並套用到成員伺服器 OU 上。這些設定會同時套用到成員伺服器 OU 及任何子系 OU。 **網域控制站 OU**   Windows 2000 本身就附有一個網域控制站 OU。當某部伺服器成為網域控制站時,它會自動被置於此處,請勿將它移除,以免使用者登入及存取時發生問題。 本指南提供您一個名為 BaselineDC.inf 的安全性範本,您可以將它匯入 GPO 並套用到成員伺服器 OU 上。您可以選擇將它套用到預設網域控制站 GPO 以外的地方,或者只修改預設網域控制站 GPO 中的設定。 **個別伺服器角色 OU**   個別伺服器角色是指成員伺服器 OU 的子系 OU。這表示這些伺服器預設會採用在您成員伺服器基礎原則中定義的設定。   若使用基礎原則來保護成員伺服器的安全,就必須作依照個別的伺服器角色進行變更以套用到個別的伺服器角色。您可以利用指派 GPO 給每一個伺服器角色 OU 的方式達成這個目的。   本書提供許多安全性範本,您可以將它匯入 GPO 並套用到每一個伺服器角色 OU 上。在第 4 章〈依據角色保障伺服器的安全〉中,對每一種角色都有詳細的討論。 **匯入安全性範本**   下列程序可將本書所附的安全性範本匯入本章所建議的 OU 結構。在網域控制站上實作下列程序之前,您必須先將本指南所附的 SecurityOps.exe 檔案內容解壓縮。 **警告:本指南中安全性範本的設計,目的在增進您環境的安全性。安裝本指南所附的範本之後,您的環境可能會喪失一些功能。其中包括具有重要任務的應用程式可能無法執行。因此,在將這些範本部署到生產環境之前,請務必先經過完善的測試,因應您環境的需要作適當的修改。在套用新的安全性設定之前,請先替所有網域控制站及伺服器進行備份。確定備份中包含系統狀態,因為這是登錄資料存放之處,而且在網域控制站中,系統狀態內還包含 Active Directory 中的所有物件。** **注意事項:在繼續執行之前,若您使用 Windows 2000 Service Pack 2,必須套用「Microsoft Knowledge Base」(Microsoft 知識庫) 文件 Q295444, you will need to apply the hot fix discussed in Knowledge Base article Q295444〈SCE Cannot Alter a Service's SACL Entry in the Registry〉(SCE 無法變更登錄中服務的 SACL 項目)。若未套用這個修補程式,「群組原則」範本便無法停用任何服務。** **匯入網域控制站基礎原則** 1. 在 \[Active Directory 使用者及電腦\] 中以滑鼠右鍵按一下 \[網域控制站\],然後選取 \[內容\]。 2. 在 \[群組原則\] 索引標籤上按一下 \[新增\],加入一個新的「群組原則」物件。 3. 鍵入 BaselineDC Policy,然後按 Enter。 4. 以滑鼠右鍵按一下 \[BaselineDC 原則\],然後選取 \[不可強制覆蓋\]。 **注意事項:這是必要的動作,因為預設網域控制站原則將所有稽核原則設定值設定為 \[無稽核\],但帳戶管理例外。由於預設網域控制站原則的優先權較高,因此 \[無稽核\] 設定會成為有效的設定。** 5. 按一下 \[編輯\]。 6. 展開 \[Windows 設定\],以滑鼠右鍵按一下 \[安全性設定\],然後選取 \[匯入原則\]。 **注意事項:若功能表上未出現 \[匯入原則\],請關閉 \[群組原則\] 視窗,並重複步驟 4 和 5。** 7. 在 \[從以下匯入原則\] 對話方塊中巡覽至 C:\\SecurityOps\\Templates,然後按兩下 BaselineDC.inf。 8. 關閉 \[群組原則\],然後按一下 \[關閉\]。 9. 在網域控制站之間強制複寫,讓所有網域控制站都具有此原則。 10. 在「事件記錄檔」中驗證原則是否已順利下載,且伺服器可與網域中其他網域控制站通訊。 11. 逐一重新啟動每一部網域控制站,以確保它可以順利重新開機。 **匯入成員伺服器原則** 1. 在 \[Active Directory 使用者及電腦\] 中,以滑鼠右鍵按一下 \[成員伺服器\],然後選取 \[內容\]。 2. 在 \[群組原則\] 索引標籤上按一下 \[新增\],加入一個新的「群組原則」物件。 3. 鍵入 Baseline Policy,然後按 Enter。 4. 按一下 \[編輯\]。 5. 展開 \[Windows 設定\],以滑鼠右鍵按一下 \[安全性設定\],然後選取 \[匯入原則\]。 **注意事項:若功能表上未出現 \[匯入原則\],請關閉 \[群組原則\] 視窗,並重複步驟 4 和 5。** 6. 在 \[從以下匯入原則\] 對話方塊中巡覽至 C:\\SecurityOps\\Templates,然後按兩下 BaselineDC.inf。 7. 關閉 \[群組原則\],然後按一下 \[關閉\]。 8. 使用下列 OU 和安全性範本檔,重複步驟 1 到 7: | OU | 安全性範本 | |------------------|--------------------------------| | 檔案及列印伺服器 | File and Print Incremental.inf | | IIS 伺服器 | IIS Incremental.inf | | 基礎結構伺服器 | Infrastructure Incremental.inf | 9. 網域控制站之間強制複寫,讓所有網域控制站都具有此原則。 10. 每一個角色移一部伺服器到適當的 OU 中,然後使用 secedit 命令在伺服器下載原則。 11. 在「事件記錄檔」中驗證原則是否已順利下載,且伺服器可與網域中其他網域控制站通訊。成功測試過 OU 中的一部伺服器之後,請移動 OU 中的其餘伺服器,然後套用安全性設定。 12. 逐一重新啟動每一部網域控制站,以確保它可以順利重新開機。 ### 保護群組原則設定的安全   若使用「群組原則」套用安全性設定,請務必確保這些設定本身的安全。若能確保 GPO 和 OU 及其套用的網域控制站均有正確的設定,安全性設定也會相對地比較安全。本指南所附的範本不會修改預設的 Active Directory 權限,因此您必須自行修改。   在較高階容器中所定義的「群組原則」設定可能會被低階容器中的設定所覆寫。使用 GPO 的 \[不可強制覆蓋\] 選項可防止較高階容器被覆寫。 **注意事項:成員伺服器基礎原則中請勿設定 \[不可強制覆蓋\]。設定此選項將導致伺服器角色原則無法啟用適當的服務和設定。**      除了在 OU 層級分隔伺服器角色之外,您還須建立個別的對應系統管理員角色,指派給它們對應 OU 的系統管理權限。如此一來,當駭客意圖取得 IIS 伺服器系統管理權限時,他們亦無法存取基礎結構等伺服器。   只有網域層級的系統管理員及以上才能擁有變更 OU 成員關係的權限。若某個 OU 層級的系統管理員可從該 OU 移除伺服器,他們就能變更這些伺服器上的安全性設定。   將原則套用到伺服器之後,您的工作仍未結束。您還須定期檢查伺服器,確定以下各點: - 套用到伺服器的原則是正確的 - 系統管理員未變更原則中的設定及降低您伺服器的安全性層級 - 原則更新或變更是否已套用到所有伺服器   驗證 GPO 中的設定已如預期般套用到您的伺服器之後,您會對伺服器的安全性更有信心。有許多方式可以檢查伺服器上的群組原則,以驗證原則的設定是否正確。 事件記錄檔中的事件   若原則順利下載,便會出現內含以下資訊的「事件記錄檔」事件: 類型:資訊 來源 ID:SceCli 事件 ID: 1704 訊息字串:群組原則物件中的安全性原則已經套用成功。   原則套用之後幾分鐘,才會出現這則訊息。若未收到此「事件記錄檔」訊息,您必須執行 secedit /refreshpolicy machine\_policy /enforce 然後重新啟動伺服器,強制原則下載。重新啟動之後請再檢查一次事件記錄檔,確定原則是否順利下載。 **注意事項:若在 GPO 中服務設為 \[停用\],且伺服器已重新啟動過一次,那麼通常在 GPO 定義的設定生效之前,服務會重新啟動。如果伺服器再重新啟動第二次,即可確定設為 \[停用\] 的服務不會啟動了。** **使用本機安全性原則 MMC 來驗證原則** 另一種驗證原則是否順利套用的方法,是檢查本機伺服器上有效的原則設定。 驗證有效的原則設定 1. 啟動 \[本機安全性原則\] MMC。 2. 在 \[安全性設定\] 下按一下 \[本機原則\],然後再按一下 \[安全性選項\]。 3. 在右方窗格中檢視 \[有效的設定\] 欄位。 \[有效的設定\] 欄位應該會顯示選定伺服器的角色在範本中的設定。 **使用命令列工具驗證原則** 有兩個命令列工具可以驗證原則設定。 **Secedit**   這個工具是 Windows 2000 所附,可用來顯示範本檔和電腦的原則之間的差異。若要將範本與電腦現行原則作比較,請使用以下命令列: secedit /analyze /db secedit.sdb /cfg <template name> **注意事項:若使用本書所附範本並執行上述命令,可能會出現存取遭拒的錯誤。這是預期中的現象,因為套用了其他安全性的關係。但它仍會產生內含分析結果的記錄檔。** **Gpresult**   《Windows 2000 Server Resource Kit》(Microsoft Press, ISBN:1-57231-805-8) 附有一個名為 GPResult 的工具,可以顯示伺服器目前所套用的原則。如需某部伺服器套用原則的清單,請使用以下命令列: Gpresult /c **注意事項:Gpresult 在本章稍後的〈群組原則疑難排解〉中有更詳細的討論。** **稽核群組原則** 要稽核群組原則的變更是有可能的。稽核原則變更可以追蹤變更或試圖變更原則設定的人員。在基礎安全性範本中,稽核原則變更的成功或失敗是設定為啟動。 群組原則疑難排解 ### 群組原則疑難排解 即使是已自動套用「群組原則」,但在伺服器上產生的結果可能不如預期,這主要是由於可以在數個層級上設定「群組原則」。本節將提供一些指引,供您進行「群組原則」的疑難排解。 **注意事項:如果您的問題在本章未討論到,請參閱「Microsoft Knowledge Base」(Microsoft 知識庫)。「Microsoft Knowledge Base」(Microsoft 知識庫) 中與群組原則相關的文件列於本章最後〈其他資訊〉一節以及《Troubleshooting Group Policy》(群組原則疑難排解) 白皮書中。** **Resource Kit 工具** GPResult 和 GpoTool 是 Windows 2000 Server Resource Kit 的兩項工具,可協助您解決「群組原則」的問題。 **注意事項:這些工具也可從線上取得,詳情請參閱本章最後的〈其他資訊〉。** **GPResult** 這個工具提供套用到某部電腦的所有 GPO 的清單、這些 GPO 來自哪一個網域控制站,以及最後一次套用這些 GPO 的日期和時間。 在伺服器上執行 GPResult 以確保它具有正確的 GPO 時,請使用 /c 參數,僅顯示電腦設定相關資訊。 GPResult 加上 /c 參數,可以提供如下的一般性資訊: - 作業系統 - 類型 (專業版、伺服器、網域控制站等) - 組建編號及 Service Pack 詳細資訊 - 是否已安裝「終端機服務」 (Terminal Service),若有的話,使用的模式為何 - 電腦資訊 - Active Directory 中的電腦名稱和位置 (適用時) - 網域名稱及類型 (Windows NT 或 Windows 2000) - 站台名稱 GPResult 加上 /c 參數也能提供群組原則的下列資訊: - 對於使用者和電腦而言,此原則最後一次套用的時間,及套用此原則的網域控制站。 - 套用的「群組原則」物件之完整清單及其詳細資訊,包括每個「群組原則」物件物件所含的延伸。 - 套用的登錄設定及其詳細資訊 - 被重新導向的資料夾及其詳細資訊 - 指派的軟體管理資訊詳細資料及發行的應用程式 - 磁碟配額資訊 - IP 安全性設定 - 指令碼 **GpoTool** 這個命令列工具可讓您檢查網域控制站上「群組原則」物件的健康情形,包括以下各項: - **檢查群組原則物件一致性。**此工具讀入強制及選擇性目錄服務內容 (版本、好記的名稱、延伸 GUID 及 Windows 2000系統磁碟區 (SYSVOL) 資料 (Gpt.ini))、比較目錄服務及 SYSVOL 版本編號,並執行其他一致性檢查。若延伸內容含有任何 GUID,則功能性版本必須是 2,使用者/電腦版本必須大於 0。 - **檢查群組原則物件複寫。**它會從每個網域控制站中讀入 GPO 例項加以比較 (選取的「群組原則」容器內容以及群組原則範本的完整遞迴比較)。 - **顯示特定 GPO 的相關資訊。**包括無法透過「群組原則」嵌入式管理單元存取的屬性內容,如功能性版本及延伸 GUID。 - **瀏覽 GPO。**有一個命令列選項可以依據好記名稱或 GUID 來搜尋原則。它同時也支援名稱及 GUID 的部份對應。 - **慣用的網域控制站。**依據預設設定,網域中所有可用的網域控制站均會被使用;它可利用命令列所提供的網域控制站清單來覆寫。 - **提供跨網域支援。**有一個命令列選項可以用來檢查不同網域中的原則。 - **以詳細資訊模式執行。**若所有原則都沒有問題,這個工具會顯示一則驗證資訊;若有錯誤發生,則會印出受損原則的相關資訊。有一個命令列選項會開啟正在被處理的每個原則的詳細資訊模式。 請使用以下命令列來取得「群組原則」的詳細資訊,以及從原則中偵測出的錯誤: GPOTool /gpo:<gpo name> **群組原則事件記錄檔錯誤** 有些「群組原則事件記錄檔」錯誤可指出您環境的某些問題。以下兩個錯誤便會讓「群組原則」無法正確地套用: - 在網域控制站上,警告事件 1202 結合錯物事件 1000。這通常代表某個網域控制站已從網域控制站 OU 移往另一個未連結預設網域控制站 GPO 的 OU 上。 - 當系統管理員試圖開啟某個預設GPO 時,卻傳回下列錯誤: 無法開啟群組原則物件。 您可能沒有適當的權限。 詳細資料:未指定的錯誤 事件記錄檔中出現事件 1000、1001 和 1004。這是因為 registry.pol 檔已損毀。若要改正這項錯誤,請刪除 SYSVOL 底下的 registry.pol 檔案、重新開機,然後在伺服器上執行變更。 ### 摘要 在以 Windows 2000 為基礎的環境中若要提供一致的設定,「Windows 2000 群組原則」是一個極有用的方式。但要部署得有效率,您必須知道 GPO 套用到何處、所有的伺服器是否均收到適當的設定,以及您是否已在 GPO 上定義了適當的安全性。 **其他資訊** - Microsoft 群組原則白皮書: [https://www.microsoft.com/windows2000/techinfo/howitworks/ management/grouppolwp.asp](https://www.microsoft.com/windows2000/techinfo/howitworks/management/grouppolwp.asp) - Microsoft 群組原則疑難排解白皮書: [https://www.microsoft.com/Windows2000/techinfo/howitworks/ management/gptshoot.asp](https://www.microsoft.com/windows2000/techinfo/howitworks/management/gptshoot.asp) - 「Knowledge Base」(知識庫) 中群組原則疑難排解的相關文件: [https://support.microsoft.com/default.aspx?scid=kb;EN-US;Q250842](https://support.microsoft.com/default.aspx?scid=kb;en-us;q250842) [https://support.microsoft.com/default.aspx?scid=kb;EN-US;Q216359](https://support.microsoft.com/default.aspx?scid=kb;en-us;q216359) - 安全性描述元定義語言 (Security Descriptor Definition Language):