Gestire un server esposto a Internet significa affrontare quotidianamente tentativi di accesso non autorizzati, spesso automatizzati e massivi. Tra i bersagli più comuni c’è SSH, il protocollo che consente di amministrare macchine da remoto: un obiettivo privilegiato per attacchi brute force e scansioni di bot. Ma non solo: anche servizi web, FTP e posta elettronica possono diventare porte d’ingresso per chi cerca di compromettere un sistema.
In questo contesto, Fail2Ban rappresenta una soluzione semplice ed efficace: un “guardiano digitale” che analizza i log dei servizi, individua comportamenti sospetti e blocca automaticamente gli indirizzi IP malevoli. Con una configurazione mirata, è possibile ridurre drasticamente il rischio di intrusioni e alleggerire il carico di lavoro dell’amministratore di sistema.
Questa guida ti accompagnerà passo passo nella scoperta di Fail2Ban: dall’installazione alla configurazione delle jail, fino alle best practice per proteggere SSH e altri servizi di rete. L’obiettivo è fornirti un workflow chiaro, ripetibile e didattico, così da integrare Fail2Ban nella tua infrastruttura con consapevolezza e sicurezza.
Cos’è Fail2Ban e perché usarlo?
- Fail2Ban è un software open source che monitora i log dei servizi di rete (es. SSH, Apache, Nginx, Postfix).
- Rileva tentativi di accesso falliti ripetuti (tipici degli attacchi brute force).
- Quando un IP supera la soglia di errori configurata, viene bloccato automaticamente tramite regole firewall (iptables, nftables, UFW).
- Protegge da attacchi automatizzati e riduce il rischio di compromissione del server
Installazione:
Su distribuzioni basate su Debian/Ubuntu:
sudo apt update
sudo apt install fail2ban

Su CentOS/RHEL:
sudo yum install epel-release
sudo yum install fail2banDopo l’installazione, il servizio viene avviato e abilitato automaticamente:
sudo systemctl enable fail2ban
sudo systemctl start fail2banConfigurazione di base
La configurazione principale si trova in /etc/fail2ban/. Non modificare direttamente jail.conf, ma crea un file jail.local per le tue regole personalizzate.
Cambiamo i permessi alla cartella per poter creare un file jail.conf dentro:
sudo chmod 777 /etc/fail2ban/jail.localEntrare nella directory:
cd /etc/fail2ban/Successivamente usiamo il comando vi:
vi jail.local[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 3600
findtime = 600enabled: attiva la protezione per SSH.
maxretry: numero massimo di tentativi falliti prima del ban.
bantime: durata del blocco (in secondi).
findtime: intervallo entro cui contare i tentativi.
Premere il tasto a e poi premere CTRL + C e scrivere :wq!

Salva e riavvia Fail2Ban:
sudo systemctl restart fail2banProteggere altri servizi
Fail2Ban può monitorare diversi log:
- Apache/Nginx → blocca IP che generano troppi errori 404 o tentativi di exploit.
- Postfix/Dovecot → protegge i server di posta da brute force su IMAP/SMTP.
- FTP → previene accessi non autorizzati.
Per ogni servizio basta abilitare la relativa jail nel file jail.local.
Comandi utili:
Verificare lo stato:
sudo fail2ban-client status
Cosa significa questo output sopra indicato?
Number of jail: 1 → hai una sola regola attiva.
Jail list: sshd → la jail attiva è quella che monitora i tentativi di accesso SSH.
Se vuoi ampliare la protezione, puoi aggiungere altre jail nel file jail.local. Alcuni esempi comuni:
[apache-auth]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache*/*error.log
maxretry = 3
[postfix]
enabled = true
port = smtp
filter = postfix
logpath = /var/log/mail.log
maxretry = 5

Stato di una jail specifica:
sudo fail2ban-client status sshdSbloccare un IP:
sudo fail2ban-client set sshd unbanip 192.168.1.100Ulteriori informazioni:
Fail2Ban è una soluzione semplice ma potente per rafforzare la sicurezza dei server Linux. Con pochi comandi puoi proteggere SSH e altri servizi critici da attacchi brute force, riducendo drasticamente il rischio di intrusioni.

