如何在 Linux 为系统用户设置密码复杂度策略

如何在 Linux 为系统用户设置密码复杂度策略,第1张

一、准备工作安装 PAM 的 cracklib 模块,cracklib 能提供额外的密码检查能力。

Debian、Ubuntu 或 Linux Mint 系统上:

1 $ sudo apt-get install libpam-cracklib

CentOS、Fedora、RHEL 系统已经默认安装了 cracklib PAM 模块,所以在这些系统上无需执行上面的 *** 作。

为了强制实施密码策略,我们需要修改 /etc/pam.d 目录下的 PAM 配置文件。一旦修改,策略会马上生效。

注意:此教程中的密码策略只对非 root 用户有效,对 root 用户无效。

二、禁止使用旧密码

找到同时有 “password” 和 “pam_unix.so” 字段并且附加有 “remember=5” 的那行,它表示禁止使用最近用过的5个密码(己使用过的密码会被保存在 /etc/security/opasswd 下面)。

Debian、Ubuntu 或 Linux Mint 系统上:

1

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

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

CentOS、Fedora、RHEL 系统上:

1

2 $ sudo vi /etc/pam.d/system-auth

password sufficient pamunix.so sha512 shadow nullok tryfirstpass useauthtok remember=5

三、设置最短密码长度

找到同时有 “password” 和 “pam_cracklib.so” 字段并且附加有 “minlen=10” 的那行,它表示最小密码长度为(10 - 类型数量)。这里的 “类型数量” 表示不同的字符类型数量。PAM 提供4种类型符号作为密码(大写字母、小写字母、数字和标点符号)。如果你的密码同时用上了这4种类型的符号,并且你的 minlen 设为10,那么最短的密码长度允许是6个字符。

Debian、Ubuntu 或 Linux Mint 系统上:

1

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

password requisite pam_cracklib.so retry=3 minlen=10 difok=3

CentOS、Fedora、RHEL 系统上:

1

2 $ sudo vi /etc/pam.d/system-auth

password requisite pam_cracklib.so retry=3 difok=3 minlen=10

四、设置密码复杂度

找到同时有 “password” 和 “pam_cracklib.so” 字段并且附加有 “ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1” 的那行,它表示密码必须至少包含一个大写字母(ucredit),两个小写字母(lcredit),一个数字(dcredit)和一个标点符号(ocredit)。

Debian、Ubuntu 或 Linux Mint 系统上:

1

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

password requisite pam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1

CentOS、Fedora、RHEL 系统上:

1

2 $ sudo vi /etc/pam.d/system-auth

password requisite pam_cracklib.so retry=3 difok=3 minlen=10 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1

五、设置密码过期期限

编辑 /etc/login.defs 文件,可以设置当前密码的有效期限,具体变量如下所示:

1

2 $ sudo vi /etc/login.defs

PASSMAXDAYS 150 PASSMINDAYS 0 PASSWARNAGE 7

这些设置要求用户每6个月改变他们的密码,并且会提前7天提醒用户密码快到期了。

如果你想为每个用户设置不同的密码期限,使用 chage 命令。下面的命令可以查看某个用户的密码限期:

$ sudo chage -l xmodulo

Last pa

Linux密码的生命周期由/etc/login.defs文件的以下选项来控制:

PASS_MAX_DAYS  120  : 定义密码最长使用时间。

PASS_MIN_DAYS 30 : 定义密码最短更换周期。

PASS_MIN_LEN8 : 定义密码最短长度。

PASS_WARN_AGE 7 : 密码过期提前告警提示天数。

Linux密码的复杂度由/etc/pam.d/system-auth文件的选项来控制:

设置中 minlen=9表示密码长度最低是9

ucredit=-2 表示至少2个大写字母

lcredit=-2 表示至少2个小写字母

dcredit=-2表示至少2个数字

oredit=-2表示至少2个特殊符号

Centos 7 可以在/etc/security/pwquality.conf文件中设置密码复杂度策略,然后在/etc/pam.d/system-auth中设置对root起作用。

在linux,设置密码复杂度的方法有几个

1. 一个是在/etc/login.defs文件,里面几个选项

PASS_MAX_DAYS 90 #密码最长过期天数

PASS_MIN_DAYS 80 #密码最小过期天数

PASS_MIN_LEN10 #密码最小长度

PASS_WARN_AGE 7 #密码过期警告天数

2. 另外一个方法是,修改/etc/pam.d/system-auth文件

找到 password requisite pam_cracklib.so这么一行替换成如下:

password requisite pam_cracklib.so retry=5 difok=3 minlen=10 ucredit=-1 lcredit=-3 dcredit=-3 dictpath=/usr/share/cracklib/pw_dict

参数含义:

尝试次数:5

最少不同字符:3

最小密码长度:10

最少大写字母:1

最少小写字母:3

最少数字:3

密码字典:/usr/share/cracklib/pw_dict

这样设置好,你可以做一下测试,不过需要先退出root,因为root用户并不会受这些限制,它可以设置任意的密码。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8940180.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存