如何实现多元密码策略

众所周知,企业资源数据的安全性至关重要,而密码的保护又是安全性保护中很重要的一环。在域环境中,制定严格的密码策略可以减少人为的和来自网络入侵的安全威胁,保证活动目录的安全。只要有活动目录管理经验的IT 管理人员都知道,在Windows2000/2003 上,密码策略只能应用于域级别,不能单独应用于活动目录中的具体对象。换句话说,密码策略在域级别起作用,而且一个域只能有一套密码策略。

统一的密码策略虽然大大提高了安全性,但同时也增加了域用户使用的复杂度。举个例子来说,企业管理员的帐户安全性要求很高,需要超强策略,比如密码需要10 位、每两周更改管理员密码,而且不能使用上4 次的密码;但是普通的域用户并不需要如此高的密码策略,也不希望经常更改密码并使用很长的密码,超强的密码策略对他们来说并不适合。

为解决这个问题,在Win2008 中引入了多元密码策略(Fine-Grained Password Policy)的概念。多元密码策略允许针对不同用户或全局安全组应用不同的密码策略,也就是说多元密码策略是不能针对域级别或OU 级别进行设置。

多元密码策略的诞生,虽然满足了不同用户对于安全性的不同要求,但同时配置多个密码策略为管理员也增加了管理复杂度,对管理员的要求也更高了些。下面我们就以实验方式进行解释在域中如何实现多元密码策略。

实验模拟环境:

假设为了最有效地使用严格的密码和帐户锁定策略功能,公司考虑实施2 个密码策略:

1、具有严格设置的管理员密码策略AdminPSO(例如,密码10 位,要求复杂度,每过 14 天即会过期)

2、设置不太严格的普通用户密码策略,可修改默认的域安全密码策略(例如,密码7 位,不要求复杂度,每过 90 天即会过期)

一、实现多元密码策略的先决条件

1、所有域控制器都必须是Windows Server 2008

2、域功能级别为2008 Domain Functional Mode。

二、创建密码策略对象PSO

1、在DC 上打开“Active Directory 用户和计算机”,创建一个名为“TEST”的OU,然后在该OU 里面建立两个用户分别名为test 和test001,以及一个名为PSOGroup 的全局安全组,再把test 用户加入该组中。Test 用户可表示TEST 组织单位的管理员,具有相同密码安全要求的其他管理员只要加入该PSOGroup组即可,test001 用户可表示普通域用户。

2、在DC 的命令提示符下,输入ADSIEDIT.MSC。

3、打开ADSIEDIT 管理界面,展开到CN=Password Settings Container。并在上面右击选择新建对象。

4、出现新建对象窗口,类别只有一个密码设置,点击下一步。

5、为PSO 取个有意义的名字,便于管理。这里取名为“AdminPSO”。

6、接下来修改msDS-PasswordSettingsPrecedence 属性,此处输入的数值必须大于零。数值越小,优先级越高。

7、修改msDS-PasswordReversibleEncryptionEnabled 属性,也就是是否启用用户帐户的密码可还原的加密状态。可接受输入的值为FALSE/TRUE。为了安全着想(开启后可以用工具逆向DUMP 出用户的密码),如果没有特殊需求,建议设置为FALSE。

8、修改msDS-PasswordHistoryLength 属性,也就是设置用户帐户的密码历史长度。可接收输入的值为0 到1024。默认是24 个。这里设置为3 个历史密码不能重复。

9、修改msDS-PasswordComplexityEnabled 属性,也就是是启用户帐户的密码复杂性要求。可接受输入的值为FALSE/TRUE。为了安全考虑,建议设置为TRUE。

10、修改msDS-MinimumPasswordLength 属性,也就是设置用户帐户的最短密码长度。可接收输入的值为0 到255,这里设置最短需满足10 位。

11、修改msDS-MinimumPasswordAge 属性,也就是设置用户帐户密码的最短使用期限。默认必须是使用1 天后才能再次更改密码。可以接受输入的格式为00:00:00:00。这4 段分别表示为多少天、多少小时,多少分,多少秒。这里设置1 天。

12、修改msDS-MaximumPasswordAge 属性,也就是设置用户帐户的最长密码期限。默认是42 天。这里设置14 天。

13、修改msDS-LockoutThreshold 属性,也就是设置用户帐户锁定的锁定阈值。默认没有限制。可以接受的输入范围是0 到65535。这里设置输入5 次错误密码就自动锁定。

14、修改msDS-LockoutObservationWindow 属性,也就是设置用户帐户锁定的观察窗口时间。即多长时间复位帐户锁定计数器。这里设置30 分钟后复位。

15、修改msDS-LockoutDuration 属性,也就是设置锁定用户帐户的锁定持续时间。这里设置锁定30分钟。

16、最后完成后,可以看到已经成功创建了一个密码策略。

三、将密码策略对象PSO 应用到用户和/或全局安全组

1、右键点击“AdminPSO”属性,然后选择“msDS-PSOAppliesTo” ,它用来设置此密码设置对象PSO 所应用到的对象,只能链接到用户或全局安全组的 0 个或多个 DN。

2、这里设置连接到之前创建的PSOGroup 安全组。

3、至此密码策略对象已经应用完成。

四、管理密码策略对象 PSO

1、查看和修改 PSO 设置

A、打开“Active Directory 用户和计算机”,在“查看”菜单上,确保选中“高级功能”。

B、在控制台树中,单击“Active Directory 用户和计算机域节点系统密码设置容器”,在细节窗格中,右键单击 PSO,然后单击“属性”,单击“属性编辑器”选项卡,选择要查看或编辑其设置的属性,然后单击“查看”(对于可编辑的值)或“编辑”(对于只读值)。

2、修改 PSO 优先级

A、按照上面类似的方法操作,单击AdminPSO“属性编辑器”选项卡。

B、选择 msDS-PasswordSettingsPrecedence 属性,然后单击“编辑”。在“整数”“属性编辑器”对话框中,为“PSO 优先级”输入新值,然后单击“确定”。当存在多个密码策略对象应用于同一个用户或组时,msDS-PasswordSettingsPrecedence 属性数值越小,优先级越高,其密码策略将生效。

3、删除 PSO

1、按照上面类似的方法操作,找到之前建立的AdminPSO。右击删除即可。删除 PSO 后,它所表示的密码策略对于应用该策略的全局安全组的成员将不再有效。

五、查看用户或全局安全组的结果PSO

1、打开“Active Directory 用户和计算机”。右键test 用户,然后单击“属性”。

2、切换到“属性编辑器”选项卡,然后单击“筛选器”。

3、确保选中“显示属性”/“可选”复选框和“显示只读属性”/“已构造”复选框。

4、找到并查看“属性”列表中的 msDS-ResultantPSO 属性的值是否为AdminPSO。

5、如果 msDS-ResultantPSO 属性的值为“Null”或“未设置”则“默认域策略”已应用到所选的用户帐户,如用户test001 属性,表示应用的密码策略为默认域策略。

六、验证多元密码策略结果

1、对用户test 设置7 位密码,如p@ssw0rd,由于用户Test 受AdminPSO 密码策略影响,所以报错。

2、打开“组策略管理”管理工具,修改域密码策略。

3、对用户test001 设置7 位密码,如p@ssw0rd,由于受域密码策略影响,所以密码设置成功。windows server 2008 引入了多元密码策略很好地满足了大部分企业对密码安全的要求,解决了windows 2000/2003 之前单一密码策略的不足。

参考资料

1、http://technet.microsoft.com/zh-cn/library/cc770842(WS.10).aspx 严格的密码和帐户锁定策略配置循序渐进指南