pam_cracklib.so中有很多参数可以选择,具体配置如下:
- debug此选为记录Syslog日志。
- type=safe输入新密码的时候给予的提示。
- retry=N改变输入密码的次数,默认值是1。就是说,如果用户输入的密码强度不够就退出。可以使用这个选项设置输入的次数,以免一切都从头再来。
- difok=N默认值为10。这个参数设置允许的新、旧密码相同字符的个数。
- difignore=N多少个字符的密码应收到difok将被忽略。默认为23
- minlen=N新的最低可接受的大小密码。除了在新密码的字符数。此参数的默认值是9,它是一个老式的UNIX密码的字符相同类型的所有好,但可能过低,利用一个MD5的系统增加安全性。
- dcredit=N限制新密码中至少有多少个数字。
- ucredit=N限制新密码中至少有多少个大写字符。
- lcredit=N限制新密码中至少有多少个小写字符。
- ocredit=N限制新密码中至少有多少个其它的字符。此参数用于强制模块不提示用户的新密码,但以前使用的堆叠模块提供的密码之一。
- dictpath=/path/to/dict //注:密码字典,这个是验证用户的密码是否是字典一部分的关键
cracklib密码强度检测过程:
首先检查密码是否是字典的一部分,如果不是,则进行下面的检查–>
密码强度检测过程–>
新密码是否旧密码的回文–>
新密码是否只是就密码改变了大小写–>
新密码是否和旧密码很相似–>
新密码是否太短–>
新密码的字符是否是旧密码字符的一个循环 例如旧密码:123 新密码:231 –>
这个密码以前是否使用过。
password required pam_cracklib.so difok=3 minlen=15 dcredit=2 ocredit=2
允许有3个新、旧密码相同字符的
最小长度15位 和至少包含2数字、至少包含2个特殊字符数
password required pam_cracklib.so dcredit=-1 ucredit=-1 ocredit=-1 lcredit=0 minlen=8 enforce_for_root
最小长度为8和至少1位数字,1位大写字母,和另外1个字符的密码,此设置对root生效