configurare un nuovo VPS in sicurezza
Proteggi il tuo VPS appena creato. Segui questo runbook di 10 minuti per creare utenti sudo, configurare SSH keys e attivare il firewall in modo rapido.
I primi 10 minuti decidono quanto è sicuro il tuo server
Un VPS appena creato non è sicuro. Dal momento in cui riceve un IP pubblico, gli scanner tentano di effettuare il login; l'immagine predefinita offre loro un bersaglio facile: l'utente root è spesso raggiungibile, le password sono spesso consentite, non c'è un firewall e non ci sono patch programmate. La buona notizia è che chiudere tutte queste falle richiede circa dieci minuti e pochi comandi. Questo è il runbook che eseguo su ogni nuovo server prima di installare qualsiasi cosa.
Segui i passaggi in ordine, poiché ogni step si basa sul precedente. Ogni passaggio ha la propria guida, linkata durante il percorso; questa pagina è la via rapida che li unisce.
Minute 1: Update everything
Accedi come root con le credenziali fornite dal tuo provider e aggiorna completamente il sistema prima di fare altro:
apt update && apt upgrade -yUn sistema non patchato è il bersaglio più facile, quindi questo è il primo passo. Una volta terminato, configura gli aggiornamenti di sicurezza automatici in modo che il sistema rimanga aggiornato senza che tu debba ricordartene.
Minute 2: Create a normal user with sudo
Non continuare a lavorare come root. Crea un utente per te stesso e assegnali i permessi sudo:
adduser matt
usermod -aG sudo mattDa qui effettua il login con questo utente e usa sudo per i compiti di amministrazione. Lavorare sempre come root significa che ogni errore e ogni compromissione avvengono con privilegi illimitati, che è esattamente ciò che lavorare come utente non privilegiato serve a prevenire.
Minute 4: Set up SSH keys
Le password possono essere indovinate; le chiavi no. Sul tuo laptop, se non hai già una chiave, creane una:
ssh-keygen -t ed25519Poi copia la parte pubblica sul server:
ssh-copy-id matt@YOUR_SERVERssh-copy-id richiede che il login tramite password sia attivo per il nuovo utente; se è già disattivato, copia il ~/.ssh/authorized_keys di root in /home/matt/.ssh/authorized_keys (di proprietà di matt), oppure incolla manualmente la tua chiave pubblica in quel file.
Il modello alla base di questo passaggio (una chiave per dispositivo, i permessi che bloccano il login con chiave e la revoca di una chiave persa) è trattato in SSH key management basics.
Disconnettiti e rientra come matt usando la chiave, e conferma che funzioni prima di passare al passaggio successivo. Bloccare SSH prima di poter accedere con una chiave è il modo in cui le persone rimangono escluse dal proprio server.
Minute 6: Turn off root login and passwords
Ora che la tua chiave funziona, chiudi le due porte su cui si affidano gli scanner. Usa un file di drop-in in modo che gli aggiornamenti dei pacchetti non lo sovrascrivano. Nominalo 00- in modo che venga elaborato prima di 50-cloud-init.conf, che le immagini Ubuntu cloud includono con PasswordAuthentication yes; sshd mantiene il primo valore che legge, quindi un file con ordinamento successivo perderebbe le impostazioni:
sudo nano /etc/ssh/sshd_config.d/00-hardening.confPasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin noPoi ricarica SSH:
sudo systemctl restart sshPoi verifica le impostazioni effettivamente utilizzate da sshd, in modo che un file di drop-in errato non possa ingannarti:
sudo sshd -T | grep -Ei 'passwordauthentication|permitrootlogin'Con le password disattivate e il login root rimosso, il traffico costante di brute-force contro il tuo server non può avere successo. La procedura completa, inclusa l'opzione per cambiare porta, si trova in SSH hardening on a VPS.
Minute 8: Turn on the firewall
Blocca tutto il traffico in entrata di default, poi autorizza solo ciò di cui hai bisogno. Autorizza SSH prima di attivare il firewall, altrimenti interromperai la tua connessione:
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enableAggiungi regole allow per qualsiasi servizio che effettivamente gestisci, come 80/tcp e 443/tcp per un sito web. Verifica che siano coperti sia IPv4 che IPv6, perché un firewall che filtra solo IPv4 lascia la parte IPv6 completamente aperta. La guida completa è Firewalls 101 on a VPS.
Minute 10: Slow the scanners with Fail2ban
Infine, aggiungi Fail2ban per espellere gli indirizzi che bombardano le tue porte:
sudo apt install -y fail2banSu Ubuntu 24.04 l'installazione standard protegge SSH fin dal primo avvio. Con le chiavi già richieste, questo è un supporto che riduce il rumore nei log e blocca i trasgressori ripetuti, piuttosto che essere la tua difesa principale.
Your checklist
Questo è il runbook. Usa il generatore qui sotto per segnare ogni controllo e produrre una checklist personalizzata da conservare con il server, inclusi i comandi esatti per ogni passaggio:
Eseguilo una volta per ogni nuovo server e diventerà memoria muscolare. Dieci minuti ora ti risparmiano il pessimo pomeriggio che segue il compromesso di un server.
Una volta posizionate le basi, automatic security updates on Ubuntu mantengono il server aggiornato senza che tu debba rientrare.
FAQ
What should I do first on a new VPS?
Aggiorna il sistema con apt update && apt upgrade -y, poi crea un utente normale con sudo e smetti di lavorare come root. Da lì, configura le chiavi SSH, disabilita il login root e l'autenticazione tramite password, abilita un firewall con policy default-deny e installa Fail2ban. Eseguirli in questo ordine garantisce che ogni passaggio sia sicuro senza rischiare di rimanere bloccati fuori dal server.
How do I avoid locking myself out while hardening SSH?
Configura e testa il login con chiave SSH prima di disabilitare le password o root. Disconnettiti e rientra con la chiave per confermare che funzioni, e solo allora disattiva PasswordAuthentication e PermitRootLogin. Quando attivi il firewall, autorizza la porta 22 prima di eseguire ufw enable. Se rimani bloccato fuori, la console web del tuo provider ti permette di rientrare senza SSH.
Do I really need all of these on a small server?
Sì, perché gli scanner non si curano di quanto sia piccolo il tuo server. Tentano ogni IP pubblico allo stesso modo. L'intero runbook richiede circa dieci minuti e rimuove i percorsi facili: niente login root, niente tentativi di indovinare la password, nulla di esposto che non sia stato scelto da te e bug noti patchati automaticamente.
What is the single most important step?
SSH con solo chiavi e login root disabilitato. La maggior parte degli attacchi su un VPS nuovo sono tentativi automatizzati di indovinare la password per l'utente root; disattivare entrambi rende impossibile questa intera categoria di attacco. Il firewall e Fail2ban limitano ciò che è esposto e rallentano qualsiasi cosa rimanga.
How do I confirm the server is actually locked down?
Verifica tre cose manualmente prima di fidarti. Esegui sudo ss -tlnp e conferma che solo le porte che intendevi aprire siano in ascolto su un indirizzo pubblico, senza alcun servizio 0.0.0.0 o [::] dimenticato. Esegui sudo ufw status verbose e conferma che la policy predefinita in entrata sia deny e che siano presenti sia le regole standard che quelle (v6). E apri sempre una seconda sessione SSH prima di chiudere la prima, in modo che un errore nella configurazione SSH non ti blocchi fuori dal server. Se tutto questo è corretto, le basi sono posizionate.