Come installare e configurare Fail2ban su Ubuntu 20.04 LTS

4 giu 2020 4 min di lettura
Come installare e configurare Fail2ban su Ubuntu 20.04 LTS
Indice dei contenuti

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 20.04 LTS Focal Fossa.

Se desideri installare Fail2ban su un server in remoto continua a leggere, altrimenti salta il primo paragrafo "Connessione al Server" e leggi il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:

ssh root@IP_DEL_SERVER

Successivamente sarà necessario 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 root con il vostro nome_utente:

ssh nome_utente@IP_DEL_SERVER

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

La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:

ssh nome_utente@IP_DEL_SERVER -p PORTA

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

Abbiamo impostato un nuovo bantime, di un ora, predefinito per tutti i servizi. bantime è la durata per la quale l'IP è bloccato. Quando non viene specificato alcun suffisso, il valore predefinito è secondi. Per impostazione predefinita, il valore bantime è impostato su 10 minuti. In generale, la maggior parte degli utenti vorrà impostare un periodo di divieto più lungo. Modifica il valore a tuo piacimento:

bantime  = 1d

Se si desidera impostare un ban permanente modificare il valore del parametro bantime a -1:

bantime = -1

Salvare e chiudere il file.

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

Configurare Fail2Ban

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

È possibile aggiungere alla direttiva ignoreip indirizzi IP, intervalli IP o host che si desidera escludere dal divieto. Qui dovresti aggiungere l'indirizzo IP del tuo PC locale e tutte le altre macchine che desideri inserire nella whitelist.

Rimuovi il commento dalla riga che inizia con ignoreip e aggiungi i tuoi indirizzi IP separati da uno spazio:

ignoreip = 127.0.0.1/8 ::1 123.123.123.123 192.168.1.0/24

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 = TUO_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

Sbannare un indirizzo IP

Per sbannare (unban) un indirizzp IP in modo manuale, digitare il seguente comando da terminale:

fail2ban-client set sshd unbanip INDIRIZZO_IP

Fail2ban Jails

Fail2ban utilizza un concetto di jail. Una prigione descrive un servizio e include filtri e azioni. Le voci di log corrispondenti al modello di ricerca vengono contate e quando viene soddisfatta una condizione predefinita vengono eseguite le azioni corrispondenti.

Fail2ban viene fornito con una serie di jail per diversi servizi. Puoi anche creare le tue configurazioni jail.

Per impostazione predefinita, solo la jail ssh è abilitata. Per abilitare una jail è necessario aggiungere enabled = true dopo il titolo della jail. Il seguente esempio mostra come abilitare la jail proftpd:

[proftpd]

port     = ftp,ftp-data,ftps,ftps-data
logpath  = %(proftpd_log)s
backend  = %(proftpd_backend)s

Le impostazioni che abbiamo discusso nella sezione precedente possono essere impostate per jail. Ecco un esempio:

[sshd]
enabled   = true
maxretry  = 3
findtime  = 1d
bantime   = 4w
ignoreip  = 127.0.0.1/8 23.34.44.55

I filtri si trovano nella directory /etc/fail2ban/filter.d, archiviati in un file con lo stesso nome della jail. Se hai una configurazione personalizzata ed esperienza con le espressioni regolari, puoi ottimizzare i filtri.

Ogni volta che si modifica un file di configurazione è necessario riavviare il servizio Fail2ban affinché le modifiche abbiano effetto:

sudo systemctl restart fail2ban

Conclusione

L'installazione e la configurazione di Fail2ban su Ubuntu 20.04 LTS Focal Fossa è terminata.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.