密码过期时间设置
修改 /etc/login.defs 中的选项
PASS_MAX_DAYS 99999 代表不过期
我们将该值改为 90
密码复杂度设置
需要安装 pam 扩展包 libpam-pwquality 或 libpam-cracklib 。
这里选择安装 libpam-cracklib
sudo apt update
sudo apt install libpam-cracklib
查看是否安装成功
dpkg -l libpam-cracklib
安装成功后 /etc/pam.d/common-password 文件会新增一行配置策略
修改 /etc/pam.d/common-password 的配置策略
以三级等保的要求为例,要求如下(如值为 -1 代表不限制)
长度 8 位以上 (minlen=8)
数字 (dcredit=1)digital
大写字母 (ucredit=1)uppercase
小写字母 (lcredit=1)lowercase
特殊字符 (ocredit=1)other
最终配置如下
password requisite pam_cracklib.so retry=5 minlen=8 dcredit=1 ucredit=1 lcredit=1 ocredit=1
设置拒绝策略
- 首先确定是否安装了 pam_tally2 模块
find /lib /lib64 /usr/lib /usr/lib64 -name "pam_tally2.so"
- 修改 /etc/pam.d/common-auth 文件,在 pam_unix.so 行下加入一行,以三级等保为例,错误 5 次锁定 5分钟
auth required pam_tally2.so deny=5 unlock_time=300
设置登出策略
自动登出策略已经设置了 5m ,来自配置文件 /etc/ssh/sshd_config
ClientAliveInterval 和 ClientAliveCountMax 选项控制
关于 libpam-pwquality 或 libpam-cracklib
ibpam-pwquality和libpam-cracklib是两个常用的PAM模块,用于密码复杂度检查和密码策略的实施。它们有一些共同点和区别,如下所述:
共同点:
1. 目的:两个模块都旨在提供密码质量检查和密码策略的功能,以确保用户设置的密码符合一定的安全要求。
2. 功能:它们都可以用于检查密码的长度、字符组合和其他复杂度要求,以及对常见或弱密码的检查。
区别:
1. 底层库:libpam-pwquality使用 PAM 库,而 libpam-cracklib使用 CrackLib 库。这两个库在密码复杂度检查和密码字典检查方面具有不同的实现方式和功能。
2. 配置文件:libpam-pwquality使用 /etc/security/pwquality.conf 文件来配置密码质量参数,而 libpam-cracklib使用 /etc/pam.d/common-password 文件中的参数来配置密码复杂度要求。
3. 功能特点:libpam-pwquality相对较新,提供了更多的灵活性和定制选项。它可以检查密码的字典单词、简单模式(如重复字符)以及密码中的用户名等。而libpam-cracklib则主要关注于密码长度、字符组合和基于字典的检查。
4. 软件依赖:libpam-pwquality通常需要安装额外的依赖软件包,如libpwquality,而libpam-cracklib通常是内置在系统中的。