Introduzione

Tutti i servizi esposti alla rete possono essere un potenziale obiettivo. Possiamo notare facilmente numerosi tentativi di connessione non previsti andando a leggere i file log del nostro server.

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, illustreremo come installare e utilizzare Fail2ban su un server Ubuntu 18.04 LTS.

Se il vostro intento è installare Fail2ban su di un server in remoto continuate a leggere, altrimenti se volete installare Fail2ban sul vostro computer locale saltate il primo paragrafo "Connessione al Server" e leggere il successivo.

Connessione al Server

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

Per connettersi al server come utente root digitare questo comando:

ssh [email protected]_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare anche il primo parametro:

ssh [email protected]_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

Siete ora connessi al vostro server, siete pronti per iniziare l'installazione di Fail2ban.

Installare Fail2ban

Fail2ban è disponibile nei repository predefiniti di Ubuntu, quindi può essere facilmente installato tramite apt:

sudo apt update
sudo apt install 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

# Override /etc/fail2ban/jail.d/00-firewalld.conf:
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

Configurazione

Ecco alcuni consigli per configurare 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 computer, da ignorare, per non essere mai bloccati:

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.