1,614 22/03/2026 07/04/2026 3 min

Assicurare un server SSH non è mai stato così cruciale. Dopo aver completato un deploy, è fondamentale eseguire una serie di controlli per garantire che la configurazione sia sicura e resistente agli attacchi. In questo articolo, presenteremo una checklist di verifica post-deploy che include l'implementazione di Fail2Ban, la configurazione dei permessi dei file e l'assicurazione che tutto sia aggiornato. Ogni passo viene fornito con comandi specifici e giustificazioni per il loro utilizzo.

Prerequisiti

  • Accesso come utente root o sudo sul server.
  • SSH installato e configurato correttamente.
  • Fail2Ban installato sul sistema.
  • Conoscenza di base della gestione dei permessi dei file in Linux.

Step Numerati

1. Aggiornare i Pacchetti

È fondamentale tenere il sistema aggiornato per correggere vulnerabilità note.

sudo apt update && sudo apt upgrade -y

# Output: 0 aggiornamenti disponibili

Perché funziona: Aggiornamenti frequenti riducono il rischio di attacchi sfruttando vulnerabilità note.

2. Verificare il Servizio SSH

Controlla lo stato del servizio SSH per confermare che sia attivo e in ascolto sulla porta giusta.

sudo systemctl status ssh

# Output: ssh.service - OpenSSH Server Daemon

Perché funziona: Assicurarsi che il servizio SSH sia attivo è essenziale per la connettività remota.

3. Configurare Fail2Ban

Fail2Ban aiuta a proteggere il server da attacchi brute force. Configura le regole adeguate per SSH.

sudo nano /etc/fail2ban/jail.local
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 86400

# Output: Le regole di Fail2Ban sono state configurate correttamente.

Perché funziona: Limitare i tentativi di accesso riduce le possibilità di attacchi riusciti.

4. Controllare i Permessi dei File

Configura i permessi dei file in modo che solo gli utenti autorizzati possano accedere ai file sensibili.

sudo chmod 700 /path/to/private_key

# Output: I permessi del file sono stati modificati.

Perché funziona: I permessi rigorosi prevengono l'accesso non autorizzato ai file critici.

5. Implementare l'Autenticazione con Chiave Pubblica

Disabilita l'accesso con password e utilizza solo l'autenticazione con chiave pubblica.

sudo nano /etc/ssh/sshd_config
PasswordAuthentication no
sudo systemctl restart ssh

# Output: Il servizio SSH è stato riavviato correttamente.

Perché funziona: L'autenticazione con chiave pubblica è più sicura e difficile da compromettere rispetto alle password.

6. Controllare i Log di Fail2Ban

Verifica i log di Fail2Ban per assicurarti che stia funzionando correttamente e bloccando gli attacchi.

sudo fail2ban-client status sshd

# Output: Dettagli sul numero di IP bannati e sullo stato del servizio.

Perché funziona: Monitorare Fail2Ban permette di reagire rapidamente a eventuali attacchi.

Verifica Finale

Una volta completati questi passaggi, puoi eseguire un test di sicurezza sul tuo server SSH utilizzando strumenti di scansione come Nessus o OpenVAS. Questi strumenti possono aiutarti a identificare ulteriori vulnerabilità.

Troubleshooting

1. Impossibile connettersi via SSH

Messaggio di errore: "Connection timed out".

Cause: Il servizio SSH non è avviato o la porta è bloccata dal firewall.

Fix: Avviare il servizio SSH e controllare le regole del firewall.

2. Fail2Ban non sta bloccando gli IP

Messaggio di errore: "No jail found".

Cause: La configurazione di Fail2Ban non è corretta o il servizio non è attivo.

Fix: Verificare e correggere il file di configurazione e riavviare Fail2Ban.

3. Permessi file errati

Messaggio di errore: "Permission denied".

Cause: I permessi del file privato non sono impostati correttamente.

Fix: Eseguire il comando di modifica dei permessi come descritto nel passo 4.

Conclusione

Seguendo questa checklist post-deploy, puoi garantire una sicurezza robusta del tuo server SSH. La protezione di Fail2Ban, l'autenticazione a chiave pubblica e la gestione rigorosa dei permessi sono tutti strumenti essenziali per un ambiente sicuro. Come prossimo passo, considera di implementare un monitoraggio continuo delle prestazioni e della sicurezza del server.