Come configurare un VPS da zero: guida passo passo
I passaggi per mettere in sicurezza e configurare un VPS appena creato: utente, SSH, firewall, aggiornamenti, backup e monitoraggio di base.
Un VPS appena creato è una macchina esposta su internet con configurazione predefinita, accesso root attivo e password. I tentativi di accesso automatici iniziano nel giro di minuti dall'accensione — non è un modo di dire, si vede nei log. In questo articolo trovi i passaggi per metterlo in sicurezza e renderlo utilizzabile, in circa mezz'ora.
I comandi sono per Debian/Ubuntu, la famiglia più diffusa sui VPS. Su altre distribuzioni cambia il gestore di pacchetti, la logica resta identica.
1. Primo accesso e aggiornamento
Ti colleghi con le credenziali che ti ha dato il provider:
ssh root@indirizzo-ip
La prima cosa, sempre:
apt update && apt upgrade -y
Un sistema appena installato è quasi sempre già indietro di settimane di aggiornamenti di sicurezza.
2. Crea un utente normale
Lavorare come root è pericoloso: ogni comando sbagliato ha conseguenze massime.
adduser edoardo
usermod -aG sudo edoardo
Il secondo comando gli dà la possibilità di usare sudo quando serve.
Verifica che funzioni prima di procedere — da un altro terminale, senza chiudere quello attuale:
ssh edoardo@indirizzo-ip
sudo whoami # deve rispondere: root
Non chiudere mai la sessione root finché non hai verificato di poter entrare con il nuovo utente. È la precauzione che evita di restare chiusi fuori dalla propria macchina — e capita più spesso di quanto si creda.
3. Chiavi SSH e disattivazione password
Il passaggio che elimina in un colpo l'intera categoria degli attacchi a tentativi ripetuti.
Dal tuo computer:
ssh-copy-id edoardo@indirizzo-ip
Verifica di entrare senza password, poi sul server modifica /etc/ssh/sshd_config:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
E riavvia il servizio:
sudo systemctl restart ssh
Ancora una volta: verifica da un secondo terminale prima di chiudere quello aperto. Se hai sbagliato qualcosa, con la sessione ancora attiva puoi correggere; altrimenti l'unico accesso resta la console web del provider.
Il dettaglio sulle chiavi è in chiavi SSH: guida completa.
Opzionale ma utile: cambiare la porta SSH dalla 22 a un'altra non è vera sicurezza, ma riduce enormemente il rumore nei log. Se lo fai, apri la nuova porta nel firewall prima di riavviare il servizio.
4. Firewall
Si apre solo ciò che serve, tutto il resto è chiuso.
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH # o la porta che hai scelto
sudo ufw allow 80/tcp # HTTP, se serve
sudo ufw allow 443/tcp # HTTPS, se serve
sudo ufw enable
sudo ufw status
L'errore da evitare: attivare il firewall senza aver permesso SSH. Ti disconnette e non rientri più. Il comando allow OpenSSH va prima di enable, sempre.
Non aprire la porta del database. Un database raggiungibile da internet è uno dei modi più comuni in cui i dati finiscono rubati. Se ti serve accedervi da fuori, si usa un tunnel SSH — vedi cos'è SSH.
5. Protezione dai tentativi ripetuti
sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban
Blocca automaticamente gli indirizzi che falliscono troppi accessi. Con SSH già protetto da chiavi il rischio è basso, ma vale per tutti gli altri servizi che esporrai.
6. Aggiornamenti automatici di sicurezza
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades
È uno dei passaggi con il miglior rapporto tra sforzo e beneficio. Un server non aggiornato diventa vulnerabile in poche settimane, e nessuno si ricorda di farlo a mano.
Imposta gli aggiornamenti di sicurezza, non tutti: un aggiornamento maggiore applicato automaticamente di notte può rompere un servizio.
7. Fuso orario e swap
sudo timedatectl set-timezone Europe/Rome
Sembra un dettaglio, ma i log con l'ora sbagliata rendono difficile correlare gli eventi.
Lo swap serve se hai poca memoria — su VPS da 1-2 GB evita che un processo venga terminato per esaurimento:
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
L'ultima riga lo rende permanente al riavvio.
8. Backup
Da configurare prima di metterci dentro qualcosa di importante, non dopo.
Le opzioni:
Le istantanee del provider — comode, ma stanno sulla stessa infrastruttura. Utili per gli errori, non per i disastri.
Backup su spazio esterno — è quello che conta davvero. Uno script che sincronizza i dati fuori dal provider, lanciato da un cron job.
Vale la regola generale: almeno una copia deve stare fuori dall'infrastruttura del provider — il ragionamento completo è in come fare il backup di un sito web.
E provalo. Un backup mai ripristinato non è un backup.
9. Monitoraggio di base
Senza, i problemi si scoprono da un cliente.
Il minimo utile:
- Un controllo esterno di raggiungibilità che ti avvisa se il sito non risponde — esistono servizi gratuiti
- Un avviso sullo spazio disco. Il disco pieno è la causa più comune e più banale di server bloccati
- Uno sguardo ai log ogni tanto:
journalctl -xeper gli errori di sistema
df -h # spazio disco
free -h # memoria
uptime # carico
10. Cosa installare dopo
Dipende da cosa ci devi fare, ma due indicazioni generali:
Considera Docker. Invece di installare database e servizi direttamente sul sistema, i container li tengono isolati e li rendono facili da sostituire o spostare — vedi cos'è Docker.
Metti un reverse proxy davanti a tutto. Nginx o Caddy gestiscono i certificati HTTPS automaticamente e ti permettono di far girare più servizi sulla stessa macchina su domini diversi.
Gli errori tipici
Restare chiusi fuori. Firewall attivato senza SSH, password disattivate senza aver provato le chiavi. La regola è una: tieni sempre una seconda sessione aperta mentre modifichi l'accesso.
Lavorare come root. Prima o poi un comando distruttivo parte nella cartella sbagliata.
Esporre servizi non necessari. Ogni porta aperta è una superficie in più.
Rimandare i backup. Si configurano quando la macchina è vuota, non quando contiene dati che non puoi perdere.
Installare tutto direttamente sul sistema. Dopo sei mesi non ricordi più cosa hai messo né perché. I container o uno script di configurazione risolvono il problema.
In sintesi
Un VPS appena creato va messo in sicurezza subito, perché i tentativi automatici iniziano in pochi minuti.
I passaggi essenziali, in ordine: aggiorna, crea un utente non-root, configura le chiavi SSH e disattiva le password, attiva il firewall aprendo solo il necessario, installa gli aggiornamenti automatici di sicurezza.
Poi: fuso orario, swap se hai poca memoria, backup fuori dal provider, e un controllo esterno di raggiungibilità.
La regola che evita il problema più frequente: tieni sempre una seconda sessione aperta mentre modifichi firewall o accesso SSH. Se sbagli, hai ancora modo di correggere.
Se non hai ancora chiaro se ti serve davvero un VPS, la valutazione è in cos'è un VPS.