关于满足统一失败追踪与RADIUS优先认证的PAM配置咨询
满足需求的PAM配置方案
修改后的完整配置
auth required pam_env.so auth required pam_faillock.so preauth audit even_deny_root deny=4 unlock_time=300 auth [success=1 default=ignore] pam_succeed_if.so quiet user in root auth [success=done authinfo_unavail=ignore user_unknown=ignore default=1] pam_tacplus.so conf=/var/opt/tms/output/pam_tacplus_server.conf try_first_pass service=silverpeak protocol=ip auth sufficient pam_unix.so nullok nodelay try_first_pass auth required pam_faillock.so authfail audit deny=4 unlock_time=300 auth required pam_deny.so
配置逻辑说明(对应你的两个需求)
1. 统一失败追踪(覆盖RADIUS+本地认证失败)
- 将
pam_faillock.so preauth移至RADIUS模块前,确保所有登录请求先经过失败锁定预检查,若账户累计失败达阈值直接拒绝。 - RADIUS认证失败(如密码错误)时,触发
default=1规则,跳过本地认证模块,直接执行pam_faillock.so authfail累计失败次数,最后由pam_deny.so拒绝登录。 - 本地认证失败时,
pam_unix.so认证不通过,流程自动走到pam_faillock.so authfail统计失败次数,再触发拒绝。 - 两种认证方式的失败都会被统计,累计4次后锁定账户5分钟(
unlock_time=300)。
2. RADIUS可用时禁止本地fallback
- RADIUS模块的控制标志精准控制流程:
success=done:RADIUS认证成功时,直接结束流程,不触发本地认证。authinfo_unavail=ignore:仅当RADIUS服务器不可达/无响应时,跳过该模块,继续尝试本地认证。default=1:RADIUS服务器可达但返回认证失败(如密码错误),跳过本地认证模块,直接进入失败统计和拒绝流程,完全避免fallback。
注意事项
- 保持
pam_faillock的参数一致(deny=4、unlock_time=300),避免统计逻辑混乱。 - 测试两种核心场景:RADIUS可达但认证失败时,确认不会触发本地认证;RADIUS不可达时,确认正常fallback到本地。
- 原配置中root用户会跳过RADIUS直接使用本地认证,若需要root也走RADIUS流程,可删除
pam_succeed_if模块或调整其规则。
内容的提问来源于stack exchange,提问作者Harshavardhan Patnayukuni
相关产品推荐
相关产品推荐

