Perché conta
login, sshd, sudo, su, lo screen lock: tutti devono autenticare un utente, ma nessuno di loro
implementa l’autenticazione. La delegano a PAM (Pluggable Authentication Modules). Questo significa
che puoi cambiare come il sistema autentica — imporre password robuste, bloccare dopo troppi
tentativi, aggiungere un secondo fattore — modificando PAM una volta, e la regola vale per tutti i
programmi insieme. È il punto di controllo centrale dell’autenticazione.
Come è fatto uno stack PAM
I file stanno in /etc/pam.d/, uno per servizio (sshd, login, sudo, common-* su Debian,
system-auth su RHEL). Ogni riga è: tipo controllo modulo argomenti.
|
|
Il controllo decide il peso di ogni modulo: required (deve passare, ma continua), requisite
(deve passare, altrimenti stop), sufficient (se passa, basta), optional. L’ordine conta: gli stack
si leggono dall’alto in basso.
Password robuste con pwquality
Il modulo pam_pwquality impone requisiti alle nuove password (lunghezza, classi di caratteri, non
basate su parole del dizionario).
|
|
La logica moderna: lunghezza > complessità. Una passphrase lunga batte una password corta e contorta, ed è più facile da ricordare (quindi non finisce su un post-it).
Bloccare i bruteforce locali con faillock
pam_faillock blocca un account dopo N tentativi falliti — difesa contro il bruteforce di login,
su, console.
|
|
|
|
Limiti di sessione
pam_limits (via /etc/security/limits.conf) impone tetti alle risorse per utente — una difesa contro
esaurimento di risorse e fork bomb.
|
|
Secondo fattore (cenno)
PAM è anche dove si innesta la 2FA: pam_google_authenticator aggiunge un codice TOTP allo stack
auth di sshd, così entrare richiede chiave + codice. È il modo di combinare l’SSH a
chiave con un secondo fattore.
La regola d’oro: non chiuderti fuori
Un errore nello stack auth può impedire qualsiasi login, incluso root. Testa sempre in una sessione
nuova tenendone una aperta, e sappi dove sono i backup dei file PAM.
|
|
Conclusione
PAM è il punto unico da cui governare qualità password, blocco dopo i fallimenti, limiti di sessione e secondo fattore — cambi lì, vale per tutti. Chiusi gli accessi (account, permessi, sudo, SSH, PAM), l’attenzione si sposta su ciò che gira sul sistema: i servizi. E in Linux moderno i servizi sono gestiti da systemd — servizi e unit, prossimo capitolo.