如何实施密码复杂性策略?
我需要配置一个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
==其他字符(特殊字符,包括!
,
@
#
$
%
)
这应该满足您的要求。
您还可以使用变量minlength
和retries
来进一步限制密码要求。
以这种方式修改密码策略的另一个好例子是将以下行放在/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中设置更强密码策略规则的文章。