如何强迫用户在Debian,Ubuntu中使用强密码
时间:2020-03-21 11:47:54 来源:igfitidea点击:
强密码必须包含至少14个字符,包括至少一个特殊字符,一个数字字符,一个大写和小写字母。
更重要的是,密码不应容易预测,不应该基于字典单词。
强制用户在Debian,Ubuntu,Linux Mint中使用强密码
默认情况下在基于Deb的系统中安装PAM。
但是,我们需要安装一个名为libpam-cracklib的添加模块。
为此,请从终端运行以下命令:
$sudo apt-get install libpam-cracklib
在基于DEB的系统中,密码策略在/etc/pam.d/common-password文件中定义。
在进行任何更改之前,备份此文件。
$sudo cp /etc/pam.d/common-password /home/sk/
现在,编辑/etc/pam.d/common-password文件:
$sudo nano /etc/pam.d/common-password
找到以下行并编辑或者更改它,如下所示。
password required pam_cracklib.so try_first_pass retry=3 minlen=12 lcredit=1 ucredit=1 dcredit=2 ocredit=1 difok=2 reject_username
让我们分解这一行,看看每个选项是否做了什么。
- retry= n - 更改密码的最大重试次数。 n表示数字。此参数的默认值为1.
- minlen = n - 新密码的最小可接受大小(加一个如果禁用rectidit,则默认值)。除了新密码中的字符数外,每个不同类型的字符(其他,上部,较低和数字)给出信用(长度为+1)。默认值为9.
- lcredit = n - 定义密码中包含小写字母的最大历证。默认值为1.
- Ucredit = n - 定义密码中包含大写字母的最大数量。默认值为1.
- dcredit = n - 定义密码中包含数字的最大频繁贷记。默认值为1.
- ocredit = n - 定义密码中包含其他字符的最大荣誉。默认值为1.
- difok = n - 定义必须与上一个密码不同的字符数。
- Reject_Username - 限制用户将其名称用作密码。
希望我们对上述参数进行了基本思路。
如上面的文件中所定义,用户现在可以使用密码复杂性分数12. 1'信用'将给出1个小写字母,1个信用1个大写字母,1个信用,至少2位数,1信用1其他性格。
但是,我们可以通过分配负值来禁用信用,并强制用户使用具有最小长度的不同字符的组合。
检查以下示例。
password required pam_cracklib.so minlen=8 lcredit=-1 ucredit=-1 dcredit=-2 ocredit=-1 difok=2 reject_username
如上所述,用户必须使用8个字符的密码复杂性分数,包括1个小写字母,1个大写字母,2位数和1个其他字符。
请注意,这些限制仅适用于普通用户,但不适用于root用户。
root用户可以自由地使用任何类型的密码。
检查或者验证密码复杂性
定义密码策略后,检查它是否有效。
让我们分配一个不符合密码策略的简单密码,并查看会发生什么。
要更改或者分配passwd,请运行:
$passwd
示例输出:
Changing password for sk. (current) UNIX password: New password: BAD PASSWORD: it is WAY too short New password: BAD PASSWORD: it does not contain enough DIFFERENT characters New password: BAD PASSWORD: it is based on a dictionary word passwd: Have exhausted maximum number of retries for service passwd: password unchanged
如上所述,如果密码不符合要求,则用户无法设置密码。
让我们尝试符合实际密码策略的密码(包括至少1个小写,1个大写,2位数,另外1个字符)。
如上所述,已为用户"SK"设置了安全密码。