Blog

Tutorial, guide e novità di prodotto.

Sicurezza e backup

I primi 10 passi di sicurezza su un nuovo VPS

3 novembre 2026 6 min di lettura
Condividi questo articolo

Su un nuovo VPS i primi lavori sono aggiornare il sistema, creare un utente separato che accede con una chiave invece di usare root, disattivare l'accesso con password, attivare il firewall e fail2ban, abilitare gli aggiornamenti di sicurezza automatici e verificare che i backup funzionino. Qui sotto trovi i 10 passi nell'ordine in cui conviene farli. I comandi sono per Ubuntu e Debian.

Ogni server su internet è un bersaglio per scansioni automatiche e bot che provano password a caso, e lo vedi anche nel log SSH del tuo server. L'ordine conta: verifica che i punti 2 e 3 funzionino prima di fare il 4, altrimenti rischi di restare bloccato fuori. sudo nei comandi funziona anche se sei collegato come root.

Sistema e account

1. Aggiorna il sistema

sudo apt update && sudo apt upgrade -y

Su Ubuntu, quando un aggiornamento richiede un riavvio compare il file /var/run/reboot-required. In quel caso riavvia il server una volta. Debian potrebbe non creare questo file, quindi riavvia comunque dopo un aggiornamento del kernel.

2. Crea un tuo utente

Non usare root per il lavoro di tutti i giorni. Crea un utente separato con i permessi sudo. Sostituisci deploy con il nome che preferisci:

sudo adduser deploy

sudo usermod -aG sudo deploy

3. Accedi con una chiave SSH

Se sul tuo computer non hai ancora una coppia di chiavi, creala con ssh-keygen -t ed25519. Poi copia la chiave pubblica sul nuovo utente e prova l'accesso:

ssh-copy-id [email protected]

ssh [email protected]

Se sei entrato senza che ti venisse chiesta la password, sei a posto. Windows non ha ssh-copy-id. In PowerShell questo comando fa lo stesso lavoro:

Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Rafforza SSH

4. Disattiva l'accesso con password e quello di root

Prima verifica di poter accedere come nuovo utente con la tua chiave. Poi scopri quali file definiscono queste impostazioni. Quando OpenSSH trova la stessa impostazione in più punti, usa il primo valore che legge. Su Debian e Ubuntu il file di configurazione principale include in cima la cartella /etc/ssh/sshd_config.d/. Le immagini dei provider possono lasciare in quella cartella un file che riattiva l'accesso con password. Anche se nel file principale scrivi no, il yes di quel file resta in vigore:

sudo grep -rniE "^\s*(PasswordAuthentication|PermitRootLogin|KbdInteractiveAuthentication)" /etc/ssh/sshd_config /etc/ssh/sshd_config.d/

Imposta su no ogni riga attiva dell'output, nel file in cui compare: PasswordAuthentication no, PermitRootLogin no, KbdInteractiveAuthentication no. Aggiungi in fondo a /etc/ssh/sshd_config le impostazioni che non compaiono nell'output. Poi prova, applica e controlla i valori davvero in vigore:

sudo sshd -t && sudo systemctl reload ssh

sudo sshd -T | grep -E "^(passwordauthentication|permitrootlogin|kbdinteractiveauthentication)"

Tutte e tre le righe devono finire con no. Non chiudere la sessione aperta. Apri un nuovo terminale e verifica che l'accesso con la chiave funzioni prima di uscire. Se resti comunque bloccato fuori, apri la Console VNC dal pannello: l'accesso dalla console non dipende dalle impostazioni SSH.

Queste impostazioni possono tornare indietro senza che tu te ne accorga. Azioni nel pannello del provider, come aggiungere una chiave SSH o reimpostare la password, possono far rieseguire al prossimo avvio lo script di primo avvio del provider (cloud-init), che può riattivare l'accesso con password. Dopo ognuna di queste azioni, esegui di nuovo il comando sshd -T qui sopra e controlla i valori.

Limita l'accesso dall'esterno

5. Attiva il firewall

In ufw prima consenti SSH e poi abilita il firewall. Se fai il contrario, la connessione cade. Se SSH gira su una porta diversa dalla 22, usa quella al posto della 22:

sudo ufw allow 22/tcp

sudo ufw enable

sudo ufw status verbose

Se userai un web server, consenti anche le porte 80 e 443. Di default ufw rifiuta le connessioni in entrata. Anche il pannello ha uno strumento per il firewall. Se usi Docker, fai attenzione: secondo la documentazione di Docker, le porte che pubblichi aggirano le regole di ufw. Per i servizi che deve raggiungere solo il server stesso, pubblica la porta solo sull'indirizzo di loopback, per esempio 127.0.0.1:5432:5432 in un file Docker Compose.

6. Installa fail2ban

fail2ban blocca per un po' gli indirizzi IP che continuano a sbagliare l'accesso:

sudo apt install -y fail2ban python3-systemd

printf '[sshd]\nenabled = true\nbackend = systemd\nmaxretry = 5\nbantime = 1h\n' | sudo tee /etc/fail2ban/jail.local

sudo systemctl enable fail2ban && sudo systemctl restart fail2ban

sudo fail2ban-client status sshd

Sui server con app con un clic di Seturack, ufw è attivo e fail2ban è in esecuzione. Se hai installato un sistema operativo pulito, controlla il loro stato con sudo ufw status e systemctl is-active fail2ban.

7. Controlla le porte aperte

sudo ss -tulpn

Il comando elenca ogni servizio e porta in ascolto. I servizi che non hanno bisogno di accesso dall'esterno, come database e cache, devono ascoltare solo su 127.0.0.1. Spegni quello che non ti serve: sudo systemctl disable --now service-name

Mantenerlo così

8. Automatizza gli aggiornamenti di sicurezza

Secondo la documentazione di Ubuntu, il pacchetto unattended-upgrades di norma è preinstallato e gli aggiornamenti di sicurezza sono attivi. Se manca, installalo e abilitalo:

sudo apt install -y unattended-upgrades

sudo dpkg-reconfigure -plow unattended-upgrades

Il riavvio automatico è disattivato di default, quindi dopo gli aggiornamenti del kernel riavvia il server da te. Secondo i termini di servizio, tenere il sistema aggiornato dopo la configurazione è una tua responsabilità.

9. Fai i backup e prova un ripristino

Su Seturack il tuo server ha un backup ogni notte e vengono conservati gli ultimi 7 giorni. È compreso nel prezzo. Nella scheda Gestione, apri Backup per vederli, recuperare un singolo file o ripristinare l'intero server. Per provare un ripristino, recupera un singolo file: ripristinare l'intero server sostituisce tutto il disco attuale. Creare uno snapshot prima di una modifica importante è una buona abitudine, ma uno snapshot non è un backup. Tieni una copia dei dati importanti anche fuori dal server. Per i dettagli, leggi l'articolo sui backup giornalieri.

10. Rafforza le tue password

Il tuo account del pannello è la chiave del server. Usa lì una password lunga che non usi da nessun'altra parte e conservala in un gestore di password. Cambia con sudo passwd root la prima password di root che hai copiato dal pannello. Proteggi la tua chiave privata SSH con una passphrase. Non incollare mai password o chiavi nei messaggi al supporto o nelle chat.

Commenti0

Ancora nessun commento

Condividi per primo la tua opinione.

Partecipa alla discussione

Accedi o registrati per lasciare un commento.

Non perderti nessun articolo

Ricevi gli ultimi tutorial, le guide e le novità sui prodotti nella tua casella email.

La tua iscrizione alla newsletter è attiva.