0

0

如何在Linux中设置密码策略 Linux pam_pwquality配置

P粉602998670

P粉602998670

发布时间:2025-09-06 13:14:02

|

958人浏览过

|

来源于php中文网

原创

设置Linux密码策略需配置pam_pwquality模块,通过修改/etc/pam.d/common-password文件,设置retry、minlen、minclass、difok等参数强制密码复杂度,并结合chage命令或pwscore脚本强制用户更新合规密码,同时可启用pam_tally2、pam_faillock等模块增强账户安全。

如何在linux中设置密码策略 linux pam_pwquality配置

设置Linux密码策略的核心在于提升系统安全性,防止弱密码带来的风险。这主要通过配置

pam_pwquality
模块来实现,它能强制用户设置符合一定复杂度的密码。

解决方案

  1. 安装必要的软件包: 确保系统中安装了

    libpwquality
    pam_pwquality
    。大多数Linux发行版默认安装了这些包,但如果未安装,可以使用包管理器进行安装。例如,在Debian/Ubuntu系统中,可以使用
    sudo apt-get install libpwquality pam_pwquality
    命令。

  2. 编辑PAM配置文件:

    pam_pwquality
    的配置位于
    /etc/pam.d/common-password
    文件中。使用文本编辑器(如
    nano
    vim
    )打开该文件,并找到包含
    pam_unix.so
    的行。

    sudo nano /etc/pam.d/common-password
  3. 添加或修改

    pam_pwquality.so
    配置:
    pam_unix.so
    行之前添加或修改
    pam_pwquality.so
    的配置。以下是一些常用的配置选项:

    • retry=N
      : 用户密码设置失败后,允许尝试的次数。例如,
      retry=3
      表示允许尝试3次。
    • minlen=N
      : 密码的最小长度。例如,
      minlen=12
      表示密码至少需要12个字符。
    • minclass=N
      : 密码中必须包含的字符类别数(例如,大写字母、小写字母、数字、特殊字符)。例如,
      minclass=3
      表示密码至少包含3种不同类型的字符。
    • dcredit=-N
      : 减少数字字符对密码强度的贡献。例如,
      dcredit=-1
      表示数字字符对密码强度的贡献降低1。
    • ucredit=-N
      : 减少大写字母对密码强度的贡献。
    • lcredit=-N
      : 减少小写字母对密码强度的贡献。
    • ocredit=-N
      : 减少特殊字符对密码强度的贡献。
    • difok=N
      : 新密码与旧密码相比,至少需要改变的字符数。例如,
      difok=5
      表示新密码与旧密码相比,至少需要改变5个字符。
    • enforce_for_root
      : 将密码策略强制应用于root用户。
    • user_unknown_ok
      : 如果用户不存在,则允许密码更改。

    一个典型的配置示例:

    password requisite pam_pwquality.so retry=3 minlen=12 minclass=3 difok=5

    这个配置表示密码至少需要12个字符,包含至少3种不同类型的字符,并且与旧密码相比至少需要改变5个字符,允许尝试3次。

  4. 保存并关闭文件: 保存对

    /etc/pam.d/common-password
    文件的更改,并关闭编辑器。

  5. 测试配置: 尝试更改用户密码,以验证配置是否生效。如果密码不符合策略要求,系统会提示错误信息。

如何理解
pam_pwquality
模块的参数含义,以便更好地自定义密码策略?

理解

pam_pwquality
模块的参数是定制有效密码策略的关键。
minlen
控制密码的整体长度,直接影响破解难度。
minclass
则关注密码的复杂性,强制用户使用多种字符类型,增加破解难度。
difok
防止用户简单地重复使用旧密码,确保密码的演进。
retry
参数在用户体验和安全性之间做平衡,给予用户几次尝试机会,同时避免暴力破解。
dcredit
,
ucredit
,
lcredit
,
ocredit
允许你细粒度地调整不同字符类型对密码强度的影响,例如,如果你的应用环境对数字字符的安全性有较高要求,可以适当降低
dcredit
的值。
enforce_for_root
是一个重要的安全选项,确保root用户也遵循相同的密码策略,避免系统出现安全漏洞。配置时,应结合实际应用场景和安全需求,选择合适的参数值。

修改密码策略后,如何确保现有用户密码符合新的策略?

修改密码策略后,现有用户的密码可能不符合新的要求。要确保所有用户都符合新策略,可以采取以下步骤:

  1. 强制用户更改密码: 可以使用

    chage
    命令强制用户在下次登录时更改密码。例如,
    sudo chage -d 0 username
    会将指定用户的密码过期日期设置为0,迫使其在下次登录时更改密码。

  2. 编写脚本检测密码强度: 可以编写一个脚本,使用

    pwscore
    命令(
    libpwquality
    包提供)检测现有用户密码的强度。如果密码强度低于新策略的要求,则强制用户更改密码。

    #!/bin/bash
    # 检测用户密码强度的脚本
    for user in $(cut -d: -f1 /etc/passwd); do
      pwscore=$(sudo pwscore $user)
      if [ $pwscore -lt 密码强度阈值 ]; then
        echo "用户 $user 密码强度不足,请更改密码。"
        sudo chage -d 0 $user
      fi
    done

    密码强度阈值
    替换为根据你的
    pam_pwquality
    配置计算出的适当值。例如,如果
    minlen=12
    minclass=3
    ,则可以将阈值设置为一个相对较高的值,以确保密码符合要求。

    易森网络企业版
    易森网络企业版

    如果您是新用户,请直接将本程序的所有文件上传在任一文件夹下,Rewrite 目录下放置了伪静态规则和筛选器,可将规则添加进IIS,即可正常使用,不用进行任何设置;(可修改图片等)默认的管理员用户名、密码和验证码都是:yeesen系统默认关闭,请上传后登陆后台点击“核心管理”里操作如下:进入“配置管理”中的&ld

    下载
  3. 使用密码策略管理工具 一些第三方密码策略管理工具可以帮助你批量管理用户密码,并强制用户遵守新的密码策略。

  4. 定期审查密码策略: 密码策略不是一成不变的,应定期审查和更新密码策略,以应对新的安全威胁。

除了
pam_pwquality
,还有哪些PAM模块可以增强Linux系统的安全性?

除了

pam_pwquality
,还有许多PAM模块可以增强Linux系统的安全性。

  • pam_tally2
    : 用于锁定尝试多次登录失败的帐户,防止暴力破解攻击。可以配置锁定时间和尝试次数。

  • pam_faillock
    : 类似于
    pam_tally2
    ,但提供了更细粒度的控制,例如可以针对不同的服务配置不同的锁定策略。

  • pam_google_authenticator
    : 实现双因素身份验证,增加登录安全性。需要用户使用Google Authenticator应用生成验证码。

  • pam_radius_auth
    : 使用RADIUS服务器进行身份验证,适用于集中式身份验证管理。

  • pam_access
    : 基于用户、组、主机或网络限制访问权限。

  • pam_limits
    : 限制用户使用的系统资源,例如CPU时间、内存等,防止恶意用户耗尽系统资源。

  • pam_sepermit
    : 与SELinux集成,允许用户在SELinux上下文中获得权限。

选择合适的PAM模块,并根据实际需求进行配置,可以显著提高Linux系统的安全性。配置PAM模块时,务必仔细阅读文档,并进行充分测试,以避免出现意外问题。

相关专题

更多
vim保存退出命令
vim保存退出命令

vim是一个非常强大的文本编辑器,常用于Unix和Linux系统。它是从vi发展而来的,相比vi有许多改进和扩展。在vim中,保存并退出的命令是:wq"wq"这个命令是由两个部分组成的。其中,"w"表示写入文件,将所做的更改保存到磁盘;而"q"表示退出vim编辑器。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

266

2023.08.01

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1353

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

704

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

294

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

777

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

573

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

547

2023.07.20

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

300

2023.07.20

c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

24

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.7万人学习

Git 教程
Git 教程

共21课时 | 2.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号