Come installare e configurare Fail2Ban su Linux
9 min di lettura - 14 maggio 2026

Guida passo-passo all'installazione, alla configurazione e al test di Fail2Ban su server Linux basati su Ubuntu, Debian e RHEL.
Come installare e configurare Fail2Ban su Linux
Fail2Ban monitora i log del server alla ricerca di attività sospette e blocca automaticamente gli IP dannosi aggiornando le regole del firewall. Blocca gli attacchi di forza bruta, riduce il rumore dei log e, una volta configurato, funziona silenziosamente in background. Questa guida illustra l'installazione su Ubuntu/Debian, la configurazione di base, l'impostazione della jail e alcune opzioni avanzate che vale la pena conoscere.
Prerequisiti
Fail2Ban funziona sulla maggior parte delle distribuzioni Linux: Ubuntu, Debian, AlmaLinux, CentOS, RHEL, Rocky Linux e Fedora. Avrai bisogno di:
- Python 3 installato sul sistema
- Accesso come root o tramite sudo per l'installazione dei pacchetti e le modifiche al firewall
- Un firewall attivo (iptables, nftables, ufw o firewalld)
- File di log che registrano i tentativi di accesso falliti (
/var/log/auth.logsui sistemi basati su Debian,/var/log/securesu sistemi basati su RHEL)
Su sistemi basati su RHEL, abilita prima il repository EPEL. Prima di installare Fail2Ban, verifica che il tuo firewall sia in esecuzione con ufw status o systemctl status firewalld.
Installazione di Fail2Ban su Ubuntu/Debian
Aggiorna i pacchetti e installa Fail2Ban:
sudo apt update && sudo apt upgrade -y
sudo apt install fail2banAbilita il servizio in modo che si avvii all'avvio del sistema, quindi avvialo:
sudo systemctl enable fail2ban
sudo systemctl start fail2banCopia la configurazione predefinita in un file di override locale. Modifica sempre jail.local, non jail.conf, in modo che gli aggiornamenti dei pacchetti non sovrascrivano le tue impostazioni:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localVerifica che tutto funzioni:
sudo systemctl status fail2ban
sudo fail2ban-client statusIl primo comando dovrebbe mostrare "Active: active (running)". Il secondo elenca le tue jail attive. Conferma che Fail2Ban sia abilitato all'avvio con sudo systemctl is-enabled fail2ban.
Configurazione delle Jails
Impostazioni predefinite
Aprire /etc/fail2ban/jail.local e modifica la [DEFAULT] . Queste impostazioni si applicano a tutte le jail a meno che non vengano sovrascritte:
| Parametro | Valore consigliato | Cosa fa |
|---|---|---|
bantime | 3600 | Blocca un IP per 1 ora |
findtime | 600 | Conta gli errori in un intervallo di 10 minuti |
maxretry | 3 fino a 5 | fallimenti prima che scatti il ban |
ignoreip | 127.0.0.1/8 ::1 | IP che non vengono mai bloccati |
Aggiungi il tuo IP di gestione a ignoreip in modo da non rimanere bloccati fuori. Esempio: ignoreip = 127.0.0.1/8 ::1 203.0.113.50.
Protezione SSH
Abilita la jail SSH in jail.local:
[sshd]
enabled = trueVerifica che logpath punti al file di log corretto per la tua distribuzione. Se hai spostato SSH su una porta non standard (ad es. 2222), aggiorna il port parametro di conseguenza.
Protezione del server web
Abilita il jail corrispondente al tuo server web:
- Nginx:
[nginx-http-auth]in caso di errori di autenticazione,[nginx-botsearch]per i bot dannosi - Apache:
[apache-auth]per l'autenticazione,[apache-badbots]per i bot
Recidive Jail
Il [recidive] jail intercetta gli IP che continuano a essere bannati in altre jail e applica una penalità più lunga, in genere una settimana (604.800 secondi). È utile per gli aggressori persistenti che cambiano continuamente approccio.
Dopo aver apportato le modifiche, ricaricare:
sudo systemctl restart fail2ban
sudo fail2ban-client statusTest e monitoraggio
Test dei blocchi
Prima di affidarti a Fail2Ban in produzione, testalo. Da una macchina remota (non il tuo IP di amministratore), prova ad effettuare accessi SSH fino a superare maxretry. Dovreste essere bloccati. Verificate con:
sudo fail2ban-client status sshdGuarda i ban in tempo reale:
tail -f /var/log/fail2ban.logSe si blocca accidentalmente un IP legittimo, sbloccarlo:
sudo fail2ban-client set sshd unbanip 203.0.113.50Monitoraggio quotidiano
Esamina la cronologia dei ban cercando nel log:
grep "Ban\|Unban" /var/log/fail2ban.logComandi di gestione utili:
| Comando | Scopo |
|---|---|
fail2ban-client status | Elenca tutte le carceri attive |
fail2ban-client banned | Mostra tutti gli IP attualmente bannati |
fail2ban-client set <jail> unbanip <IP> | Rimuovere il ban da un IP specifico |
fail2ban-client unban --all | Cancella tutti i ban |
fail2ban-client set <jail> banip <IP> | Bloccare manualmente un IP |
I ban permangono anche dopo il riavvio. Fail2Ban li memorizza in un database SQLite in /var/lib/fail2ban/fail2ban.sqlite3.
Configurazione avanzata
Passaggio a nftables
nftables è il moderno sostituto di iptables. Gestisce IPv4 e IPv6 in un unico framework, si adatta meglio a liste di ban di grandi dimensioni e dispone di limitazione di velocità integrata. Se utilizzi Ubuntu 22.04+, Debian 11+ o qualsiasi distribuzione recente, è la scelta migliore.
Impostalo in jail.local:
[DEFAULT]
banaction = nftables-multiportRiavvia Fail2Ban, quindi verifica con sudo nft list ruleset. Dovresti vedere f2b-table e f2b-chain nell'output. Continua a utilizzare solo iptables se utilizzi un sistema più vecchio o hai requisiti di compatibilità.
Notifiche via e-mail
Per impostazione predefinita, Fail2Ban blocca gli utenti in modo silenzioso. Per ricevere avvisi via email, aggiungi quanto segue alla [DEFAULT] sezione jail.local:
[DEFAULT]
destemail = [email protected]
sender = [email protected]
mta = sendmail
action = %(action_mwl)sL' action_mwl invia un'e-mail con i dettagli del ban, i dati WHOIS e le righe di log che hanno innescato il ban. Usa action_mw se desideri solo i dati WHOIS. Avrai bisogno di un mail transfer agent come sendmail installato, oppure di un relay SMTP configurato tramite qualcosa come msmtp.
Per gli avvisi su Slack o Discord, crea uno script che invii un webhook e collegalo tramite un file di azione personalizzato in /etc/fail2ban/action.d/.
Se stai cercando un server con pieno accesso root e larghezza di banda illimitata per eseguire Fail2Ban, dai un'occhiata ai server dedicati di FDC.

Stanchi di implementazioni lente o di limiti di larghezza di banda? FDC Servers offre potenza dedicata istantanea, portata globale e piani flessibili costruiti per qualsiasi scala. Pronti per l'aggiornamento?
Sbloccate le prestazioni ora
Guida alla configurazione di Prometheus e node_exporter
Installare Prometheus e node_exporter, configurare i target di scrape, impostare i servizi systemd e proteggere lo stack di monitoraggio. Passo dopo passo per Linux.
15 min di lettura - 29 maggio 2026
XDP e eBPF per l'elaborazione dei pacchetti Linux
14 min di lettura - 27 maggio 2026

Avete domande o avete bisogno di una soluzione personalizzata?
Opzioni flessibili
Portata globale
Distribuzione immediata
Opzioni flessibili
Portata globale
Distribuzione immediata