`

利用pam模块passwdqc限定linux用户密码强度

阅读更多
     限定linux上的root密码强度本身就是一个伪命题。root用户可以直接操作/etc/shadow 修改密码。之所以要这么搞主要还是为了稍微提高一下系统的安全性,毕竟不是人人都知道shadow的改法。
     windows也类似,可以通过修改注册表的方式修改密码,但是windows的安全策略依然有密码强度的选项。
     之所以选择passwdqc,是因为网上找了一下,发现绝大多数的linux密码强度策略限制都只针对非root用户,而passwdqc可以限定到root用户。
      passwdqc的主页如下:
             http://www.openwall.com/passwdqc/
      配置文件的规则说明如下:
             http://www.openwall.com/passwdqc/README.shtml

    简单找一个我的规则解释一下:
(注:ubuntu的配置文件在/etc/pam.d/common-password redhat和centos的配置文件在/etc/pam.d/sys-auth)
    我的规则是这样的:
password required  pam_passwdqc.so min=disabled,disabled,12,8,8 max=30 passphrase=3 match=4 similar=deny enforce=everyone disable_firstupper_lastdigit_check


规则解释如下:
1)只包含一种字符的密码,拒绝(大小写,数字,特殊字符分别为4种字符)
2)只包含两种字符的密码,拒绝
3)如果密码中被识别出了常用的单词,那么最小长度就必须为12位。常用单词的最小识别长度为3.(由passphrase=3制定)
4)包含三种字符的密码,最小长度为8位
5) 包含四种字符的密码,最小长度为8位
6)如果发现本次修改的密码跟老密码有4个substring的长度类似,就认为是弱密码。(match=4 similar=deny)
7) 这个策略对所有用户都生效。(enforce=everyone )
8)默认情况下,对于输入的密码,如果第一个字母是大写字母,或者最后一个字母为数字,则不会计入密码字符的种类。比如:Fuck1234,由于第一个F是大写字母,所以会被认为,该密码只有小写字母和数字两种字符。这个非常奇怪,我也不知道原因是什么。我们用disable_firstupper_lastdigit_check 禁止了这种识别。

需要注意的是disable_firstupper_lastdigit_check并不是官方的一个功能,官方的版本发布到1.0.5就结束了,这个功能是在1.0.5-4发布的,是redhat的一个开发人员提交的。
如下图:


fedora中有一个srpms:ftp://mirrors1.kernel.org/fedora-secondary/releases/15/Everything/source/SRPMS/pam_passwdqc-1.0.5-7.fc15.src.rpm
这个是1.0.5-7版本。
我这边附件提供了一个由此patch出来的pam_passwdqc.so文件。大家需要的可以下载。

有了这样的配置,我们就可以放心修改密码了,如果不符合上述规范,会提示出来的。

  • 大小: 64.3 KB
  • 大小: 64.6 KB
分享到:
评论

相关推荐

    linux操作系统PAM模块实例

    PAM 模块在 Linux 操作系统中扮演着重要的角色,负责用户验证和身份认证。 PAM 结构 PAM 结构可以分为以下几层: ① 应用层:这一层有 login、telnet、su、sudo、ssh 等程序,他们都会用到用户验证的功能。这些...

    如何设置PAM模块控制Linux密码策略

    ### 如何设置PAM模块控制Linux密码策略 在Linux系统中,为了确保用户账户的安全性,通常会采用一系列措施来加强密码策略。其中,PAM(Pluggable Authentication Modules)模块是一个非常重要的组件,它提供了灵活的...

    linux pam开发手册

    该文档适用于,对linux 有一定了解,从事或者正要从事linux pam模块开发的同学

    用Linux-PAM模块实现用户登陆的控制.pdf

    Linux-PAM 模块还提供了一些预定义的验证机制,如基于密码的验证机制、基于智能卡的验证机制等。 Linux-PAM 模块在身份验证中的应用非常广泛,例如在网络认证、远程访问、系统登录等场景中。 Linux-PAM 模块可以...

    PAM-Linux实现安全登录

    本文将深入探讨PAM的工作原理、应用开发以及源码分析,旨在帮助读者理解如何利用PAM模块来确保Linux操作系统的安全登录。 **一、PAM工作原理** PAM的核心思想是模块化,它允许系统管理员选择和配置不同的认证模块...

    pam.tar.gz_linux pam _linux-pam

    PAM,即插拔式认证模块,是Linux操作系统中一种灵活的身份验证框架。它允许系统管理员根据需求配置不同的认证策略,无需修改核心系统代码。PAM使得系统能够支持多种认证机制,如密码、智能卡、生物识别等,并能轻松...

    pam模块源码及所有依赖库,测试通过

    这个包在Linux系统中扮演着至关重要的角色,它管理着系统的用户密码信息,与PAM(Pluggable Authentication Modules)紧密协作,确保密码的安全性和复杂度。让我们深入探讨一下其中涉及的知识点。 `shadow` 包是...

    Linux-PAM-1.3.0.tar.gz_PAM_linux_pam 1.3.1

    在Linux-PAM-1.3.0.tar.gz这个压缩包中,包含了版本为1.3.0的PAM的源代码和其他相关文件,允许用户在系统上安装和配置PAM来实现多样的认证策略。 PAM的核心概念在于“插件式”,这意味着它能够根据需求加载不同的...

    使用PAM同步Samba与系统用户密码

    为了提高用户体验并简化账户管理,可以通过PAM(Pluggable Authentication Modules)来实现Samba与Linux系统用户密码的同步。这样做的好处在于,用户可以使用同一套凭据(即Linux系统的用户名和密码)登录Samba服务...

    pam_chroot.zip_linux pam _pam模块

    1. **安全隔离**:`pam_chroot`主要用于创建安全的沙箱环境,防止恶意用户利用系统漏洞对整个系统造成破坏。例如,当一个用户只被允许运行特定的应用程序时,可以通过`pam_chroot`将其限制在一个只包含该应用程序...

    PAM的初步学习 linux下pam.d学习

    PAM作为Linux系统中的一个重要组成部分,在用户认证和资源访问控制方面扮演着至关重要的角色。通过灵活配置PAM模块,不仅可以满足不同场景下的认证需求,还能简化系统的维护工作。理解和掌握PAM的基本原理和配置方法...

    Linux用户认证方法及PAM介绍.pdf

    在Linux中,用户的身份信息通常存储在`/etc/passwd`和`/etc/shadow`文件中,后者包含了加密后的密码和相关账户管理信息。当用户尝试登录时,输入的密码会被加密并与`/etc/shadow`中的加密密码进行比较,以验证用户...

    利用PAM增强Linux登录认证安全性.pdf

    "利用PAM增强Linux登录认证安全性" 本篇文章主要介绍了如何使用PAM(Pluggable Authentication Modules,插件式鉴别模块)来增强Linux登录认证安全性。文章首先分析了Linux登录机制,然后讨论了如何使用PAM进行用户...

    Linux——PAM-的应用开发和内部实现源码分析

    Linux——PAM-的应用开发和内部实现源码分析,介绍了如何利用PAM模块编程进行对Linux操作系统安全访问。

    The Linux-PAM System Administrators' Guide 1.1.2

    pam_access 模块可以控制用户的登录访问权限,pam_cracklib 模块可以检查密码是否包含在字典中。 5. Linux-PAM 实践 在实践中,系统管理员需要根据实际情况选择和配置适当的身份验证模块,并确保配置文件的正确性...

    pam_smbsync:PAM模块与UNIX密码更改同步更新Samba密码

    该模块支持普通用户更改密码,而root用户无需知道旧密码即可更改密码。 该模块没有自己的配置选项,但是接受那些修改pam_get_authtok (3)行为的选项。 在指定PAM_MODULE_DIR同时进行PAM_MODULE_DIR 。 在password...

    pam_login.zip_PAM login_PAM login_linux login p_linux pam _linu

    PAM(Pluggable Authentication Modules)是Linux操作系统中一个核心组件,用于管理用户身份验证、授权和服务。在“pam_login.zip”这个压缩包中,我们很可能会找到有关PAM如何处理Linux系统的登录过程的源代码。这...

    一种基于Linux-PAM模块的身份验证方法.pdf

    Linux-PAM(可插拔身份验证模块)是Linux操作系统中的一种身份验证机制,它允许管理员和开发者灵活地管理和配置不同的身份验证策略。PAM的主要目的是解决传统Linux系统中验证功能与应用程序紧密耦合的问题,使得身份...

    linux环境下pam安全模块

    ### Linux环境下PAM安全模块详解 #### 一、PAM相关概念介绍 PAM(Pluggable Authentication ...此外,利用PAM模块还可以实现更多复杂的功能,如多因素认证、审计日志记录等,为Linux系统的安全防护提供了强大的支持。

Global site tag (gtag.js) - Google Analytics