uos密码复杂度策略配置

统信UOS 统信UOS 1705 人阅读 | 0 人回复 | 2021-11-16

1.介绍
Linux默认的密码策略本身已经很安全,但是设置一个复杂的密码,可以有效的提升系统的安全性。在LinuxPAMPluggable Authentication Modules)里面有一个pam_cracklib.so的模块来控制密码的复杂度,可以根据需要设置符合自己要求的密码复杂度策略。

1.1. pam_cracklib.so模块介绍
1.1.1. pam_cracklib.so模块常用参数
debug : 此选为记录Syslog日志。
type=safe : 输入新密码的时候给予的提示。
retry=N : 改变输入密码的次数,默认值是1。就是说,如果用户输入的密码强度不够就退出。可以使用这个选项设置输入的次数,以免一切都从头再来。
difok=N : 默认值为8。这个参数设置允许的新、旧密码相同字符的个数。
difignore=N : 多少个字符的密码应收到difok将被忽略。默认为23
minlen=N : 新的最低可接受的大小密码。除了在新密码的字符数。此参数的默认值是9,它是一个老式的UNIX密码的字符相同类型的所有好,但可能过低,利用一个MD5的系统增加安全性。
dcredit=N : 限制新密码中至少有多少个数字。
ucredit=N : 限制新密码中至少有多少个大写字符。
lcredit=N : 限制新密码中至少有多少个小写字符。
ocredit=N : 限制新密码中至少有多少个其它的字符。此参数用于强制模块不提示用户的新密码,但以前使用的堆叠模块提供的密码之一。
dictpath=/data/dict :密码字典,这个是验证用户的密码是否是字典一部分的关
键。
注意:
N>0时,N代表新密码中最多可以有N个指定的字符!!
N<0时,N代表新密码中至少N个指定的字符!!
1.1.2. 密码强度检测过程
1) 首先检查密码是否是字典的一部分,如果不是,则进行下面的检查
2) 密码强度检测过程
3) 新密码是否旧密码的回文
4) 新密码是否只是就密码改变了大小写
5) 新密码是否和旧密码很相似
6) 新密码是否太短
7) 新密码的字符是否是旧密码字符的一个循环 例如旧密码:123 新密码:231
8) 这个密码以前是否使用过。
密码复杂度策略设置
2.1. 安装cracklib模块
PAMcracklib模块能提供额外的密码检查能力。在大多数的linux发行版本系统默认已安装该模块,如果未安装执行以下命令进行安装
sudo apt install libpam-cracklib
2.2. 相关策略设置
配置文件位置为/etc/pam.d/common-password
2.2.1. 拒绝使用历史密码
sudo vim /etc/pam.d/common-password
找到如下配置,并在后面添加remember=5,表示禁止使用最近用过的5个密码

已使用过的密码会被保存在/etc/security/opasswd

2.2.2. 设置密码最小长度
sudo vim /etc/pam.d/common-password
找到如下配置,并将默认的minlen=8改为minlen=10,表示最短密码长度需要为10

2.2.3. 设置自定义密码复杂度
sudo vim /etc/pam.d/common-password
找到如下配置,在后面添加ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1, 它表示密码必须至少包含一个大写字母(ucredit,一个小写字母(lcredit),一个数字(dcredit)和一个标点符号(ocredit),具体根据需要修改即可。

如果需要配置对root生效,则需要添加参数enforce_for_root,如下图

2.2.4. 设置允许弱密码
服务器默认密码设置都有复杂度限制,如果需要取消相关复杂度设置,可以通过以下方法进行设置。
sudo vim /etc/pam.d/common-password
将文件中以下的参数行注释掉:
password        requisite                       pam_cracklib.so
如图:

如果仅仅需要对root生效,只需要注释掉enforce_for_root即可,如下图:




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则