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

Ste*_* RC 15 security password pam

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

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

我有一个环顾四周,所有我发现是指令指定的密码长度; 但是,我还没有找到与指定有关上述几点的密码内容相关的内容。

任何帮助,将不胜感激。

Kev*_*wen 20

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

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

从一个终端窗口(Ctrl+ Alt+ T),输入以下命令:

sudo -i gedit /etc/pam.d/common-password
Run Code Online (Sandbox Code Playgroud)

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

password requisite pam_cracklib.so ucredit=-1 lcredit=-1 dcredit=-1  ocredit=-1
Run Code Online (Sandbox Code Playgroud)

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

  • 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
Run Code Online (Sandbox Code Playgroud)

此条目将设置最多 3 次尝试以获取最小长度为 10 个字符的可接受密码。

这为用户设置了与上一个密码不同的至少三个字符的要求。

这也满足了密码中至少包含数字、小写字符和大写字符各一个的要求。

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

  • 优秀的答案!我想补充一点,关于重试,在考虑防止用户登录的策略时要小心,因为最近登录尝试失败的次数太多。这可能导致对帐户的最简单和最容易执行的拒绝服务攻击之一的可行性(尝试登录 X 次,直到帐户被“锁定”,然后合法用户无法进入) . (3认同)