Framework Linux d'authentification modulaire utilisé par login, sshd, sudo.
PAM (Pluggable Authentication Modules) est le framework d'authentification Linux/UNIX modulaire utilisé par applications comme login, sshd, sudo, su, passwd, gdm. Permet aux administrateurs de personnaliser le processus d'authentification sans modifier le code des applications, via stack de modules configurés par service.
Fichiers configuration : /etc/pam.d/<service> (sshd, login, sudo, passwd, etc.) plus /etc/pam.d/common-* sur Debian-based.
Format ligne : `<type> <control> <module> <arguments>`
- **Type** : auth (authentication), account (account management), password (password updates), session (session setup/cleanup).
- **Control** : required, requisite, sufficient, optional, [success=N default=...].
- **Module** : pam_unix.so (UNIX passwords /etc/shadow), pam_ldap.so (LDAP), pam_sss.so (SSSD vers AD/IPA), pam_google_authenticator.so (TOTP 2FA), pam_yubico.so (YubiKey), pam_faillock.so (lockout), pam_pwquality.so (password complexity), pam_tally2.so (legacy lockout), pam_limits.so (ulimits), pam_env.so (env vars).
Use cases : (1) **2FA SSH** — pam_google_authenticator dans /etc/pam.d/sshd + sshd_config ChallengeResponseAuthentication yes ; (2) **AD/LDAP login** — pam_sss avec SSSD ; (3) **Account lockout** — pam_faillock après N échecs ; (4) **Password complexity** — pam_pwquality (minlen, dcredit, ucredit, lcredit, ocredit) ; (5) **Per-user resource limits** — pam_limits + /etc/security/limits.conf ; (6) **Audit logging** — pam_tty_audit.
Debugging : `pam_listfile` debugging, `aureport --auth` (avec auditd), test avec specific service. Modifications risky — backup avant changes, test dans VM/container, garder root session ouverte fallback. Compétences RHCSA, Security+.
200+ certifications, 400 000+ questions, examens blancs chronométrés.
Voir le catalogue →