之前在修改Linux密码长度的时候都是去修改/etc/login.defs文件的pass_min_len 参数,可是地球人都知道,这个参数根本不具备强制性,用户一样可以使用短密码.
真正要对密码复杂性进行限制,还需要cracklib来完成.
红帽的系统一般都已经安装了, 可以rpm -qa|grep crack来查看,一般是两个包
####
cracklib参数主要有:
1.debug
用于syslog日志记录
2.type=abcd
当修改密码时,典型的提示信息是:
New linux password:
Retype Linux password:
可以通过abcd来替换linux这个单词
3.retry=3
用户有几次出错的机会
4.difok=5
新密码中至少有几个字符是和以前的密码不同的.
5.difignore=3
忽略新密码中不同字符之前的几个字母.
6.minlen=8
最小密码长度
7.dcreditr=5
密码中最多几个数字
8.ucredit=5
密码中最多几个大些字母.
9.lcredit=5
新密码中最多几个消协字母
10.ocredit=5
新密码中最多几个特殊字符
11.use_authtok
使用密码字典中的密码
cracklib密码强度检测过程
首先检查密码是否是字典的一部分,如果不是,则进行下面的检查
|
|
/|/
密码强度检测过程
|
|
/|/
新密码是否旧密码的回文
|
|
/|/
新密码是否只是就密码改变了大小写
|
|
/|/
新密码是否和旧密码很相似
|
|
/|/
新密码是否太短
|
|
/|/
新密码的字符是否是旧密码字符的一个循环
例如旧密码:123
新密码:231
|
|
/|/
这个密码以前是否使用过
pam_passwdqc 主要参数说明:
mix:设置口令字最小长度,默认值是 mix=disabled。
max:设置口令字的最大长度,默认值是 max=40。
passphrase: 设 置 口 令 短 语 中 单 词 的 最 少 个 数 , 默 认 值 是
passphrase=3,如果为 0 则禁用口令短语。
atch:设置密码串的常见程序,默认值是 match=4。
similar:设置当我们重设口令时,重新设置的新口令能否与旧口令相似,它可以是 similar=permit 允许相似或 similar=deny 不允许
相似。
random:设置随机生成口令字的默认长度。默认值是 random=42。设为 0 则禁止该功能。
enforce:设置约束范围,enforce=none 表示只警告弱口令字,但不禁止它们使用;enforce=users 将对系统上的全体非根用户实行这一
限制;enforce=everyone 将对包括根用户在内的全体用户实行这一限制。
non-unix:它告诉这个模块不要使用传统的 getpwnam 函数调用获得用户信息。
retry:设置用户输入口令字时允许重试的次数,默认值是 retry=3。
配置样例:
/etc/pam.d/system-auth
修改
password requisite /lib/security/$ISA/pam_cracklib.so retry=3
为
password requisite /lib/security/$ISA/pam_cracklib.so retry=3 minlen=8 difok=5