如何强制执行密码复杂性策略?

如何强制执行密码复杂性策略?

我需要配置一个 Ubuntu 服务器来遵循严格的公司密码策略,该策略规定如下:

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

我环顾四周,只发现了指示用于指定密码长度;但是,关于上述几点,我还没有找到与指定密码内容相关的内容。

任何帮助,将不胜感激。

答案1

2023 年 1 月更新:该库pam_pwquality.so在很多/大多数情况下已经取代了 的使用pam_cracklib.sopam_pwquality.so应该向后兼容pam_cracklib。请参阅pam_pwquality.so 手册页了解使用详情和示例。


密码复杂性由pam_cracklib模块。

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

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

sudo vi /etc/pam.d/common-password

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

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

该语句实现了以下密码要求:

  • dcredit== 数字
  • 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 中设置更强的密码策略规则

答案2

有一个分叉pam_cracklib托马斯·玛耶兹 (Tomas Mraz):pam_pwquality有稍微好一点的选择。

添加它apt install libpam-pwquality 否则 passwd 会抱怨:

模块未知

相关内容