Fail2Ban è un programma per Linux che rileva e respinge gli attacchi di forza bruta.

Fail2ban controlla le voci dei file di log dei vari servizi (es. SSH, FTP). Un numero elevato di tentativi falliti causa il blocco, per un certo periodo di tempo, dell'indirizzo IP che attacca, impedendo così ulteriori connessioni.

Requisiti:
  • Per utilizzare Fail2ban è necessario un root server con sistema operativo Linux (Server Cloud, Server Dedicati, Server Virtuale).
Nota bene:

Per i server con Plesk, le applicazioni come Fail2Ban dovrebbero sempre essere installate e gestite tramite l'interfaccia Plesk.

Installare Fail2Ban

Ubuntu 16.04 / 18.04 / 20.04 / 22.04 / 24.04

Aggiornare gli elenchi dei pacchetti:

sudo apt update

Installare Fail2ban:

sudo apt install fail2ban

Avviare Fail2Ban:

sudo systemctl start fail2ban

Avviare automaticamente Fail2Ban all'avvio del sistema:

sudo systemctl enable fail2ban
CentOS 7 / Stream 8 / Stream 9

Aggiornare gli elenchi dei pacchetti:

sudo yum update

Installare la repository EPEL:

sudo yum install epel-release

Installare Fail2Ban:

sudo yum install fail2ban

Avviare Fail2Ban:

sudo systemctl start fail2ban

Avviare automaticamente Fail2Ban all'avvio del sistema:

sudo systemctl enable fail2ban

Configurare Fail2Ban

I file di configurazione Fail2Ban sono memorizzati nella directory /etc/fail2ban. In questa directory, il file jail.conf contiene le impostazioni predefinite.

Se ci sono impostazioni predefinite che desideri sovrascrivere, queste dovrebbero essere incluse in un file jail.local per evitare conflitti. Per farlo, crea una copia del file jail.conf e nominalo jail.local:

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

È quindi possibile aprire il file jail.local per modificarlo:

sudo nano /etc/fail2ban/jail.local

Per evitare confusione in futuro, puoi eliminare il primo blocco di testo che avvisa di non modificare il file jail.conf:

# WARNING: heavily refactored in 0.9.0 release.  Please review and
#          customize settings for your setup.
#
# Changes:  in most of the cases you should not modify this
#           file, but provide customizations in jail.local file,
#           or separate .conf files under jail.d/ directory, e.g.:
#
# HOW TO ACTIVATE JAILS:
#
# YOU SHOULD NOT MODIFY THIS FILE.
#
# It will probably be overwritten or improved in a distribution update.
#
# Provide customizations in a jail.local file or a jail.d/customisation.local.
# For example to change the default bantime for all jails and to enable the
# ssh-iptables jail the following (uncommented) would appear in the .local file.
# See man 5 jail.conf for details.
#
Aumentare il tempo di blocco

Una modifica consigliata è quella di aumentare il tempo di blocco (ban time), che per impostazione predefinita è impostato a soli 10 minuti (600 secondi).

Per aumentare il tempo di blocco, individua la seguente sezione:

# "bantime" is the number of seconds that a host is banned.
bantime  = 600

Sostituisci 600 con il numero di secondi desiderato. Ad esempio, per bloccare gli host per due ore, modifica il blocco comandi seguente come segue:

# "bantime" is the number of seconds that a host is banned.
bantime  = 7200

Salva il file e riavvia Fail2Ban per rendere effettive le modifiche:

sudo systemctl restart fail2ban

fail2ban.log

Tutte le azioni e le misure eseguite da Fail2Ban sono registrate nel file /var/log/fail2ban.log.

sudo less /var/log/fail2ban.log