马伯庸 2025-08-27 19:35 采纳率: 98.5%
浏览 1
已采纳

如何配置PAM使麒麟系统root不锁定?

**如何配置PAM使麒麟系统root不锁定?** 在麒麟操作系统中,为防止root账户因多次登录失败被PAM模块锁定,需调整`/etc/pam.d/system-auth`和`/etc/pam.d/password-auth`文件中的`auth`段`pam_faillock.so`配置。可通过注释或移除相关行禁用锁定功能,或设置`unlock_time`参数实现自动解锁。修改后执行`faillock --user root --reset`重置锁定状态。操作需谨慎,确保不影响系统安全策略。
  • 写回答

1条回答 默认 最新

  • 马迪姐 2025-08-27 19:35
    关注

    一、问题背景与PAM机制概述

    麒麟操作系统基于Linux内核,其账户安全机制依赖于PAM(Pluggable Authentication Modules)模块。PAM提供了灵活的认证机制,其中pam_faillock.so模块用于防止暴力破解,通过记录失败登录次数来锁定账户。

    默认情况下,root账户在多次登录失败后会被锁定,这虽然提高了安全性,但也可能带来运维上的不便,尤其是在自动化脚本或误操作频繁的场景中。

    本文将从基础配置、模块原理、配置修改方式、安全影响等多个层面,深入讲解如何配置PAM以防止root账户被锁定。

    二、PAM中pam_faillock.so模块详解

    pam_faillock.so模块通常位于/etc/pam.d/system-auth/etc/pam.d/password-auth文件中,属于PAM的auth段。其主要参数如下:

    • preauth:在认证前检查失败次数。
    • authfail:在认证失败时记录。
    • even_deny_root:即使root账户也会被锁定。
    • unlock_time:设置自动解锁时间(单位为秒)。
    • deny:设置允许失败的次数。

    三、麒麟系统中root账户锁定问题的分析

    当root账户因多次失败登录被锁定后,可以通过以下命令查看状态:

    faillock --user root

    输出示例:

    root:
        When                Type  Source IP/User       Valid
        2025-04-05 10:30:00 ssh   192.168.1.100        yes
        2025-04-05 10:31:00 ssh   192.168.1.100        yes
        2025-04-05 10:32:00 ssh   192.168.1.100        yes

    若显示多次失败记录,则说明root账户已因PAM配置被锁定。

    四、修改PAM配置以防止root账户锁定

    修改以下两个关键文件:

    1. /etc/pam.d/system-auth
    2. /etc/pam.d/password-auth

    auth段中找到包含pam_faillock.so的行,例如:

    auth required pam_faillock.so preauth even_deny_root deny=5 unlock_time=900

    可采取以下方式修改:

    • 注释该行以禁用锁定功能:
    • # auth required pam_faillock.so preauth even_deny_root deny=5 unlock_time=900
    • 或修改参数以允许root自动解锁:
    • auth required pam_faillock.so preauth even_deny_root deny=5 unlock_time=300

    五、操作后验证与重置root锁定状态

    修改配置后,执行以下命令重置root账户的锁定状态:

    faillock --user root --reset

    再次执行查看命令:

    faillock --user root

    应显示为空,表示root账户已解锁。

    六、安全影响与建议

    虽然禁用或调整root锁定机制可以提升运维便利性,但也可能带来潜在的安全风险。建议:

    • 仅在受控环境中禁用root锁定。
    • 启用SSH密钥认证,减少密码登录。
    • 定期审计登录日志,如/var/log/secure
    • 结合防火墙限制SSH访问来源IP。

    下图展示麒麟系统中PAM模块调用流程:

    graph TD A[Login Attempt] --> B{PAM auth段} B --> C[pam_faillock.so] C -->|失败次数超限| D[Account Locked] C -->|未超限| E[继续认证] B --> F[pam_unix.so] F -->|成功| G[登录成功] F -->|失败| H[记录失败]
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 10月23日
  • 创建了问题 8月27日