Installare fail2ban su Ubuntu 18.04

Fail2ban è un tool che può aiutarci a monitorare e bloccare tutte le connessioni non autorizzate verso il nostro server.
Fail2ban modifica in modo automatico la configurazione del firewall IPtables se necessario, per bloccare indirizzi IP non autorizzati.
In questa guida, vedremo come installare e utilizzare Fail2ban su un server Ubuntu 18.04 LTS.

Connessione al Server
Per accedere al server, è necessario conoscere l’indirizzo IP. Avrai anche bisogno della password per l’autenticazione.

Per connettersi al server è necessario aprire il proprio terminale e connettersi in SSH come utente root digitando questo comando:

ssh [email protected]_DEL_SERVER

Successivamente ti verrà chiesto di inserire la password dell’utente root.
Sei ora connesso al tuo server, pronto per iniziare l’installazione di Fail2ban.

Installare Fail2ban
Fail2ban è disponibile nei repository predefiniti di Ubuntu, quindi può essere facilmente installato tramite apt e quindi i seguenti comandi:

sudo apt update
sudo apt install fail2ban

 
Configurare Fail2ban
Possiamo trovare i file di configurazione di Fail2ban nella directory /etc/fail2ban. Il file principale da modificare è jail.conf.

jail.conf potrebbe essere sovrascritto dagli aggiornamenti del pacchetto, quindi consiglio di creare una copia di questo file che chiameremo jail.local, questo andrà a sovrascrivere quello originale. In questo modo non dovremo avere problemi anche in seguito ad aggiornamenti del pacchetto Fail2ban.

La sezione principale di jail.conf (jail.local, la nostra copia) si chiama [DEFAULT]. Successivamente troviamo le varie sezioni dei singoli servizi, come per esempio [sshd].

Creiamo il nostro file jail.local da terminale:

sudo nano /etc/fail2ban/jail.local

Incolliamo il seguente testo:

[DEFAULT]
Ban hosts for one hour:
bantime = 3600
banaction = iptables-multiport
[sshd]
enabled = true

Salvare e chiudere il file.

Abbiamo impostato un nuovo bantime, di un ora, predefinito per tutti i servizi.

Ora possiamo riavviare il servizio Fail2ban usando systemctl:

sudo systemctl restart fail2ban


Per controllare lo stato di Fail2ban:

sudo fail2ban-client status


Per informazioni più dettagliate, come la lista di Ip bannati, dare questo comando:

sudo fail2ban-client status sshd


Per monitorare le azioni recenti di Fail2ban:

sudo tail -F /var/log/fail2ban.log

 
Consigli ed ottimizzazione
Ecco alcuni consigli per configurare ancora meglio Fail2ban.

Apriamo nuovamente il file jail.local:

sudo nano /etc/fail2ban/jail.local

Sotto la sezione [DEFAULT], se vogliamo ricevere email di notifica da parte di Fail2ban, aggiungere le seguenti voci:

destemail = [email protected]
action = %(action_mwl)s


Possiamo aggiungere un indirizzo IP permanente, come quello del nostro ufficio, da ignorare, per non essere mai bloccati dal nostro PC:

ignoreip = MIO_IP


Di default la porta utilizzata per le connessioni ssh è la 22.
Se si utilizza una porta diversa è necessario cambiare la configurazione:

Nella sezione [sshd], sotto enabled=true aggiungiamo port:

port     = LA_TUA_PORTA


Aggiungiamo il percorso del il file log che andremo ad utilizzare:

logpath  = /var/log/auth.log


Possiamo modificare il numero di tentativi di accesso prima di essere bannati:

maxretry = 3

Riepilogo:

[DEFAULT]
# Ban hosts for one hour:
bantime = 3600
destemail = [email protected]
action = %(action_mwl)s
ignoreip = MIO_IP

# Override /etc/fail2ban/jail.d/00-firewalld.conf:
banaction = iptables-multiport

[sshd]
enabled = true
port     = LA_TUA_PORTA
logpath  = /var/log/auth.log
maxretry = 3

Salvare e chiudere il file.

Riavviare Fail2ban:

sudo service fail2ban restart

Per controllare lo stato di Fail2ban:

sudo fail2ban-client status

L’installazione e la configurazione di Fail2ban su Ubuntu 18.04 LTS è terminata.