安全性監控Windows 網域密碼原則

Derek Melber

如果您是 Windows 網域的系統管理員,想必對網域使用者帳戶中密碼原則的相關限制不陌生。然而,隨著 Windows Server 2008 的推出,有些限制也將跟著消失。讓我們來看看這個新作業系統如何解決這個問題 — 無力實作多項密碼原則。

無論您執行目前哪一種版本的 Windows® 網域 (Windows NT®、Windows 2000 Active Directory® 或 Windows Server® 2003 Active Directory),都受限於 一個網域只能有一個密碼原則的規定。實際上,受到侷限的不僅是密碼原則,而是 [帳戶原則] 底下更廣泛的設定範圍。[圖 1] 顯示了這些原則和設定。

Figure 1 Account policies

密碼原則
強制密碼歷程記錄
密碼最長使用期限
密碼最短使用期限
最小密碼長度
密碼必須符合複雜度需求
使用可還原的加密來存放密碼
帳戶鎖定原則
帳戶鎖定期間
帳戶鎖定閾值
重設帳戶鎖定計數器的時間
Kerberos 原則
強制使用者登入限制
服務票證最長存留期
使用者票證最長存留期
使用者票證更新最長存留期
電腦時鐘同步處理的最大容錯性
 

這些原則設定預設會套用到與網域相關聯的所有網域和使用者帳戶。這是因為群組原則往下繼承到 Active Directory 結構的方式之故。如果要更進一步認識這些原則對網域和本機使用者帳戶所產生的影響,不能不知道這些原則在哪裡設定,以及群組原則的繼承關係如何影響所有不同的使用者帳戶 (請注意,Kerberos 原則設定只會套用到網域使用者帳戶,因為只有網域使用者帳戶會使用 Kerberos 進行驗證。本機使用者帳戶是以 NTLMv2、NTLM 或 LM 進行驗證)。

設定帳戶原則

在 Active Directory 內,群組原則會建立和控制整個網域的帳戶原則。這個動作是在您初次安裝 Active Directory 網域時,以預設的群組原則物件 (GPO) 連結 Active Directory 中的網域節點而達成。這個 GPO 稱為預設網域原則,它在帳戶原則的所有三個區段中皆具有預設設定。[圖 2] 顯示 Windows Server 2003 網域上密碼原則項目初始設定的完整清單。

Figure 2 Default password policies for Windows Server 2003 domain

Figure 2** Default password policies for Windows Server 2003 domain **(按影像可放大)

這個 GPO 中的設定會控制所有網域使用者帳戶以及每部網域電腦的帳戶原則。請記住,所有的網域電腦 (包括桌上型電腦和伺服器) 都有一個本機安全性帳戶管理員 (SAM)。而這個預設 GPO 設定所控制的也正是這個 SAM。不用多說,本機 SAM 也包含各個電腦的本機使用者帳戶。

預設網域原則中的設定,是透過 GPO 的正常繼承關係 (往下繼承到 Active Directory 結構),影響所有的網域電腦。由於這個 GPO 是連結到網域節點,因此網域當中所有的電腦帳戶都將受它左右。

您無法對目前密碼原則進行的動作

Active Directory (在 Windows Server 2003 中) 目前的實作一直都對密碼控制存有許多誤解,儘管經過多年嚴格的測試,而且也沒有證據證明這些誤解有其道理,這種情形依然沒有改善。原則顯然是 (或者應該是) 完全照設計的方式來運作。

話雖如此,許多系統管理員還是相信有可能對同一網域內的使用者採行多項密碼原則。他們認為您可以建立一個 GPO,把它連結到組織單位 (OU)。這個構想是將使用者帳戶移到 OU,讓 GPO 得以左右物件。然後將 GPO 內的密碼長度上限設為 14 個字元,修改帳戶原則以建立更安全的密碼原則。但是基於種種原因,這樣的設定還是無法提供預期的結果。首先,密碼原則設定是以電腦為基礎,而不是以使用者為基礎的原則。只要是以這種概念為主的設定,就無法影響使用者帳戶。其次,要修改網域使用者帳戶的帳戶原則設定,唯一的方法就是在連結到網域的 GPO 內進行。連結到 OU 且設定成要更改帳戶原則設定的 GPO,會修改位於 OU 裡面或是位於連結 OU 之子 OU 裡面的電腦的本機 SAM。

第二個誤解是,在根網域 (Active Directory 樹系的初始網域) 內建立的帳戶原則設定,會往下流向或繼承到樹系中的子網域。這也是錯誤的觀念,根本無法使設定發揮作用。連結到網域和單一網域內各個 OU 的 GPO,並不會影響到其他網域的物件,即使 GPO 所連結的網域是根網域也一樣。要讓 GPO 設定橫跨到不同網域中的物件,唯一的方法就是將 GPO 連結到 Active Directory 站台。

密碼的未來

我們剛剛看到,目前的 Windows 版本是以簡單且直接的方式來處理使用者帳戶密碼。其中包括所有網域帳戶共用一組密碼規則,以及透過連結到 Active Directory 中網域節點的群組原則物件來管理帳戶原則。但是這種方式會隨著 Windows Server 2008 的到來而被掃地出門。

Windows Server 2008 及它所附隨的 Active Directory 基礎結構,是採取不同的方法。過去帳戶原則是置於 GPO 當中,所有的網域使用者帳戶只能設定一個原則,而現在設定則被移入 Active Directory 更深層的部分。另外,帳戶原則也不再以電腦帳戶為基礎,現在您就可以鎖定個別使用者和使用者群組,來控制他們的密碼限制。這對 Windows 系統管理員來說可是全新的概念,畢竟我們長久以來一直都是採用電腦帳戶的帳戶原則。

Windows Server 2008 內的帳戶原則

Windows Server 2008 並不是使用預設網域原則來建立帳戶原則。事實上,您根本不會用到 GPO 來建立網域使用者帳戶的帳戶原則。Windows Server 2008 會將您導往 Active Directory 資料庫裡面進行修改。說得更具體一點,您是使用類似 ADSIEdit 的工具來修改 Active Directory 物件及其相關屬性。

這項改變的原因是,群組原則並不是為了在相同網域內使用多個密碼而設計的。Windows Server 2008 在每個網域實作多個密碼的功能雖然簡潔了當,但是使用起來並不方便。但是只要假以時日,設定這些設定值的介面一定會越來越好用。不過現在您只能乖乖戴上防止 Active Directory 資料庫入侵的安全帽,在系統內採用這項改變吧。

如果您比較喜歡採取不同的方式,也不一定要使用 ADSIEdit 來修改帳戶原則設定。只要可以接通 Active Directory 資料庫,使用 LDAP 編輯工具,或甚至是撰寫指令碼都可以。在 Windows Server 2008 中實作密碼原則所採取的方式,與過去截然不同。使用新功能時,您必須考慮哪些使用者和群組要接受哪些密碼設定。

您不但得考慮密碼長度,也要考慮伴隨密碼原則設定而來的其他限制,包括最短和最長使用期限,以及歷程記錄等等。其他考量事項還包括如何控制使用者鎖定原則設定和 Kerberos 設定。目前的帳戶原則設定與那些在 Windows Server 2008 中 Active Directory 資料庫內設定的帳戶原則設定,是一對一的關係。不過要特別注意的是,既然原則設定現在是 Active Directory 物件和屬性,它們的名稱也跟以前不一樣。

要實作新密碼設定,必須在 [密碼設定] 容器下,建立名為 msDS-PasswordSettings 的密碼設定物件 (PSO),它的 LDAP 路徑是 "cn=Password Settings,cn=System,dc=domainname,dc=com"。請注意,您工作所在網域的網域功能層級必須設定為 Windows Server 2008。在這個新物件下,您要填寫幾項屬性的資訊,如 [圖 3] 所示。

Figure 3 Password attributes in Active Directory

Active Directory 屬性名稱 屬性描述
msDS-PasswordSettingsPrecedence 建立當使用者身為多個採用不同密碼原則之群組的成員時,取得優先權的條件。
msDS-PasswordReversibleEncryptionEnabled 切換是否啟用可還原加密。
msDS-PasswordHistoryLength 決定有多少中途密碼必須是唯一密碼才能重複使用。
msDS-PasswordComplexityEnabled 建立密碼所需的字元數目和類型。
msDS-MinimumPasswordLength 建立密碼的最小長度。
msDS-MinimumPasswordAge 決定使用者必須使用密碼多久的時間才能加以變更。
msDS-MaximumPasswordAge 決定使用者可以使用密碼多久的時間才會要求他變更。
msDS-LockoutThreshold 決定允許密碼嘗試失敗多少次之後再鎖定使用者帳戶。
msDS-LockoutObservationWindow 決定密碼計數器錯誤多少次之後再重設。
msDS-LockoutDuration 決定在密碼嘗試失敗太多次之後要鎖定帳戶多久。
   

如您所見,與帳戶原則設定相關的所有群組原則設定都會複製成屬性。請注意,另外還有一個優先順序設定,這在相同網域內實作多個密碼是不可少的,因為發生衝突是在所難免,所以需要有解決它們的機制。

鎖定帳戶原則設定

對於您所建立的每個物件,都必須填寫所有屬性,以塑造每一個使用者的帳戶原則。您可以使用 msDS-PSOAppliesTo 這個新屬性,來決定哪些物件將接受原則設定組。這是讓您將特定設定導向特定使用者的最佳屬性。這個屬性底下的清單可以是使用者或群組,但是就跟建立存取控制清單一樣,最好採用群組而不是使用者。群組比較穩定、明顯,而且處理起來通常要容易許多。

起身鼓掌

這麼多年來我們一直希望能夠在相同的 Active Directory 網域內使用多個密碼,現在終於美夢成真了。整個網域裡面的每個使用者,將不再受限於相同的密碼安全性層級。比方說,一般使用者可以使用 8 個字元的密碼,而 IT 專家 (可能具備系統管理員權限) 則是更複雜的 14 字元密碼。

進入 Active Directory 資料庫建立或修改帳戶原則設定是需要一點時間習慣,不過幸好新設定所採用的方式與您所熟悉的方式相仿。開始使用 Windows Server 2008 之後,別忘了探索這些新設定,因為它們一定是您要面對的前幾項設定。

Derek Melber是一名獨立的顧問暨培訓講師,身兼 MCSE、CISM、MVP。他教授和宣導 Microsoft 技術,主重 Active Directory、群組原則、安全性和桌面管理。Derek 著有幾本 IT 書籍,包括《Microsoft Windows Group Policy Guide》(Microsoft Press,2005 年)。您可以透過電子郵件與他聯絡:derekm@braincore.net.

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