Linux PAM(Pluggable Authentication Modules,可插拔认证模块)是Linux系统中用于集中管理身份认证的模块化框架。它允许系统管理员灵活配置应用程序的认证方式,而无需修改程序代码。
模块化设计:
pam_unix
(密码校验)、pam_google_authenticator
(双因素认证)。分层控制:
配置文件:
/etc/pam.d/
目录中(如/etc/pam.d/sshd
对应SSH服务)。模块类型 控制标志 模块路径 [参数]
。# /etc/pam.d/sshd 的部分内容
auth required pam_unix.so try_first_pass
account required pam_unix.so
password required pam_cracklib.so minlen=8
session optional pam_motd.so
required
:必须成功,但失败后仍会继续执行其他模块。sufficient
:成功则立即通过,失败不影响最终结果。强化安全:
pam_cracklib
)。pam_tally2
防止暴力破解)。pam_ldap
)。多因素认证:
auth required pam_google_authenticator.so
资源限制:
pam_limits.so
限制用户进程数、内存等(通过/etc/security/limits.conf
)。bash
tail -f /var/log/secure # RHEL/CentOS
tail -f /var/log/auth.log # Debian/Ubuntu
bash
pam_test -service sshd -user yourusername
路径 | 作用 |
---|---|
/etc/pam.d/ |
各服务的PAM配置文件 |
/lib/security/ 或 /lib64/security/ |
PAM模块存储位置 |
/etc/security/limits.conf |
系统资源限制配置 |
PAM是Linux认证的“中枢神经系统”,通过灵活组合模块实现: - 统一管理:所有服务共享同一套认证机制。 - 动态扩展:无需重启服务即可修改认证策略。 - 安全增强:支持现代认证技术(如生物识别、硬件令牌)。
遇到认证问题时,优先检查/etc/pam.d/
下对应服务的配置及系统日志。