当我们使用Linux系统设置密码时,常常会遇到这样的问题。系统提示您的密码太简单,或者您的密码是字典的一部分,那么系统如何检查用户密码的复杂性呢
系统对密码的控制由两部分组成(我知道)。
1 cracklib
2 login.defs
声明:login.defs主要是控制密码的有效时间,密码管理时间。不要在这里说话
login.defs --影子密码套件配置
pam_cracklib.so是控制密码的复杂性的关键文件
专业开发的cracklib redhat安装包,确定密码的复杂性
可以通过转- QL cracklib视
通过PAM模块的控制判断密码的复杂性。具体模块的pam_cracklibpam_cracklib参数介绍。
调试
此选项使模块将信息写入到syslog(3)表示,,对与错。
类型= xxx
默认操作是模块使用以下命令:对与错
重试= N
提示用户最多N次,然后返回错误。默认的1
difok = N
此参数将更改在旧密码中不存在的新密码中字符5的默认值。此外,如果新密码中的1 2字符不同,则新密码将被接受。
difignore = N
多少个字符difok之前应将忽略有密码。
市明仁= N
新密码的最小可接受大小(加上一个,如果信用卡没有被禁用,这是默认的)。新密码信用证中的字符数(长度为+ 1)是为每个不同的字符提供的(其他参数、上、下限和数字为该参数的默认值)。对于旧式的UNIX密码来说,9是否适用于所有相同类型的字符,但可能太低,无法利用MD5系统的附加安全性。值得注意的是,有一对在cracklib本身太短的限制是硬编码在4个定义的长度限制(上限6),将不参照市明仁检查。如果你想允许密码短字符,你不应该使用5这个模块。
提及= N
这是(n = 0)在新密码中有数字的最大信用。如果你有小于或N个数字,每个数字要数+ 1对满足当前市明仁价值。在提及默认是1市明仁低于推荐值10。
(n<0)这是必须满足的最小位数。
优信= N
这是(n=0)在新密码中大写字母的最大值。如果您有不少于或N大写字母每个字母数+ 1对满足当前市明仁价值。对于优信默认是1市明仁低于推荐值10。
(n > 0)这是大写字母的最小数目,必须大写。
lcredit = N
这是(n = 0)在新密码中有小写字母的最大信用度。如果您有不少于或n小写字母,每个字母数+ 1对满足当前市明仁价值。对于lcredit默认是1市明仁低于推荐值10。
(n<0)这是小写字母的最小数目。
信用= N
这是(n = 0)在新密码中拥有其他字符的最大值。如果你有小于或其他字符,每个字符计数+ 1对满足当前市明仁价值。对于信用违约是1市明仁低于推荐值10。
(n<0)这是必须的其他字符的最小数目。
use_authtok
这个参数用于强制模块不提示,也被称为以下三个方面。
Dictpath=/path/to/dict
到cracklib字典路径。
dictpath = / / /路径的 / /注意:密码字典,这是验证用户密码的关键是字典的一部分。
到cracklib字典路径。
cracklib密码强度检测过程
首先检查密码是否是字典的一部分,如果不是,请检查以下内容。
密码强度检测过程
这些支票是:
回文
是新密码旧密码的回文
为新密码回文的旧密码
唯一的变化情况
新密码是旧密码吗
新密码是否只更改了密码的大小。
类似的
新密码和旧密码太大了吗
新密码是否与旧密码相似
这主要是由一个参数控制,difok是,,为主,控制,,T,R,T,R,T,R,D,R,D,等。
避免试图改变一个长期而复杂的密码相关的锁定,difignore是可用的。此参数可用于指定的最小长度的一种新的密码需要在difok值被忽略。对于difignore默认值是23。
简单的
新密码太小了吗
新密码是否太短
这是由5个市明仁,提及,优信,lcredit,控制和信用。,,,,它也被称为以下三个方面。
旋转
新密码是旧密码的旋转版本吗
新密码的字符是否是旧密码字符的循环。
例如,旧密码:123
新密码:231
已经习惯了
是过去使用的密码吗
这个密码以前使用过吗
以前用过的密码都可以找到 / / / opasswd安全等。
那么系统是如何实现这种控制的呢
在系统配置文件 / /聚丙烯酰胺等这样的线。D /系统认证
密码必须pam_cracklib.so try_first_pass重试= 3
我们可以配置的参数的基础上pam_cracklib PAM模块来实现我们想要的目的
需要密码/自由/安全/ pam_cracklib.so重试= 3 = 8 =类型=市明仁difok 3 dictpath = / / /的路径