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

星期五, 十二月 27, 20130

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

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

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

但是对于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没有作用。只针对普通用户

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

  1. 15分钟搞定Linux三剑客 grep sed awk

    剑客grep 来者何人 grep是linux上的字符串搜索匹配命令.这个名字来自于linux编辑器vim的一个命令g/re/p,表示全局匹配某个正则表达式并打印出来,这也体现了grep自身的功能. 基 ...

  2. linux shell find depth,搞定 Linux Shell 文本处理工具,看完这篇集锦就够了

    原标题:搞定 Linux Shell 文本处理工具,看完这篇集锦就够了 Linux Shell是一种基本功,由于怪异的语法加之较差的可读性,通常被Python等脚本代替.既然是基本功,那就需要掌握,毕 ...

  3. 【全网最全】一文搞定 Linux 压缩、解压哪些事儿

    一文搞定 Linux 压缩.解压哪些事儿 Linux 常用的解压和压缩命令如下: 1..tar # 解包 tar xvf FileName.tar # 打包 tar cvf FileName.tar ...

  4. 终于搞定终于搞定linux下阅读pdg(转)

    终于搞定终于搞定linux下阅读pdg(转)[@more@]转贴: 许多朋友都下载过PDG格式的文件,也就是超星图书馆的数字图书,这些图书在Windows下可以使用超星图书浏览器方便的阅读,但在Lin ...

  5. linux激活输入法,搞定Linux输入法

    搞定Linux输入法 使用Linux有些日子了,一切都还好,唯独不适应的还是输入法问题,一连好些天fictx都不正常工作,需要重启才能切换回中文输入法.今天我彻底失去了耐心,确定重塑它,我将fictx ...

  6. 一天搞定Linux常用的基本命令!!!

    ★一天搞定Linux常用的基本命令!!! tips:更改主机名:hostname 目录管理 记录使用:绝对路径.相对路径 cd : 切换目录命令! ./ : 当前目录 cd - : 返回上一级目录 创 ...

  7. 一条命令搞定Linux字体渲染——Ubuntu系发行版微软雅黑+宋体终极解决方案

    一条命令搞定Linux字体渲染--Ubuntu系发行版微软雅黑+宋体终极解决方案 转自 http://www.lulinux.com/archives/278 2014.09.10致歉与更新说明:因l ...

  8. windows mobile linux,搞定linux下与windows mobile 5手机的同步

    搞定linux下与windows mobile 5手机的同步 发布时间:2008-03-24 21:09:17来源:红联作者:tearsjuly 总算是搞定了,步骤很烦琐(需要的东西太多).我的手机是 ...

  9. 9月29日云栖精选夜读 | 17个案例带你3分钟搞定Linux正则表达式

    正则表达式是一种字符模式,用于在查找过程中匹配制定的字符. 元字符通常在Linux中分为两类: Shell元字符,由Linux Shell进行解析: 正则表达式元字符,由vi/grep/sed/awk ...

最新文章

  1. 开源 免费 java CMS - FreeCMS-数据对象-link
  2. 互联工厂大数据云平台打造中国版CPS
  3. c语言宏定义_掌握C语言,中文编程不是梦
  4. for循环与while循环效率对比·5年以下编程经验必看C#】
  5. 并不对劲的bzoj3994:loj2185:p3327[SDOI2015]约数个数和
  6. 3、InterruptedException
  7. L2TP详解(六)——L2TP排错、使用限制和注意事项
  8. pbrt gamma
  9. 网易云评论 爬虫 java_网易云歌曲评论爬虫如何实现翻页?
  10. java size属性_Java中的长度length、length()、size()
  11. zencart 模板文件说明
  12. 鲁大师从服务器获取信息失败怎么办,云服务器 鲁大师
  13. 批量命名矩阵matlab,[转]matlab命名规则
  14. 混沌工程——各大厂实践分享汇总(下篇)
  15. 解决Excel中VBA批量打印速度慢的问题
  16. 爱做梦的人工智能「Stabled Diffusion」
  17. html底部导航栏图标切换,【微信小程序】自定义底部导航栏,切换不同页面显示不同tabbar...
  18. Flexsim仿真案例之Message应用
  19. MATLAB与Baxter机器人通信---网络环境配置篇
  20. gps常用时间系统定义

热门文章

  1. 前端学习(2486):$emit
  2. 前端学习(2240):构造Vue的的利器-脚手架vue-cli3
  3. 前端学习(1878)vue之电商管理系统电商系统之左侧菜单布局
  4. 前端学习(1428):ajax封装三
  5. html+css+js+jquery之常见的的本地存储实现一个简单的todoList项目
  6. 前端学习(305):bootstrap4之工具方法
  7. shiro学习(13):springMVC结合shiro完成认证
  8. 第一百零七期:她说,嫁人就选程序员!
  9. 树莓派UART串口编程--使用wiringPi库-C开发【2-修改驱动】
  10. [Violation] Added non-passive event listener to a scroll-blocking ‘mousewheel‘ event.