linux 密码复杂度,用PAM 搞定Linux 平台密码复杂度问题

用PAM 搞定Linux 平台密码复杂度问题

星期五, 十二月 27, 20130

60d1c39dcdcb3d31040199f65a9c2113.png

作为一个PAM的一个模块,pam_cracklib可以被用来检查密码是否违反密码字典,这个验证模块可以通过插入password堆栈,为特殊的应用提供可插入式密码强度性检测,能够很好地解决Linux平台密码复杂度的问题。

身边很多人有这样的困惑,无论是在做安全检查还是在做日常运维规范,对于管理员设置的密码是否达到要求比较头疼,往往只能通过观察管理员在登录的时候手指的活动区域,进而判断是否有数字、大小写、特殊字符。

Windows 平台一般管理员都比较熟悉,有专门配置复杂度的地方,如下图所示:

6edbc0a7d47e5d75b30a3e70fa2972e5.png

但是对于Linux平台却无从下手,做的好的企业会对/etc/login.defs文件进行配置,但是此文件根本解决不了密码复杂度的问题。真正解决问题的是/lib/security/pam_cracklib.so 这个文件,此文件是RedHat 开发的默认会安装,如系统中不存在,可以考虑通过YUM的方式安装cracklib-* 这个包。

仅仅一个密码复杂度的问题在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

最小长度为8和至少1位数字,1位大写字母,和另外1个字符的密码

注意这个设置对于root没有作用。只针对普通用户

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值