pam_faillock 是 linux 系统中用于账户锁定策略的 pam 模块,其作用是在用户连续输入错误密码达到设定次数后自动锁定账户,防止暴力破解。它通过记录登录失败次数(deny=n)、设定锁定时间(unlock_time=秒数)及失败间隔(fail_interval=秒数)等参数实现控制逻辑。启用时需编辑如 /etc/pam.d/system-auth 或 /etc/pam.d/sshd 文件,添加包含 preauth、authfail 和 authsucc 的配置项,并注意不同发行版配置结构可能不同。查看和重置失败计数可使用 faillog -a、faillog -u username 及 faillog -r -u username 命令,passwd -u username 在某些情况下无法清除锁定状态。此外,ssh 与本地登录配置可能分离,日志审计和测试验证同样重要,且应结合其他安全措施共同防护系统安全。

Linux系统中,用户登录失败的处理机制是安全防护的重要一环。pam_faillock模块就是用来实现账户锁定策略的关键组件之一。它可以在用户连续输入错误密码后自动锁定账号,防止暴力破解。

pam_faillock.so 是 PAM(Pluggable Authentication Modules)的一部分,用于记录用户的登录失败次数,并在达到设定阈值时阻止进一步的登录尝试。

它的基本逻辑是:
这个模块通常与 /etc/pam.d/sshd 或 /etc/pam.d/system-auth 等配置文件配合使用。

要在系统中启用 pam_faillock,需要编辑对应的 PAM 配置文件。常见的位置包括:
/etc/pam.d/login/etc/pam.d/sshd/etc/pam.d/system-auth以 CentOS/RHEL 系统为例,在 /etc/pam.d/system-auth 文件中添加或修改如下行:
auth required pam_faillock.so preauth auth [default=die] pam_faillock.so authfail auth sufficient pam_faillock.so authsucc
这些配置项的作用分别是:
preauth:在认证前检查是否已被锁定authfail:认证失败时记录一次失败authsucc:认证成功时清除失败记录注意:不同发行版的PAM配置结构略有差异,建议先备份原文件再修改。
你可以在 PAM 配置中为 pam_faillock.so 添加一些参数来定制行为。常用参数如下:
deny=N:允许的最大失败次数,默认为5unlock_time=秒数:账户锁定后自动解锁的时间(单位为秒)fail_interval=秒数:两次失败之间的时间间隔,超过该时间则重新计数authfail 和 authsucc:用于判断是否记录失败或成功例如:
auth required pam_faillock.so preauth deny=3 unlock_time=600
上面这行表示最多允许3次失败,锁定10分钟(600秒)后自动解锁。
当用户被锁定后,可以使用 faillog 命令查看和管理失败记录:
faillog -a
faillog -u username
faillog -r -u username
也可以使用 passwd 命令手动解锁用户:
passwd -u username
但要注意的是,某些情况下 pam_faillock 的锁定状态不会随 passwd -u 自动清除,仍需使用 faillog 才能完全解除。
/etc/pam.d/sshd 和 /etc/pam.d/login 分别控制远程和本地登录的失败处理。/var/log/secure 来追踪登录失败事件。基本上就这些。合理配置 pam_faillock 可以有效增强系统的安全性,虽然不复杂,但细节容易出错,操作前记得确认当前配置并做好备份。
以上就是如何配置Linux用户登录失败处理 pam_faillock模块详解的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号