自 Windows Server 2008 以来,Microsoft 允许管理员为域创建多种 密码策略,适用于 Active Directory。在现代的云启用环境中,务必通过策略对权限更高的账户进行锁定,并定期审计。
以下为在你的环境中启用 Multiple Password and Account Lockout Policies(多重密码及账户锁定策略)的分步指南。这也被称为细粒度密码策略(fine-grained password policy)。
别忘了你始终可以使用免费的 AD account tool 来自 Netwrix
以更快地调查用户账户锁定。
在尝试此操作之前,请确保你的域和林功能级别至少为 2008 或更高,并且你已使用域管理员(或更高权限)账号登录。
Active Directory 会将这些新的密码策略存储到 Password Settings Container (PSC) 中——我们将从这里开始:
- 从“开始”菜单打开 adsiedit.msc
- 在左侧窗格中右键单击“ADSI Edit”,然后选择“Connect To”。
- 在“name”框中输入你希望应用此设置的域名,然后单击“OK”。
- 展开左侧树:DC=你的域 -> CN=System -> CN= Password Settings Container
- 在右侧的空白区域右键单击,选择“New” -> “Object” -> msDS-PasswordSettings -> Next。
- 为此策略命名。这里我将其命名为“Chief Executives” -> Next
- 请为向导提示的每个属性填写相应的值:
- 密码设置优先级 - 从 0 开始
- 这是密码策略应用到用户的顺序:数字越小
表示优先级越高(将覆盖其他设置)。
- 这是密码策略应用到用户的顺序:数字越小
- 启用可逆加密 - true 或 false
- 使用可逆加密来存储密码 - 不推荐!
- 密码历史长度 – 0 到 1024
- 用户更改密码后,系统会记住多少个旧密码。
- 启用密码复杂性 – true 或 false
- 密码必须满足复杂性要求(即必须包含数字、符号、大写和小写字母)。
- 密码最小长度 – 0 到 255
- 最小密码年龄(Minimum Password Age)— 用 dd:hh:mm:ss 表示的时间跨度,或(无)
- 用户在被允许更改密码之前必须保留该密码的时间(先停止更改,然后再改回)
- 最⼤密码年龄(Maximum Password Age)— 用 dd:hh:mm:ss 表示的时间跨度,或(从不)
- 锁定阈值(Lockout Threshold)— 0 到 65535
- 在帐户被锁定之前,最多可以错误输入多少次密码
- 锁定观察窗口(Lockout Oberservation Window)— 以 dd:hh:mm:ss 表示的时间跨度或(无)
- 用于查看先前错误密码并在需要时执行锁定的时间。
- 锁定持续时间(Lockout Duration)— 以 dd:hh:mm:ss 表示的时间跨度或(永不)
- 一旦达到错误密码次数,将账号锁定多长时间
- 点击“完成”,然后右键单击新的密码策略,选择“属性”。
- 找到属性“msDS-PSOAppliesTo”,双击,然后选择“Add Windows Account”
- 密码设置优先级 - 从 0 开始
指定应将此密码策略应用到的组或用户:
- 完成后请一路点“OK”,直到退出所有窗口!
一旦将新的密码策略复制到其他域控制器,它就应当几乎立即生效。
如果你有幸拥有 Windows Server 2012 域,或者在已安装远程服务器管理工具的 Windows 8 或更高版本计算机上操作,那么这个过程会更容易一些:
- 打开 Active Directory Administrative Centre,并连接到你的域
- 导航到与 ADSI 中相同的位置:Domain -> System -> Password Settings Container
- 右键单击并选择“New” -> “Password Settings”
将出现一个对话框,选项与上面描述的大体相同,但对某些时长的控制更少(例如,你无法为最小/最大密码期限以小时或分钟设置持续时间。
- 设置你的选项,然后添加应将此密码策略应用到的用户/组,最后按“OK”。
或者,您也可以按照以下方式用两条 PowerShell 命令完成全部操作……
创建密码策略:
New – ADFineGrainedPasswordPolicy – ComplexityEnabled: $true -LockoutDuration: “00:30:00” – LockoutObservationWindow: “00:30:00” – LockoutThreshold: “5” – MaxPasswordAge: “42.00:00:00” -MinPasswordAge: “1.00:00:00” – MinPasswordLength: “7” -Name: “FriendlyNameHere” – PasswordHistoryCount: “24” – Precedence: “5” -ReversibleEncryptionEnabled: $false – Server: “domaincontroller.domain.local”
并将其应用到组或用户:
Add – ADFineGrainedPasswordPolicySubject – Identity: “CN=FriendlyNameHere, CN=Password Settings Container, CN=System, DC=domain, DC=local” – Server: “domaincontroller.domain.local” – Subjects: “DNPathToUserOrGroup”
再次说明,属性(特性)的描述在上方。
我强烈建议您设置 Fine-Grained Password Policies——以下是我们已配置的 4 个级别:
- 访客账户和“临时(Throwaway)”账户
– 允许使用简单密码,长度超过 5 个字符,无到期时间 - 普通员工
– 允许使用简单密码,长度超过 12 个字符,30 天后到期 - 财务及机密材料工作人员
– 复杂密码,长度超过 12 个字符,30 天后到期,记住最近 12 个密码 - ICT 员工和管理员
– 复杂密码,长度超过 12 个字符,14 天到期,记住 12 个密码
分享到
了解更多
关于作者
Matt Hopton
顾问
ICT 网络管理员、IT 顾问以及创业者。除在 Sir Thomas Rich's School 担任网络管理员外,Matt 还为本地企业开发并托管网站,开发软件,并提供硬件推荐。