如何实施密码复杂性策略?

我需要配置一个Ubuntu服务器,以遵循严格的公司密码策略,该策略指定以下内容:

  • 至少一个大写字母
  • 至少一个小写字母
  • 至少一位数
  • 至少一个特殊字符

我看了一下,我发现的是指定密码长度的说明; 但是,我还没有找到与指定上述要点的密码内容有关的内容。

任何帮助,将不胜感激。

密码复杂性由pam_cracklib模块强制执行。

要修改本地计算机的密码策略,您需要修改/etc/pam.d/common-password文件。

在终端窗口( Ctrl + Alt + T )中,输入以下命令:

 sudo -i gedit /etc/pam.d/common-password 

将以下行添加到文件中(在pam_unix.so之前或主要用于身份validation的PAM模块之前,可以从联机帮助页中的示例中看到)并保存文件:

 password requisite pam_cracklib.so ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 

这使用以下选项:

  • dcredit == digit
  • ucredit ==大写字符
  • lcredit ==小写字符
  • ocredit ==其他字符(特殊字符,包括! , @ # $ %

这应该满足您的要求。

您还可以使用变量minlengthretries来进一步限制密码要求。

以这种方式修改密码策略的另一个好例子是将以下行放在/etc/pam.d/common-password文件中:

 password requisite pam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 

此条目最多可设置三次尝试获取最小长度为10个字符的可接受密码。 这设置了用户至少具有与上一个密码不同的三个字符的要求。 这也满足了密码至少包含数字,小写字符和大写字符中的每一个的要求。

另请参阅有关在linux中设置更强密码策略规则的文章。