Installa e configura Fail2ban su Ubuntu 20.04
Fail2ban è un framework di sicurezza open source scritto in Python che protegge i server da attacchi di forza bruta. Esamina i file di registro e vieta gli indirizzi IP che effettuano tentativi di connessione non riusciti. Funziona aggiornando il firewall per rifiutare nuove connessioni da quegli indirizzi IP per un periodo di tempo configurabile.
Per impostazione predefinita, Fail2ban utilizza Iptables e può essere utilizzato con altri firewall. Supporto Fail2ban per IPv4 e IPv6.
Fail2ban è configurato per impostazione predefinita per monitorare Tentativi di connessione SSH e può monitorare altri file di registro come per Apache, vsftpd e Postfix ecc.
In questo tutorial, ti guiderò attraverso come installare e configurare fail2ban Su Ubuntu 20.04.
Installa Fail2ban su Ubuntu
Per iniziare, apri il tuo terminale e aggiorna gli elenchi dei pacchetti.
$ sudo apt update
Fail2Ban è già in bundle con la maggior parte delle distribuzioni Linux. Per installare fail2ban utilizzando il gestore pacchetti APT, eseguire:
$ sudo apt install fail2ban
Una volta installato, controlla se è in esecuzione da:
$ sudo systemctl status fail2ban
Dall’output, possiamo vedere che il servizio fail2ban è attivo e funzionante come previsto.
Per verificare che il processo fail2ban sia in esecuzione, digitare:
$ sudo ps -efww | egrep fail2ban
Produzione:
root 1310843 1 0 11:17 ? 00:00:02 /usr/bin/python3 /usr/bin/fail2ban-server -xf start
È fantastico. Diamo una panoramica dei file di configurazione associati a Fail2ban e come regolare le impostazioni per gli indirizzi IP di blacklist o whitelisting.
Panoramica dei file di configurazione
I file di configurazione di Fail2ban sono nel file /etc/fail2ban
directory come mostrato.
I principali file di configurazione sono /etc/fail2ban/jail.conf
e /etc/fail2ban/jail.d/defaults-debian.conf
.
Qualunque cosa tu faccia, non è consigliabile modificare questi file poiché c’è una buona possibilità che vengano sovrascritti quando il pacchetto fail2ban viene aggiornato.
Come soluzione alternativa, il modo consigliato per configurare Fail2ban è creare una copia del file jail.conf
file a jail.local
e quindi definire le proprie impostazioni. Non è necessario includere tutte le impostazioni nel file jail.conf
file, solo quelli che vuoi sostituire.
Quindi creiamo prima jail.local
file di configurazione come segue.
$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Ora, usando il tuo editor di testo preferito, apri il file. Qui, sto usando l’editor vim.
$ sudo vim /etc/fail2ban/jail.local
Indirizzi IP nella whitelist
uso ignoreip
direttive, è possibile escludere gli indirizzi IP, l’intervallo IP o un’intera sottorete dal divieto. Qui aggiungi gli indirizzi IP delle macchine remote che desideri inserire nella whitelist o consentire l’accesso in termini semplici. È possibile aggiungere più indirizzi IP utilizzando lo spazio o le virgole.
Ad esempio, per autorizzare gli indirizzi IP 192.168.2.50 , 192.168.2.100 aggiungere le voci come segue.
Impostazioni di divieto
Le condizioni di divieto sono definite dai seguenti parametri:
- i soldi
- trovare il tempo
- maxretry
i soldi – Questa è la quantità di tempo in cui a un indirizzo IP viene negato o negato l’accesso quando si tenta di riconnettersi al server. Per impostazione predefinita, questo è impostato su 10 minuti, ma sentiti libero di impostarlo secondo le tue preferenze.
trovare il tempo – Questo è il periodo di tempo tra i tentativi di accesso falliti prima che venga implementato un divieto. Questo è impostato su 10 minuti. Ciò significa che se si tenta un accesso SSH e gli errori raggiungono il file maxtry valore entro 10 minuti, l’IP da cui ti stai connettendo verrà bannato.
maxretry – Questo è il numero massimo di tentativi di connessione falliti prima che un IP venga bannato. Per impostazione predefinita, questo è impostato su 5 secondi, il che dovrebbe andare bene, ma preferirei 3 secondi per ridurre al minimo il bombardamento di tentativi di connessione.
Notifiche di posta elettronica
Fail2ban ha la capacità di inviare avvisi e-mail una volta che un indirizzo IP è stato bannato. Per inviare e ricevere e-mail, è necessario che sia installato e configurato un server SMTP. Per utilizzare la funzione di notifica e-mail, aggiungi la riga sottostante
action = %(action_mw)s
parametro %(action_mw)s
bandire l’indirizzo IP sospetto e inviare un’e-mail all’amministratore con un rapporto whois dettagliato. Per includere i messaggi di registro, impostare il parametro su %(action_mwl)s
.
Definire inoltre l’indirizzo e-mail di invio e il destinatario.
Fail2ban carceri
Il modus operandi di Fail2ban utilizza il concetto di carcere. Cioè, se l’indirizzo IP offensivo tenta senza successo di autenticarsi o accedere a un servizio, viene posto in una “prigione” e non può avviare una connessione finché i soldi drenare.
Una prigione, in termini semplici, è un servizio con filtri e azioni. Fail2ban analizza le voci di registro e, una volta identificate le voci di registro corrispondenti e soddisfatte le condizioni, vengono implementate le azioni.
La prigione SSH è solitamente abilitata per impostazione predefinita per mettere al guinzaglio le connessioni SSH non autorizzate da indirizzi IP sospetti. Per attivare una jail per un altro servizio, aggiungi semplicemente abilitato = vero attributo per titolo carcerario. Puoi anche fornire impostazioni di divieto come abbiamo visto in precedenza.
Cliente Fail2ban
Fail2ban fornisce uno strumento a riga di comando per interagire con Fail2ban, noto come cliente fail2ban. Puoi eseguire una moltitudine di attività, tra cui vietare e cancellare gli indirizzi IP.
Per controllare lo stato Fail2ban e vedere se ci sono IP bannati o filtri violati, eseguire il comando:
$ sudo fail2ban-client status sshd
L’output seguente conferma la presenza di un indirizzo IP vietato o inserito nella lista nera dopo tentativi di connessione SSH falliti. L’indirizzo IP è attualmente in SSH jail.
Puoi anche filtrare il file fail2ban.log per elencare tutti gli indirizzi IP vietati:
$ sudo zgrep 'Ban' /var/log/fail2ban.log*
Produzione:
2021-04-29 11:17:55,081 fail2ban.actions [1310843]: NOTICE [sshd] Ban 117.221.69.37 2021-04-29 11:17:55,123 fail2ban.actions [1310843]: NOTICE [sshd] Ban 49.233.251.133 2021-04-29 11:17:55,131 fail2ban.actions [1310843]: NOTICE [sshd] Ban 106.52.93.202 2021-04-29 11:17:55,139 fail2ban.actions [1310843]: NOTICE [sshd] Ban 222.187.232.205 2021-04-29 11:17:55,147 fail2ban.actions [1310843]: NOTICE [sshd] Ban 222.187.239.107
Per sbloccare l’indirizzo IP nella lista nera, eseguire il comando:
$ sudo fail2ban-client set sshd unbanip 192.168.2.102
Ora controlla di nuovo lo stato Fail2ban e questa volta l’IP bannato non è più registrato.
Per vietare un indirizzo IP, digitare:
$ sudo fail2ban-client set sshd banip 192.168.2.102
Per ulteriori opzioni della riga di comando, eseguire il comando:
$ fail2ban-client -h
Conclusione
Tieni presente che Fail2ban non sostituisce i firewall e altre misure di sicurezza utilizzate per proteggere il tuo sistema. È semplicemente un ulteriore livello di sicurezza che offre al tuo server un ulteriore livello di protezione contro gli attacchi di forza bruta, in particolare da bot e script automatici. Questo conclude questo tutorial su come installare e configurare Fail2ban su Ubuntu 20.04.