由于最近领导指示让公司总监级别以上不继承密码复杂度策略可以设置简单密码,以为很简单只要阻止继承域默认策略即可,谁知选择后无任何效果虽然在机器上查看接收策略情况是没有任何策略的,可是更改密码时还是提示密码复杂度不够,于是上网查看了一下,原来相对于以前的活动目录只提供一种密码和帐号锁定策略的状态,Windows Server 2008 R2提供更为灵活的Fine Gained Password(粒化密码策略)。它能够让我们在一个域中指定多个密码策略,能够使用Fine-grained 密码策略来将不同的密码和账号锁定策略应用到域中不同集合的用户。要存储Fine-grained 密码策略,Windows Server 2008 R2 在活动目录目录服务架构中包含了两个新的对象:

1、Password Settings Container (密码设置容器)

  2、Password Settings(密码设置)

  Password Settings Container (PSC)在缺省情况下被创建在域的System 容器中。可以通过活动目录用户和计算机管理工具,选择高级特性选项来查看它。它存储域的Password Settings objects (PSOs) 。

  我们不能重命名、移动或删除该容器。尽管您可以创建额外的自定义的PSCs ,它们不会被考虑当策略的结果集在计算对象的时候。因此,这也不是推荐的做法。

  PSO 的属性的设置能够在Default Domain Policy(除Kerberos设置外)中设置。这些设置包括下面这些密码设置属性:

1、msDS-PasswordSettingsPrecedence,设置密码策略的优先级,数值越小优先级越高,设置为“1”

  2、msDS-PasswordReversibleEncryptionEnabled,设置是否启用“用可还原的加密来存储密码”策略,其值是个布尔值,可选择FALSE或者TRUE,在此我们设置为“FALSE”

  3、msDS-PasswordHistoryLength,对应组策略中的“强制密码历史”,可选范围是0-1024,我们设置为0

  4、msDS-PasswordComplexityEnabled,对应组策略中的“密码必须符合复杂性要求”,也是一个布尔值,我们设置为“False”

5、msDS-MinimumPasswordLength,设置密码长度最小值为1

6、msDS-MinimumPasswordAge,设置密码最短使期限为1:00:00:00(1天);注意:格式按照 天:时:分:秒(dd:hh:mm:ss) 来写

  7、msDS-MaximumPasswordAge,设置密码最常使用期限为90:00:00:00(90天);注意:不能设置为0天,否则最后会报错

  8、msDS-LockoutThreshold,设置帐户锁定阀值为3,表示3次输错后锁定账户(可以范围0-65535)

  9、msDS-LockoutObservationWindow,设置复位帐户锁定计数器为00:00:30:00(30分钟)

设置【重置账户锁定计数器】为【30】分钟,每一次密码输入错误计数器都会加1,根据上一步的设置,当计数器值为3时账户锁定,在账户未被锁定之前,密码输入错误后30分钟内没有再次输错,计

数器将会复位到0

10、msDS-LockoutDuration,设置帐户锁定时间为0:00:30:00(30分钟)。即锁定的账户将在30分钟后解锁

此外,PSO还有下面两个新的属性:

1、PSO link(PSO链接)这是一个多值属性,它可以被链接到用户或组对象上。

   2、Precedence(优先) 这是一整数值,用来解决冲突,如果多个PSO 被应用到一个用户或组对象上。

  这个属性是mustHave 属性。意思是您必须为每个属性定义一个值。来自多个PSO 的设置不能被合并。

定义fine-grained 密码策略的范围

  PSO 能够被链接到和PSO位于同一个域的用户(或inetOrgPerson)或组对象。

  PSO 有一个名称为msDS-PSOAppliesTo 的属性,它包含了只到用户或组的正向链接。msDS-PSOAppliesTo 属性是多值的,它意味着您能够将一个PSO应用到多个用户或组。您能够创建一个密码策略并将它应用到不同集合的用户或组。


部署要求:

域中所有的DC必须为Windows Server 2008 或R2

域功能级别必须为Windows Server 2008之上功能级别

需使用ADSIEDIT,LDUFDE等进行管理

当一个用户连接有多个对象时,优先级别数字越小,越优先


实验环境:

检查提示域功能级别

建立测试用的全局安全组和用户

使用ADSI编辑器创建PSO

或使用第三方工具Fine Grain Password Policy Tool Bete 创建PSO(本实验省略)

验证用户的PSO应用


实验步骤:

1、首先我创建了一个IT部用来模拟实验环境,并创建了test和test1用户,IT部全局-安全组,把test加入IT部安全组内,test1没有添加。

120228718.jpg

2、在管理工具打开ADSI编辑器,右键连接到选择“默认命名上下文”确认

134437308.jpg


3、依次展开DC=ABC,DC=com→CN=System”定位到CN=Password Settings Container;然后在该节点上单击右键选择“新建→对象”在弹出的对话框中选中“msDS-PasswordSettings”类别,单击“下一步”在cn属性对话框中输入“值”为“IT-PSO”(任意)。然后一路“下一步”依据向导进行密码策略的定制

135249657.jpg


142552610.jpg


142845627.jpg

以下步骤较为简单我没有全部截图,大家对应填写就可以

1、msDS-PasswordSettingsPrecedence,设置密码策略的优先级,数值越小优先级越高,设置为“1”

  2、msDS-PasswordReversibleEncryptionEnabled,设置是否启用“用可还原的加密来存储密码”策略,其值是个布尔值,可选择FALSE或者TRUE,在此我们设置为“FALSE”

  3、msDS-PasswordHistoryLength,对应组策略中的“强制密码历史”,可选范围是0-1024,我们设置为0

  4、msDS-PasswordComplexityEnabled,对应组策略中的“密码必须符合复杂性要求”,也是一个布尔值,我们设置为“False”

5、msDS-MinimumPasswordLength,设置密码长度最小值为1

6、msDS-MinimumPasswordAge,设置密码最短使期限为1:00:00:00(1天);注意:格式按照 天:时:分:秒(dd:hh:mm:ss) 来写

  7、msDS-MaximumPasswordAge,设置密码最常使用期限为90:00:00:00(90天);注意:不能设置为0天,否则最后会报错

  8、msDS-LockoutThreshold,设置帐户锁定阀值为3,表示3次输错后锁定账户(可以范围0-65535)

  9、msDS-LockoutObservationWindow,设置复位帐户锁定计数器为00:00:30:00(30分钟)

设置【重置账户锁定计数器】为【30】分钟,每一次密码输入错误计数器都会加1,根据上一步的设置,当计数器值为3时账户锁定,在账户未被锁定之前,密码输入错误后30分钟内没有再次输错,计

数器将会复位到0

10、msDS-LockoutDuration,设置帐户锁定时间为0:00:30:00(30分钟)。即锁定的账户将在30分钟后解锁


4、在新建好的IT-PSO右键属性找到“msDS-PSOAppliesTo”添加IT部

140816192.jpg

5、确认后我们开始测试test用户更改密码情况

141152427.jpg

141154361.jpg

6、我们再次测试test1用户更改密码情况

141406661.jpg

141409638.jpg


由此可知虽然test和test1用户同在一个OU中,但是IT-PSO策略只对安全组中IT部里面的用户生效,而不是对同OU中的用户生效。因此我们在这之前一定要先创建一个全局安全组作为策略生效对象也可指定用户生效,而不像以往对OU增加策略。