发布于2026-08-16 阅读(0)
扫一扫,手机访问
账户锁定策略由pam_faillock.so控制,CentOS 7默认推荐使用该模块;pam_tally2.so已被弃用,两者不可混用,否则导致策略失效或冲突。

CentOS 7 默认推荐用 pam_faillock.so,但很多旧文档和脚本仍沿用 pam_tally2.so。两者不能混用,否则策略失效或冲突。
相比之下,pam_faillock.so 属于更新一代、也更稳妥的方案:它支持独立保存失败计数,位置在 /var/run/faillock/,而且无论是 SSH 登录还是本地登录,都能按统一规则生效。pam_tally2.so 则依赖 /var/log/tallylog;更麻烦的是,在某些 PAM 配置顺序下,它对 SSH 可能根本不起作用,除非额外显式修改 /etc/pam.d/sshd。
如果你刚装的 CentOS 7(≥7.4)且没动过 PAM,优先用 pam_faillock.so;若已有 pam_tally2.so 规则且运行正常,不建议强行切换。
锁定策略需同时写入 auth 和 account 段,且顺序关键:失败计数必须在认证前触发,解锁检查必须在认证后验证。
/etc/pam.d/system-auth 文件顶部(必须在第一行附近)插入以下三行:auth [default=ignore] pam_faillock.so preauth silent deny=5 unlock_time=180 fail_interval=900 auth [default=die] pam_faillock.so authfail deny=5 unlock_time=180 fail_interval=900 account required pam_faillock.so
说明:
deny=5:连续 5 次失败即锁定unlock_time=180:普通用户 180 秒后自动解锁fail_interval=900:只统计最近 15 分钟内的失败次数(避免长期累积误判)authfail 行必须紧跟在 preauth 行之后,中间不能插入其他 auth 规则even_deny_root 参数到两行末尾/etc/pam.d/system-auth 的改动默认对 SSH 无效——因为 SSH 走的是自己的 PAM 链,不 include system-auth 的 auth 段(只 include account 和 password 段)。
所以必须单独配置 /etc/pam.d/sshd:
/etc/pam.d/sshd 文件最开头插入与上面完全相同的三行(auth 两行 + account 一行)systemctl restart sshd 生效faillock --user xxx 显示 Failures: 5策略写了却没反应,大概率是这几处踩坑:
auth [success=1 default=ignore] pam_unix.so 后面,会导致 preauth 被跳过unlock_time 写成 unlock-time 或漏掉等号,PAM 直接忽略整行sshd 配置后忘了 systemctl restart sshdfaillock --user username --reset 清零再测真正起作用的是 faillock 命令输出和 /var/run/faillock/ 下的文件,不是日志里有没有“pam_faillock”字样。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9