RaspberryPi
Installazione e configurazione di Fail2ban su Raspberry Pi

Installazione e configurazione di Fail2ban su Raspberry Pi

In questo articolo, verrà mostrato come installare e configurare il software Fail2ban su Raspberry Pi.
Fail2ban è un software cruciale quando si tratta di migliorare la sicurezza del nostro Raspberry Pi in particolare se è accessibile pubblicamente via Internet in quanto è una forma di difesa attiva.
Per coloro che non sanno cos’è Fail2ban, si tratta di un software che tenta di bloccare connessioni pericolose al dispositivo, che nel nostro caso è il nostro Raspberry Pi. È importante se si utilizza il protocollo SSH o addirittura di un server Web accessibile pubblicamente.

Fail2ban funziona analizzando continuamente i file di registro cercando segnali di potenziali attacchi. Questi segnali posso essere ad esempio troppi errori di password, la ricerca di exploit e molti altri. Una volta trovata un’attività insolita, Fail2ban aggiorna automaticamente il firewall per vietare l’indirizzo IP da dove proviene l’attacco.

Installazione e configurazione di Fail2ban

Prima di iniziare con l’installazione di Fail2ban sul nostro Raspberry Pi, dobbiamo prima assicurarci che sia completamente aggiornato.
Possiamo farlo molto semplicemente eseguendo i seguenti comandi all’interno del terminale sul Raspberry Pi.

sudo apt-get update
sudo apt-get upgrade

Con il sistema operativo Raspbian aggiornato, possiamo procedere con l’installazione del software Fail2ban eseguendo il seguente comando su Raspberry Pi.

sudo apt-get install fail2ban -y

Durante il processo di installazione, fail2ban genererà un file chiamato “jail.conf”.
Dobbiamo fare una copia di questo file e rinominarlo in “jail.local”, fail2ban rileverà automaticamente questo file e lo caricherà nella sua configurazione.
Copiamo il file eseguendo il seguente comando sul terminale su Raspberry Pi.

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

Ora proseguiamo aprendo il file che abbiamo appena copiato e diamo un’occhiata alla configurazione predefinita con cui Fail2ban si avvia.

Apri il file usando l’editor nano eseguendo il seguente comando sul tuo Raspberry Pi.

sudo nano /etc/fail2ban/jail.local

All’interno di questo file usiamo la combinazione di tasti CTRL + W per abilitare la ricerca, quindi cercheremo “[sshd]“, dovrebbe apparire come di seguito.

[sshd]
port    = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s

Ora per abilitare questa sezione e impostare il filtro SSHD dobbiamo aggiungere due righe, riportate qui di seguito, subito sotto il testo “[sshd]” che abbiamo trovato nel passaggio precedente.

enabled = true
filter = sshd

La prima riga che stiamo aggiungendo a questo file di configurazione consente a Fail2ban di elaborare tali regole per la porta specificata.
La seconda riga dice a Fail2ban che è necessario utilizzare il file “/etc/fail2ban/filter.d/sshd.conf” per filtrare le connessioni alla porta ssh.

Oltre ad abilitare e settare il filtro, possiamo anche cambiare ciò che Fail2ban fa quando si attiva uno di questi filtri.
Per impostare l’azione di divieto è possibile utilizzare la seguente riga. Nell’esempio mostrato qui di seguito, utilizzeremo l’azione di divieto “iptables-multiport“.
Questa azione vieterà all’utente che ha attivato il filtro e impedirà loro di accedere a qualsiasi porta del dispositivo.

banaction = iptables-multiport

È possibile trovare ulteriori azioni controllando la cartella /etc/fail2ban/action.d/, in caso si desideri bloccare un utente malintenzionato su tutte le porte.

Oltre a essere in grado di impostare l’azione di divieto, è anche possibile impostare il numero di tentativi che un utente può effettuare prima di essere bandito e per quanto tempo dovrá essere bloccato.
Per fare ciò possiamo utilizzare i seguenti due valori, abbiamo impostato alcuni valori di esempio che spiegheremo di seguito.

bantime = -1
maxretry = 3

La prima riga (“bantime = -1”), imposta per quanto tempo desideri che l’utente venga bannato. Questo valore deve essere espresso in secondi, ad esempio 1800 secondi vietano l’utente per 30 minuti.
Se si vuole vietare l’utente a tempo indeterminato, basta impostare questo valore su -1 come abbiamo mostrato nell’ esempio sopra.
La seconda riga (“maxretry = 3”), definisce quanti tentativi l’utente ha a disposizione prima che venga eseguita l’azione di divieto. Nel nostro esempio, abbiamo impostato questo a 3, il che significa che l’utente avrà 3 possibilità prima che gli venga vietato l’accesso al dispositivo su tutte le porte.

Una volta terminata la configurazione della sezione [sshd] con un’azione di divieto, il tempo di blocco, i tentativi massimi, nonché l’abilitazione e l’impostazione del filtro, il risultato dovrebbe essere come quello nell’esempio riportato qui di seguito.

[sshd]
enabled = true
filter = sshd
port = ssh
banaction = iptables-multiport
bantime = -1
maxretry = 3
logpath = %(sshd_log)s
backend = %(sshd_backend)s

Se siamo soddisfatti delle modifiche, possiamo andare avanti salvando il file premendo CTRL+O, quindi CTRL+X per chiudere l’editor nano.

Ora dovremmo avere un Raspberry Pi con Fail2ban correttamente attivo e funzionante. Per fare in modo che il software Fail2ban carichi i settaggi appena impostati, è necessario procedere immettendo il comando seguente:

sudo service fail2ban restart

Apache & Nginx Web Servers

Puoi proteggere anche il tuo server web Apache o Nginx, usando Fail2Ban. Il setup è molto simile a quello che abbiamo fatto per il protocollo SSH. Di seguito mostrerò un esempio per un web server Apache.

Se si desidera abilitare la protezione di Apache contro bot non validi, sarà necessario aprire il file locale del jail con il seguente comando.

sudo nano /etc/fail2ban/jail.local

Individuiamo la sezione chiamata [apache-badbots], possiamo usare il comando CTRL+W per trovarla.

Sotto questa intestazione, aggiungiamo le seguenti due righe.

enabled = true
filter = apache-badbots

Il nome del filtro sarà in genere lo stesso nome del modulo a meno che tu non stia utilizzando un file di configurazione personalizzato. Quindi, [apache-badbots] avrà un nome filtro di apache-badbots.
E’ possibile visualizzare tutti i file di configurazione del filtro nella seguente directory, con il comando ls possiamo visualizzare in elenco tutti i filenella cartella indicata.

ls /etc/fail2ban/filter.d/

Una volta terminata la modifica del file jail.local, salviamo il file premendo CTRL + O, invio per confermare e quindi CTRL+X per chiudere l’editor.

Infine, ricordiamoci di riavviare il servizio di Fail2Ban su Raspberry Pi ogni volta che apportiamo una modifica.

sudo service fail2ban restart

Mi auguro che questo tutorial di Fail2Ban su Raspberry Pi sia stata utile per aver imparato come installare e configurare il software e che abbia dimostrato i vantaggi dell’utilizzo di un software come Fail2Ban.
Se hai commenti su questo tutorial, sull’impostazione e la configurazione di Fail2Ban sul tuo Raspberry Pi, non esitare a scrivere un commento qui di seguito.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *