00.09.Linux 系统 PAM 密码策略配置指南
准备工作
1.安装 PAM 的 Cracklib 模块
Cracklib 模块能提供额外的密码检查能力。大多数 Linux 发行版都已经默认安装了该模块。如果你的系统没有安装,请执行以下操作:
2.Debian、Ubuntu 或 Linux Mint 系统:
[root@localhost ~]# sudo apt-get install libpam-cracklib
3.CentOS、Fedora、RHEL 系统:
这些系统默认已安装 cracklib PAM 模块,无需安装。
修改 PAM 配置
修改 /etc/pam.d 目录下的 PAM 配置文件,一旦修改,策略会立即生效。
注意:此教程中的密码策略只对非 root 用户有效,对 root 用户无效。
4.禁止使用旧密码
找到同时有 “password” 和 “pam_unix.so” 字段并附加 “remember=5” 的那行。这行表示禁止使用最近用过的 5 个密码(已经使用过的密码会保存在 /etc/security/opasswd 文件中)。
5.Debian、Ubuntu 或 Linux Mint 系统:
[root@localhost ~]# sudo vi /etc/pam.d/common-password
在文件中添加:
password [success=1 default=ignore] pam_unix.so obscure sha512 remember=5
6.CentOS、Fedora、RHEL 系统:
[root@localhost ~]# sudo vi /etc/pam.d/system-auth
在文件中添加:
password sufficient pam_unix.so sha512 shadow nullok tryfirstpass useauthtok remember=5
设置最短密码长度
找到同时有 “password” 和 “pam_cracklib.so” 字段并附加 “minlen=10” 的那行。此行设置最小密码长度为 10(类型数量会影响密码最短长度)。
7.Debian、Ubuntu 或 Linux Mint 系统:
[root@localhost ~]# sudo vi /etc/pam.d/common-password
在文件中添加:
password requisite pam_cracklib.so retry=3 minlen=10 difok=3
8.CentOS、Fedora、RHEL 系统:
[root@localhost ~]# 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)。
9.Debian、Ubuntu 或 Linux Mint 系统:
[root@localhost ~]# 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
10.CentOS、Fedora、RHEL 系统:
[root@localhost ~]# 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 文件,设置当前密码的有效期限。以下是常用的密码期限设置变量:
[root@localhost ~]# sudo vi /etc/login.defs
在文件中添加:
PASSMAXDAYS 150 # 最大密码有效期150天
PASSMINDAYS 0 # 最小密码有效期0天
PASSWARNAGE 7 # 密码过期前7天提醒用户
以上设置要求用户每 6 个月更改密码,并且会提前 7 天提醒用户密码快到期了。
11.查看某个用户的密码限期:
[root@localhost ~]# sudo chage -l xmodulo
输出示例:
Last password change : Dec 30, 2013
Password expires : never
Password inactive : never
Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7`
12.修改用户密码期限:
下面的命令用于修改 xmodulo 用户的密码期限:
[root@localhost ~]# sudo chage -E 6/30/2014 -m 5 -M 90 -I 30 -W 14 xmodulo
解释:
-E 6/30/2014:密码过期日期设置为 2014 年 6 月 30 日。-m 5:密码最短周期为 5 天。-M 90:密码最长周期为 90 天。-I 30:密码过期后,账户将锁定 30 天。-W 14:在密码过期前 14 天提醒用户。
注意事项
通过以上步骤,你可以有效地强化系统的密码策略,提高 Linux 系统的安全性。
本文来自博客园,作者:{雾里看浮光(南知意)},转载请注明原文链接:{https://www.cnblogs.com/JaseLee}

浙公网安备 33010602011771号