Come usare fail2ban per proteggere SSH e servizi di rete

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 fail2ban

Dopo l’installazione, il servizio viene avviato e abilitato automaticamente:

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Configurazione 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.local

Entrare 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 = 600

enabled: 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 fail2ban

Proteggere 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 sshd

Sbloccare un IP:

sudo fail2ban-client set sshd unbanip 192.168.1.100

Ulteriori 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.

Lascia un commento