1,358 21/03/2026 07/04/2026 3 min

Prerequisiti

  • Un server Linux (Ubuntu, Debian, CentOS)
  • Accesso root o permessi sudo
  • Fail2ban installato
  • Conoscenze base di configurazione di firewall

Step 1: Installazione di Fail2ban

Iniziamo installando Fail2ban, un servizio che monitora i log e blocca gli indirizzi IP sospetti. È fondamentale per proteggere il tuo server da attacchi brutali.

sudo apt-get update
sudo apt-get install fail2ban

# Output: Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: fail2ban

Perché funziona: Questo comando aggiorna la lista dei pacchetti e installa Fail2ban.

Nota cross-distro: Su CentOS, utilizza yum install fail2ban.

Step 2: Configurazione di Fail2ban

Una volta installato, è necessario configurarlo per monitorare i servizi più vulnerabili, come SSH.

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

# Output: cp: cannot create regular file '/etc/fail2ban/jail.local': File exists

Perché funziona: Copiamo il file di configurazione per evitare di sovrascrivere le impostazioni predefinite.

Step 2.1: Modifica del file di configurazione

Ora modifichiamo il file jail.local per abilitare le regole che ci interessano.

sudo nano /etc/fail2ban/jail.local

# Output: (aprirà l'editor nano)

Perché funziona: Apriamo il file di configurazione per apportare modifiche necessarie.

All'interno del file, cerca la sezione relativa a SSH e modifica i seguenti parametri:

enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 600

# Output: (nessun output, salvataggio delle modifiche)

Perché funziona: Queste impostazioni abilitano Fail2ban per monitorare le connessioni SSH e bloccano gli IP dopo 5 tentativi falliti per 10 minuti.

Step 3: Avvio e verifica di Fail2ban

Dopo aver configurato tutto, dobbiamo avviare il servizio e verificare che funzioni correttamente.

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

# Output: (nessun output, avvio del servizio)

Perché funziona: Avviamo Fail2ban e lo impostiamo per avviarsi automaticamente al boot.

Step 3.1: Verifica dello stato di Fail2ban

Controlliamo lo stato di Fail2ban per assicurarci che stia monitorando correttamente.

sudo fail2ban-client status

# Output: Status |- Number of jail: 1 `- Jail list: sshd

Perché funziona: Questo comando mostra lo stato di Fail2ban e le prigioni attive.

Verifica finale

Per assicurarci che Fail2ban funzioni correttamente, possiamo tentare di effettuare più accessi SSH falliti da un IP diverso. Dopo 5 tentativi, dovremmo vedere il blocco.

sudo fail2ban-client status sshd

# Output: Status for the jail: sshd |- Filter | |- Currently banned: 1 | `- Total banned: 1 |- Actions | |- Currently banned: 1 | `- Total banned: 1

Interpretazione: Questo output indica che l'IP è stato bloccato correttamente.

Troubleshooting

  • Errore: ERROR 'No file found for sshd' in /etc/fail2ban/filter.d/sshd.conf
    • Causa: Il file di configurazione del filtro non esiste.
    • Soluzione: Assicurati che il pacchetto fail2ban sia installato correttamente.
  • Errore: Ban time not set
    • Causa: Il parametro bantime non è configurato.
    • Soluzione: Aggiungi bantime = 600 al file jail.local.
  • Errore: Failed to start fail2ban.service
    • Causa: Problemi di permessi o configurazione errata.
    • Soluzione: Controlla i log di sistema con journalctl -xe.

Conclusione

Abbiamo configurato Fail2ban per proteggere il nostro server Linux da attacchi di forza bruta. Come prossimo passo, considera di monitorare ulteriori servizi critici come FTP o HTTP per una protezione completa.