当前位置: 首页>>技术教程>>正文


security – 如何设置密码要求(例如最小长度)?

, ,

问题描述

有没有办法设置最低密码要求,例如最小长度、混合大小写字母数字的要求以及密码中至少有 1 个符号,并在密码更改时强制执行?

最佳办法

Ubuntu 中的密码复杂性由 PAM 控制。不幸的是,PAM 的方法类似于 “typically Unix”。这意味着它通过大量非常混乱的文件传播其配置。

控制密码复杂度的文件是:

/etc/pam.d/common-password

有一行:

password [success=1 default=ignore] pam_unix.so obscure sha512

它定义了密码复杂性的基本规则。您可以通过将其更改为以下方式来添加最小长度覆盖:

password [success=1 default=ignore] pam_unix.so obscure sha512 minlen=12

或任何你想要的最低限度。正如您所看到的,默认值已经定义了一些基本的模糊规则。这些基本规则可见于:

man pam_unix

搜索 “obscure”。

有大量可以安装的 pam 模块。

apt-cache search libpam-

应该告诉你他们。

恐怕你需要为他们寻找文档。但 “cracklib” 是常见的添加。

更新:我应该指出,默认的 “obscure” 参数包括基于以前的密码的复杂性和简单性(长度、不同类型字符的数量)的测试。手册页中的示例显示了 crashlib 的实际应用。安装 libpam_cracklib 使其正常工作。

此外,一旦您确定了要更改的内容,其他文件中的更改也是相同的,以便您可以对 SSH 和其他应用程序强制执行相同(或不同)的密码检查。

次佳办法

预安装的 PAM 模块允许您根据复杂性设置基本要求。有一个很好的模块,它是 pam_cracklib 模块的后继者 – pam_pwquality。为了安装它,输入以下内容

apt-get install libpam-pwquality

然后熟悉这个

man pam_pwquality

特别是 “Options” 部分。

现在您可以编辑 /etc/pam.d/中的 common-password

vi /etc/pam.d/common-password

找到包含以下“密码必需的 pam_pwquality.so”语句的行,并在 pam_pwquality.so 之后附加您的选项,如下所示

password        requisite         pam_pwquality.so minlen=16 ucredit=-4 retry=3

其代表“密码的最小长度为 16 个字符,其中至少 4 个大写字符。提示用户输入密码 3 次。

pam_pwquality 允许您与 pam_pwhistory 等其他模块结合使用,提出更复杂的密码要求。祝你好运

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/14219.html,未经允许,请勿转载。