Come configurare Fail2Ban su Ubuntu
Quando si espone una VPS su Internet, uno dei primi servizi che viene preso di mira dai tentativi di accesso non autorizzati è SSH. I bot automatici eseguono continuamente attacchi di tipo brute force, provando migliaia di combinazioni di username e password nel tentativo di ottenere accesso al server.
Per ridurre drasticamente questo rischio è possibile utilizzare Fail2Ban, uno strumento di sicurezza molto diffuso nei sistemi Linux. Fail2Ban monitora i log di sistema e blocca automaticamente gli indirizzi IP che effettuano troppi tentativi di accesso falliti in un breve periodo di tempo.
Configurare correttamente Fail2Ban su una VPS Ubuntu permette quindi di aggiungere un importante livello di protezione contro gli attacchi automatici senza dover intervenire manualmente.
Installare Fail2Ban su Ubuntu
Il primo passo consiste nell’installare il pacchetto Fail2Ban tramite il gestore di pacchetti di Ubuntu.
Aggiorniamo prima la lista dei pacchetti disponibili:
apt update
Successivamente installiamo Fail2Ban:
apt install fail2ban
Una volta completata l’installazione, il servizio viene generalmente avviato automaticamente. È possibile verificarne lo stato con:
systemctl status fail2ban
Se il servizio non fosse attivo, può essere avviato manualmente con:
Creare la configurazione personalizzata
Fail2Ban utilizza file di configurazione che definiscono quali servizi monitorare e come comportarsi in caso di tentativi di accesso falliti. È importante non modificare direttamente i file di configurazione principali, perché potrebbero essere sovrascritti durante gli aggiornamenti del sistema.
Il metodo consigliato consiste nel creare un file di configurazione locale:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Il metodo consigliato consiste nel creare un file di configurazione locale:
nano /etc/fail2ban/jail.local
All’interno del file è possibile configurare diversi parametri generali. Alcuni dei più importanti sono:
- bantime: durata del blocco per un IP
- findtime: intervallo di tempo in cui vengono contati i tentativi
- maxretry: numero massimo di tentativi falliti consentiti
Un esempio di configurazione potrebbe essere:
bantime = 3600
findtime = 600
maxretry = 5
Con questa configurazione, un indirizzo IP che effettua 5 tentativi di accesso falliti entro 10 minuti verrà bloccato per 1 ora.
Proteggere il servizio SSH
Fail2Ban utilizza delle regole chiamate jail per monitorare specifici servizi. Per proteggere SSH è necessario attivare la relativa configurazione.
Nel file jail.local, cercare la sezione dedicata a SSH e assicurarsi che sia configurata in questo modo:
[sshd]
enabled = true
port = ssh
logpath = /var/log/auth.log
backend = systemd
Questa configurazione dice a Fail2Ban di monitorare il file di log degli accessi SSH e bloccare automaticamente gli IP che effettuano troppi tentativi falliti.
Dopo aver salvato le modifiche è necessario riavviare Fail2Ban per applicare la nuova configurazione:
systemctl restart fail2ban
Verificare il funzionamento
Per controllare se Fail2Ban sta monitorando correttamente il servizio SSH è possibile utilizzare il comando:
fail2ban-client status
Questo comando mostra l’elenco delle jail attive.
Per ottenere informazioni più dettagliate sulla protezione SSH si può utilizzare:
fail2ban-client status sshd
Qui verranno mostrati:
- il numero di IP bloccati
- l’elenco degli indirizzi bannati
- il numero di tentativi rilevati