衆所周之,目錄服務器DC的安全性至關重要,而密碼的保護又是安全性保護中很重要的一環。爲活動目錄制定密碼策略可以減少人爲的和來自網絡***的安全威脅,保證活動目錄的安全。AD管理員應該都知道,在Windows2000/2003上,密碼策略只能指派到域(Site)上,不能單獨應用於活動目錄中的對象。換句話說,密碼策略在域級別起作用,而且一個域只能有一套密碼策略。 統一的密碼策略雖然大大提高了安全性,但是提高了域用戶使用的複雜度。舉個例子來說,企業管理員的帳戶安全性要求很高,需要超強策略,比如密碼需要一定長度、需要每兩週更改管理員密碼而且不能使用上幾次的密碼;但是普通的域用戶並不需要如此高的密碼策略,也不希望經常更改密碼並使用很長的密碼,超強的密碼策略並不適合他們。
爲解決這個問題,在Win2008中引入了多元密碼策略(Fine-Grained Password Policy)的概念。多元密碼策略允許針對不同用戶或全局安全組應用不同的密碼策略,例如:
A.可以爲管理員組指派超強密碼策略,密碼16位以上、兩週過期;
B.爲服務帳號指派中等密碼策略,密碼30天過期,不配置密碼鎖定策略;
C.爲普通域用戶指派密碼90天過期等。
多元密碼策略的誕生,滿足了不同用戶對於安全性的不同要求。多元密碼策略雖然滿足了不同級別用戶對於密碼安全性的要求,但是配置多個密碼策略爲管理員增加了管理複雜度,管理起來也不是很方便,所謂魚和熊掌不可兼得。而我寫這篇文章的初衷就是幫朋友儘快熟悉起這個功能,魚和熊掌,我欲兼得!
部署注意點
多元密碼策略部署要求有以下幾點:
A. 所有域控制器都必須是Windows Server 2008;
B. 域功能級別爲2008 Domain Functional Mode;如下圖1所示:
圖1
C. 客戶端無需任何變更;
D. 如果一個用戶和組有多個密碼設置對象(PSO,可以把PSO理解爲和組策略對象GPO類似,通俗的理解爲就是一條條的密碼策略),那麼優先級最小的PSO將最終生效;
E. 可以使用ADSIEDIT或者LDIFDE或者第三方工具進行管理;
F. 多元密碼策略只能應用於活動目錄中的用戶和全局安全組,而不能應用於活動目錄中的計算機對象、非域內用戶和組織單元OU。
實戰
理論知識囉嗦了一大籮筐了,接下來我將通過實戰方式向大家介紹如何通過ADSIEDIT、LDIFDE以及第三方工具FGPP、Quese公司出品的針對AD的PowerShell來實現、管理多元密碼策略。由於本系列文章涉及到的方法比較多,爲了讓大家在操作的時候有一個清晰的思路,我將主要的操作步驟寫出來:
步驟 1:創建 PSO
步驟 2:將 PSO 應用到用戶和/或全局安全組
步驟 3:管理 PSO
步驟 4:查看用戶或全局安全組的結果 PSO
步驟5:驗證結果
Ⅰ. ADSIEDIT
步驟1:創建PSO
1.
在DC上打開“活動目錄用戶和計算機”,創建一個名爲”TestOU”的OU,然後在該OU裏面建立一個名爲張三的用戶和一個名爲PSOGroup的全局安全組,再把張三加入該組中。如圖2.
圖2
2.
再在DC上輸入adsiedit.msc,按照如圖所示展開至CN=Password Settings Container。如圖3所示。並在上面右擊選擇新建對象,如圖4.
圖3
圖4
3.
(接下來請完全按照圖示來操作)出現新建對象窗口,如圖5,類別只有一個密碼設置,點擊下一步。
圖5
4.
接下來爲PSO取個有意義的名字,便於自己管理。例如我就取“AdminPSO”,如圖6所示。
圖6
5.
接下來修改msDS-PasswordSettingsPrecedence屬性,也就是設置密碼的優先級,儘管此處可以輸入零或者負數,但是要想真正生效的話,此處輸入的數值必須大於零。前面說過,數值越小,優先級越高。我就輸入1,如圖7所示。
圖7
6.
接下來修改msDS-PasswordReversibleEncryptionEnabled屬性,也就是是否啓用用戶帳戶的密碼可還原的加密狀態。可接受輸入的值爲FALSE/TRUE。爲了安全着想(開啓後可以用工具逆向DUMP出用戶的密碼),如果沒有特殊需求,建議設置爲FALSE。如圖8.
圖8
7.
接下來修改msDS-PasswordHistoryLength屬性,也就是設置用戶帳戶的密碼歷史長度。有時候翻譯爲強制密碼歷史。可接收輸入的值爲0到1024。默認是24個。我這裏設置爲3個歷史密碼不能重複。如圖9.
圖9
8.
接下來修改msDS-PasswordComplexityEnabled屬性,也就是是啓用戶帳戶的密碼複雜性要求。複雜性的定義就不囉嗦了。可接受輸入的值爲FALSE/TRUE。爲了安全考慮,建議設置爲TRUE。如圖10
圖10
9.
接下來修改msDS-MinimumPasswordLength屬性,也就是設置用戶帳戶的最短密碼長度。可接收輸入的值爲0到255.我這裏設置最短需滿足16位。如圖11.
圖11
10.
接下來修改msDS-MinimumPasswordAge屬性,也就是設置用戶帳戶密碼的最短使用期限。默認必須是使用1天后才能再次更改密碼。可以接受輸入的格式爲00:00:00:00。這4段分別表示爲多少天、多少小時,多少分,多少秒。這裏只可以輸入1天的整數倍,不要輸入什麼0.5天,1.5天等。如果你輸入00:12:00:00也就是半天,儘管可以繼續下去,但是不會生效。請注意這一點。我這裏輸入可以立即更改密碼,也就是00:00:00:00。如圖12.
圖12
11.
接下來修改msDS-MaximumPasswordAge屬性,也就是設置用戶帳戶的最長密碼期限。默認是42天。和前面那個屬性一樣,可以接受輸入的格式爲持續時間格式。我這裏輸入最長可以使用14天。如圖13.
圖13
12.
接下來修改msDS-LockoutThreshold 屬性,也就是設置用戶帳戶鎖定的鎖定閾值。默認沒有限制。可以接受的輸入範圍是0到65535.我這裏設置爲輸入3次錯誤密碼就自動鎖定。如圖14.
圖14
13.
接下來修改msDS-LockoutObservationWindow屬性,也就是設置用戶帳戶鎖定的觀察窗口時間。這個設置可以有點不太好理解。通俗點解釋就是多長時間復位帳戶鎖定計數器。比如,我設置的是30分鐘內輸入3次就鎖定賬號。那麼一個用戶在30分鐘內輸入錯誤密碼2次後,如果他在接下來的30分鐘內停止繼續嘗試輸入錯誤密碼,那麼半個小時後他又可以繼續輸入3次錯誤密碼了。可以接受輸入的格式爲持續時間格式。我這裏輸入30分鐘後復位。如圖15.
圖15
14.
接下來修改msDS-LockoutDuration屬性,也就是設置鎖定用戶帳戶的鎖定持續時間。可以接受輸入的格式爲持續時間格式。我這裏輸入鎖定30分鐘。如圖16.
圖16
步驟2:將 PSO 應用到用戶和/或全局安全組
1.
接下來不要點擊“完成”,點擊“更多屬性”。如圖17.
圖17
2.
在“選擇一個要查看的屬性”處選擇msDS-PSOAppliesTo ,它用來設置此密碼設置對象PSO所應用到的對象,只能鏈接到用戶或全局安全組的 0 個或多個 DN。我將它連接到之前創建的PSOGroup安全組。如圖18.完全以後點擊“確定”。至此,PSO的創建、鏈接工作至此完成。
圖18
步驟 3:管理 PSO
查看和修改 PSO 設置
1. 打開“Active Directory 用戶和計算機”。在“查看”菜單上,確保選中“高級功能”。
2. 在控制檯樹中,展開Active Directory 用戶和計算機\域節點\System\Password Settings Container
3. 在右側窗格中,右鍵單擊剛纔創建的AdminPSO,然後單擊“屬性”。切換到“屬性編輯器”選項卡。
4. 選擇要查看或編輯其設置的屬性,然後單擊“查看”(對於只讀值)或“編輯”(對於可編輯的值)。
注:如果沒有看到要查看或編輯其設置的屬性,則單擊“篩選器”以自定義在“屬性編輯器”選項卡上顯示的屬性列表。
修改 PSO 優先級
1. 按照上面類似的方法操作,單擊AdminPSO“屬性編輯器”選項卡。
2. 選擇 msDS-PasswordSettingsPrecedence 屬性,然後單擊“編輯”。在“整數”“屬性編輯器”對話框中,爲“PSO 優先級”輸入新值,然後單擊“確定”。如圖19.
圖19
刪除 PSO
1. 按照上面類似的方法操作,找到之前建立的AdminPSO。右擊刪除即可。如圖20.
圖20
2. 注:
a.
刪除 PSO 後,它所表示的密碼策略對於應用該策略的全局安全組的成員將不再有效。
b.
以上針對PSO的管理我是拿活動目錄用戶和計算機管理單元來介紹的,你完全可以使用ADSIEDIT來進行完全一致的管理操作,我這裏就不贅述了。
步驟 4:查看用戶或全局安全組的結果 PSO
使用dsget查看用戶結果PSO
1.
PSO鏈接到用戶或安全組上後,密碼策略是立即生效的。如何來檢驗呢?使用如下命令可以看到用戶目前生效的密碼策略:
dsget user "CN=張三,OU=TestOU,DC=Winos,DC=CN" –effectivepso
返回結果是:
effectivepso
"CN=AdminPSO,CN=PasswordSettingsContainer,CN=System,DC=Winos,DC=cn"
dsget 成功
表明隸屬於PSOGroup安全組的張三目前生效的密碼策略是AdminPSO。如圖21所示。
圖21
2.
注:
a. 如果以上命令沒有返回任何PSO 名稱,則表示“默認域策略”已應用到指定的用戶帳戶。
b. 不能直接對安全組查看生效的密碼策略,只能查看用戶。
c. 不要嘗試對張三用戶通過組策略管理工具GPMC使用組策略建模或者組策略結果嚮導以查看他是否拿到了新密碼策略,也不要嘗試使用張三賬號登錄系統後運行net accounts命令。這些命令、工具都無法查看到張三目前應用的密碼策略。它們均只能查看默認域密碼策略。
使用ADUC管理單元查看用戶結果PSO
1. 打開“Active Directory 用戶和計算機”。右鍵張三用戶,然後單擊“屬性”。
2. 切換到“屬性編輯器”選項卡,然後單擊“篩選器”。
3. 確保選中“顯示屬性”/“可選”複選框和“顯示只讀屬性”/“已構造”複選框。
4. 找到並查看“屬性”列表中的 msDS-ResultantPSO 屬性的值是否爲AdminPSO.
5. 注:如果 msDS-ResultantPSO 屬性的值爲“Null”或“未設置”,則“默認域策略”已應用到所選的用戶帳戶。
步驟5:驗證結果
最簡單的驗證方法就是直接爲張三用戶修改密碼。因爲默認的域密碼策略要求7個字符,而我爲張三定義的密碼策略是要滿足16個字符。所以我在ADUC上將張三的密碼重設爲10位,看看能否成功,成功的話就說明他拿到的還是默認的域策略,而不是我們定義的AdminPSO。如圖22所示,表示AdminPSO策略應用到張三賬號上成功。