Prova a guardare il file /var/log/auth.log di un server appena messo online, o l’output di journalctl -u ssh. Dopo pochi minuti trovi già i primi tentativi: utenti come root, admin, test, provati con elenchi di password comuni. In un giorno diventano migliaia. Sono bot, non persone, e non cercano te: cercano chiunque abbia lasciato la porta socchiusa.
Per rendere inutile tutto quel lavoro bastano poche impostazioni. La prima è smettere di usare le password. Genera sul tuo computer una coppia di chiavi, preferibilmente Ed25519, proteggi la privata con una passphrase e copia la pubblica sul server con ssh-copy-id. Quando hai verificato che l’accesso con chiave funziona, modifica /etc/ssh/sshd_config:
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no
Mentre lo fai tieni aperta una sessione e prova il nuovo accesso da un secondo terminale: è il modo più semplice per non chiuderti fuori dal tuo stesso server.
Chi entra, e quante volte può sbagliare
Con root disattivato accedi con un utente personale e usi sudo per le operazioni amministrative, così ogni azione resta tracciata a nome di chi l’ha fatta. AllowUsers o AllowGroups restringono ulteriormente chi può collegarsi. Poi limita i tentativi: fail2ban legge i log e blocca per un periodo gli indirizzi che sbagliano troppo, mentre valori bassi di MaxAuthTries e LoginGraceTime riducono il tempo concesso a ciascuno. Se puoi, consenti SSH dal firewall solo dagli IP dell’ufficio o tramite VPN.
La porta 2222 non è una serratura
Spostare SSH dalla 22 a un’altra porta pulisce i log, e già questo ha un valore. Ma le scansioni la trovano comunque: va bene come aggiunta, mai al posto delle chiavi. Molto più utile tenere aggiornato OpenSSH insieme al resto del sistema; su Debian e Ubuntu unattended-upgrades installa da solo gli aggiornamenti di sicurezza.
Un’ultima abitudine, quella che si dimentica più spesso: apri ogni tanto il file authorized_keys e chiediti se tutte quelle chiavi appartengono a persone che devono ancora entrare.



