Un SSH esposto su internet riceve migliaia di tentativi al giorno. La checklist, in ordine di impatto:
- solo chiavi, niente password:
PasswordAuthentication no– elimina il brute force alla radice - niente root diretto:
PermitRootLogin no, si entra come utente e si eleva - limita chi può entrare:
AllowUsers/AllowGroups, e se possibile IP allowlist sul firewall - ban automatico dei tentativi ripetuti: fail2ban o equivalenti
- MFA per i casi paranoici, e chiavi con passphrase gestite da un agent
Cambiare porta riduce il rumore nei log ma non è sicurezza. E il passo successivo al singolo server è non esporre SSH affatto: tunnel o bastion con accesso per-identità, in puro spirito Zero Trust.