Linux密码策略如何修改?

密码策略是系统安全的核心防线,在Linux中,通过PAM(可插拔认证模块)和配置文件实现密码规则管理,以下是详细操作步骤:


修改密码复杂度要求

适用文件/etc/security/pwquality.conf/etc/pam.d/system-auth
步骤

  1. 安装复杂度工具(如未预装):

    # Debian/Ubuntu
    sudo apt install libpam-pwquality
    # RHEL/CentOS
    sudo yum install libpwquality
  2. 编辑配置文件:

    sudo nano /etc/security/pwquality.conf

    修改关键参数:

    minlen = 10     # 密码最小长度
    minclass = 3    # 至少包含3类字符(数字/大写/小写/符号)
    dcredit = -1    # 至少1个数字
    ucredit = -1    # 至少1个大写字母
    lcredit = -1    # 至少1个小写字母
    ocredit = -1    # 至少1个特殊符号
  3. 生效配置:
    保存后立即生效,新密码创建时自动应用规则。


设置密码有效期

配置文件/etc/login.defs
步骤

  1. 编辑全局策略:

    sudo nano /etc/login.defs

    修改以下参数:

    PASS_MAX_DAYS 90   # 密码最长有效期
    PASS_MIN_DAYS 7    # 密码修改间隔
    PASS_WARN_AGE 14   # 过期前提醒天数
  2. 应用到现有用户

    sudo chage -M 90 -m 7 -W 14 用户名

密码历史与重复使用限制

配置文件/etc/pam.d/common-password (Debian) 或 /etc/pam.d/system-auth (RHEL)
步骤
在PAM配置中添加:

password required pam_unix.so remember=5 use_authtok sha512 shadow

remember=5 表示禁止使用最近5次用过的密码。


账户锁定策略(防暴力破解)

配置文件/etc/pam.d/common-auth/etc/pam.d/system-auth
步骤
添加以下行(示例:5次失败锁定10分钟):

auth required pam_faillock.so preauth silent audit deny=5 unlock_time=600
auth [default=die] pam_faillock.so authfail audit deny=5

策略验证与测试

  1. 检查用户密码策略:
    sudo chage -l 用户名  # 查看有效期
  2. 测试复杂度规则:
    echo "新密码" | sudo pwscore  # 返回强度分数
  3. 模拟登录失败:
    sudo pam_tally2 --user=用户名  # 查看失败次数

发行版差异说明

功能 Debian/Ubuntu RHEL/CentOS
密码复杂度配置 /etc/pam.d/common-password /etc/security/pwquality.conf
PAM模块名称 pam_pwquality.so pam_pwquality.so
账户锁定工具 pam_tally2 faillock

安全建议

  1. 定期更新策略:每6个月审查一次密码规则
  2. 特权账户强化:对root用户设置更短的有效期(如30天)
  3. 日志监控:定期检查/var/log/auth.log(Debian)或/var/log/secure(RHEL)
  4. 避免频繁锁定:生产环境中谨慎设置deny=值,防止误锁

重要提示:修改策略前备份配置文件!误操作可能导致所有用户无法登录:

sudo cp /etc/pam.d/common-password ~/backup_common-password

Linux密码策略通过多层配置实现:

  1. 复杂度控制pwquality.conf 定义字符要求
  2. 生命周期管理login.defs + chage 命令
  3. 历史记录:PAM的remember参数
  4. 防暴力破解pam_faillock 模块

定期审计策略有效性是维护系统安全的关键,企业环境建议结合LDAP或FreeIPA集中管理密码策略。

引用说明基于Linux man-pages (pwquality.conf(5), pam_pwquality(8))、Red Hat官方文档及Ubuntu安全指南,测试环境为Ubuntu 22.04 LTS和CentOS 7.9,操作前请确认您的发行版版本,部分参数路径可能略有差异。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4378.html

(0)
酷番叔酷番叔
上一篇 2025年6月13日 13:37
下一篇 2025年6月13日 13:55

相关推荐

  • 如何往Linux虚拟机传文件?有哪些常用方法和步骤?

    在Linux虚拟机的日常使用中,向虚拟机内传输文件是常见需求,无论是配置文件、数据集还是开发工具,都需要高效、安全的方式完成传输,根据虚拟机与宿主机的连接方式、文件大小、安全需求等不同场景,可选择多种传输方法,本文将详细介绍几种主流的文件传输方式,包括原理、操作步骤及注意事项,帮助用户根据实际情况选择最适合的方……

    2025年8月24日
    6700
  • Linux如何判断空文件?多种方法详解

    使用 ls 命令查看文件大小ls -l 文件名结果解读:若输出中文件大小为 0(如 -rw-r–r– 1 user group 0 Jan 1 12:00 file.txt),则文件为空,优点:简单直观,可同时查看多个文件,缺点:需人工观察大小值,不适合脚本自动化,使用 wc 命令统计字符数wc -c 文件……

    2025年8月8日
    7100
  • Linux下如何打开浏览器?命令行与图形界面方法详解?

    在Linux系统中打开浏览器的方式多种多样,无论是通过图形界面点击图标,还是通过命令行快速启动,用户可以根据自身需求和系统环境选择合适的方法,Linux的灵活性和多样性使得不同发行版、不同桌面环境下打开浏览器的操作略有差异,但核心逻辑相通,本文将详细介绍Linux系统下打开浏览器的各种方法,包括图形界面操作、命……

    2025年9月22日
    4600
  • Linux如何查看驱动程序信息?

    查看已加载的驱动模块驱动在Linux中通常以内核模块(.ko文件)形式存在,以下命令可查看当前加载的模块:lsmod 命令直接列出所有已加载模块,显示模块名、大小及依赖关系:lsmod输出示例:Module Size Used bynvidia 35323904 203i915 2457600 5usb_sto……

    2025年8月3日
    5900
  • Linux定时任务怎么查看?,运维如何检查定时任务?,查看Linux计划任务方法?,定时任务权限不足怎么办?,如何查看系统定时任务?

    查看Cron定时任务Cron是Linux最常用的定时任务工具,分为用户级和系统级任务:当前用户的Cron任务执行命令查看自己的任务列表:crontab -l若提示no crontab for user,表示该用户无定时任务,其他用户的Cron任务(需root权限)通过-u指定用户名查看:sudo crontab……

    2025年6月20日
    6900

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信