Una nuova VPS è raggiungibile da tutta internet nel momento in cui si avvia. I bot proveranno ad accedere nel giro di minuti, non di giorni. La nostra rete blocca i flood, ma mettere in sicurezza il server spetta a te. Questa checklist richiede circa quindici minuti su Debian o Ubuntu.
1. Aggiorna tutto
apt update && apt full-upgrade -y
reboot
Riavvia anche se sembra che non serva: un nuovo kernel ti protegge solo quando è in esecuzione.
2. Crea un utente con sudo
Lavorare come root significa che ogni errore di battitura gira con pieni poteri. Crea invece un utente personale:
adduser deploy
usermod -aG sudo deploy
3. Accedi con le chiavi SSH
Sul tuo computer, genera una chiave se non ne hai una e copiala sul server:
ssh-keygen -t ed25519 -C "laptop"
ssh-copy-id deploy@ip-del-server
Apri un nuovo terminale e verifica che ssh deploy@ip-del-server funzioni prima di proseguire. Chiudersi fuori è l'errore più comune di questa guida.
4. Disattiva password e login di root
Modifica /etc/ssh/sshd_config (oppure aggiungi un file in /etc/ssh/sshd_config.d/):
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
Poi applica la modifica con systemctl reload ssh.
5. Attiva un firewall
Consenti solo ciò che esponi davvero. Per un tipico web server:
ufw default deny incoming
ufw allow OpenSSH
ufw allow 80,443/tcp
ufw enable
6. Blocca i tentativi ripetuti
fail2ban legge i log e blocca gli IP che continuano a sbagliare il login. Le impostazioni predefinite sono già sensate per SSH:
apt install -y fail2ban
systemctl enable --now fail2ban
7. Applica le patch in automatico
Gli aggiornamenti di sicurezza non devono aspettare che te ne ricordi:
apt install -y unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades
La checklist
| Passo | Fatto quando |
|---|---|
| Aggiornamenti | apt list --upgradable è vuoto |
| Utente sudo | puoi eseguire sudo -v con quell'utente |
| Chiavi SSH | accedi senza password |
| Root disattivato | ssh root@server viene rifiutato |
| Firewall | ufw status elenca solo le tue porte |
| fail2ban | fail2ban-client status sshd mostra la jail |
| Patch automatiche | unattended-upgrades è attivo |
Se qualcosa va storto, la console VNC del pannello di controllo funziona anche quando SSH non risponde. È la tua rete di sicurezza mentre cambi queste impostazioni.
E dopo?
I backup. Un server protetto può comunque perdere dati per un deploy sbagliato o una cartella cancellata. Gli snapshot dal pannello si configurano in un minuto e hanno salvato più weekend di qualsiasi regola del firewall.
