尽管Linux的设计是安全的,但仍存在许多安全漏洞,而弱密码就是其中之一。作为系统管理员,您必须为用户提供强密码。因为大多数系统漏洞都是由弱密码引起的。本教程介绍如何在基于DEB的Linux中设置密码长度,密码复杂度,密码有效期等密码,如Debian,Ubuntu,Linux Mint和基于RPM的Linux,如RHEL,CentOS和Scientific Linux。战略。
在基于DEB的系统中设置密码长度
默认情况下,所有Linux操作系统都需要至少6个字符的用户密码。我强烈建议不要低于此限制。并且不要使用您的真实姓名,父母,配偶,孩子的姓名或您的生日作为密码。即使是新的黑客也可以快速破解这些密码。一个好的密码必须至少6个字符长,并包含数字,大写字母和特殊符号。
通常,在基于DEB的操作系统中,密码和与身份验证相关的配置文件存储在/etc/pam.d/目录中。
设置最小密码长度并编辑/etc/pam.d/common-password文件。
$ sudo nano /etc/pam.d/common-password
找到以下行:
密码[success=2 default=ignore] pam_unix.so隐藏sha512
最后添加额外的文本:minlen=8。我在这里设置的最小密码是8。
密码[success=2 default=ignore] pam_unix.so obscure sha512 minlen=8
保存并关闭文件。因此,用户现在无法设置小于8个字符的密码。
在基于RPM的系统中设置密码长度
在RHEL,CentOS和Scientific Linux 7.x系统上,以root身份执行以下命令以设置密码长度。#authconfig --passminlen=8 --update
查看最小密码长度并执行:
#grep'^ minlen'/etc/security/pwquality.conf
样本输出:
Minlen=8
在RHEL,CentOS和Scientific Linux 6.x系统上,编辑/etc/pam.d/system-auth文件:
#nano /etc/pam.d/system-auth
找到以下行并在行尾添加:
密码必备pam_cracklib.so try_first_pass retry=3 type=minlen=8
在上述设置中,最小密码长度为8个字符。
在基于DEB的系统中设置密码复杂性
此设置强制密码中应包含的类型数,例如大写字母,小写字母和其他字符。
首先,使用以下命令安装密码质量检测库:
$ sudo apt-get install libpam-pwquality
之后,编辑/etc/pam.d/common-password文件:
$ sudo nano /etc/pam.d/common-password
要在密码中设置至少一个大写字母,请在下面一行的末尾添加文本ucredit=-1。
密码必备pam_pwquality.so retry=3 ucredit=-1
设置一个至少包含一个小写字母的密码,如下所示。
密码必备pam_pwquality.so retry=3 dcredit=-1
设置密码至少包含其他字符,如下所示。
密码必备pam_pwquality.so retry=3 ocredit=-1
正如您在上面的示例中所看到的,我们将密码设置为包含至少一个大写字母,一个小写字母和一个特殊字符。您可以设置任意数量的大写字母,小写字母和允许最多的特殊字符。
您还可以设置密码中允许的最大或最小字符类数。
以下示例显示设置新密码所需的最小字符类数:
密码必备pam_pwquality.so retry=3 minclass=2在基于RPM的系统中设置密码复杂性
在RHEL 7.x/CentOS 7.x/Scientific Linux 7.x中:
设置至少包含一个小写字母的密码并执行:
#authconfig --enablereqlower --update
查看设置并执行:
#grep'^ lcredit'/etc/security/pwquality.conf
样本输出:
Lcredit=-1
同样,使用以下命令在密码中设置至少一个大写字母:
#authconfig --enablerequpper --update
查看此设置:
#grep'^ ucredit'/etc/security/pwquality.conf
样本输出:
Ucredit=-1
在密码中设置至少一个数字来执行:
#authconfig --enablereqdigit --update
查看设置并执行:
#grep'^ dcredit'/etc/security/pwquality.conf
样本输出:
Dcredit=-1
将密码设置为至少包含一个其他字符并执行:
#authconfig --enablereqother --update
查看设置并执行:
#grep'^ ocredit'/etc/security/pwquality.conf
样本输出:
Ocredit=-1
在RHEL 6.x/CentOS 6.x/Scientific Linux 6.x系统中,以root身份编辑/etc/pam.d/system-auth文件:
#nano /etc/pam.d/system-auth
找到以下行并在行尾添加:
密码必备pam_cracklib.so try_first_pass retry=3 type=minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1
在上述设置中,密码必须至少包含8个字符。此外,密码必须至少包含一个大写字母,一个小写字母,一个数字和另一个字符。
在基于DEB的系统中设置密码到期日期现在我们将设置以下策略。
密码使用的最大天数。
密码更改允许的最少天数。
密码到期前的天数。
设置这些策略并编辑:
$ sudo nano /etc/login.defs
在满足您的每个需求后设置值。
PASS_MAX_DAYS 100
PASS_MIN_DAYS 0
PASS_WARN_AGE 7
正如您在上面的示例中所看到的,用户应该每隔100天更改一次密码,并在密码到期前7天出现警告消息。
请注意,这些设置对新创建的用户有效。
要设置更改现有用户密码的最大天数,必须运行以下命令:
$ sudo chage -M
设置更改密码的最小间隔,然后执行:
$ sudo chage -m
在密码到期之前设置警告并执行:
$ sudo chage -W
显示现有用户的密码并执行:
$ sudo chage -l sk
在这里,sk是我的用户名。
样本输出:
上次密码更改: 2017年2月24日
密码永远不会到期:
密码无效:从不
帐户永远不会到期:
密码更改之间的最小天数: 0
密码更改之间的最大天数: 99999
密码过期前的警告天数: 7
从上面的输出可以看出,密码是无限的。
修改现有用户密码的有效期,
$ sudo chage -E 24/06/2018 -m 5 -M 90 -I 10 -W 10 sk
以上命令将用户sk密码期限设置为24/06/2018。更改密码的最小间隔为5天,最长间隔为90天。用户帐户将在10天后自动锁定,并在到期前10天显示警告消息。
在基于RPM的系统中设置密码到期日期
这与基于DEB的系统相同。
禁止在基于DEB的系统中使用最近使用的密码您可以限制用户设置已使用的密码。通俗地说,用户不能再使用相同的密码。
要进行此设置,请编辑/etc/pam.d/common-password文件:
$ sudo nano /etc/pam.d/common-password
找到以下行并在最后添加文本remember=5:
密码[success=2 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512 remember=5
上述政策将阻止用户使用他们最近使用的5个密码。
禁止在基于RPM的系统中使用最近使用的密码
RHEL 6.x和RHEL 7.x及其衍生产品CentOS,Scientific Linux也是如此。
以root身份编辑/etc/pam.d/system-auth文件。
#vi /etc/pam.d/system-auth
找到以下行并在最后添加文本remember=5。
密码足够pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5
现在您了解Linux中的密码策略以及如何在基于DEB和RPM的系统中设置不同的密码策略。
通过这种方式,我将在这里发布另一篇有趣且有用的文章。请在此之前保持关注。如果您觉得本教程有帮助,请在您的社交专业网络上分享并支持我们。