Ricerca nel sito web

Come installare e configurare Fail2ban su Ubuntu 22.04


Su questa pagina

  1. Prerequisiti
  2. Imposta firewall UFW
  3. Installazione di Fail2ban su Ubuntu 22.04
  4. Configurazione di Fail2ban
  5. Utilizzo di Fail2ban-client per verificare lo stato di Fail2ban
  6. Escludi e riattiva l'IP utilizzando Fail2ban-client
  7. Conclusione

Fail2ban è un IPS (Intrusion Prevention Software) gratuito e open source che aiuta gli amministratori a proteggere i server Linux da accessi dannosi e attacchi di forza bruta. Fail2ban è scritto in Python e viene fornito con filtri per vari servizi come Apache2, SSH, FTP, ecc. Fail2ban riduce i tentativi di accesso dannosi bloccando gli indirizzi IP degli attacchi di origine.

Fail2ban funziona scansionando i file di registro dei servizi (e.f /var/log/auth.log) e vietando gli indirizzi IP che mostrano tentativi di accesso dannosi come troppe password errate, ricerca di exploit, ecc. Fail2ban supporta anche più backend firewall come iptables, ufw e firewalld. Consente inoltre di impostare una notifica e-mail per ogni tentativo di accesso bloccato.

In questo tutorial, ti mostreremo come installare e configurare Fail2ban per proteggere il server Ubuntu 22.04. Questa guida copre anche il comando di base di fail2ban-client per la gestione del servizio Fail2ban e delle jail.

Prerequisiti

  • Un server Ubuntu 22.04
  • Un utente non root con privilegi sudo.

Configura il firewall UFW

Prima di iniziare a installare Fail2ban, dovrai configurare il firewall sul tuo server Ubuntu.

L'installazione predefinita del server Ubuntu viene fornita con UFW Firewall, che è più facile da gestire rispetto a un altro firewall come iptables.

Ora controlla lo stato del firewall UFW usando il seguente comando.

sudo ufw status

Se ricevi un messaggio di output come \Stato: inattivo\, allora il tuo firewall UFW non è ancora avviato. Ma se ricevi un messaggio di output come \Comando ufw non trovato\, allora il firewall UFW non è installato sul tuo server.

Per installare il pacchetto firewall UFW, eseguire il comando apt di seguito.

sudo apt install ufw -y

Al termine dell'installazione di UFW, eseguire il comando seguente per aggiungere il servizio SSH al firewall UFW.

sudo ufw allow ssh

Successivamente, esegui il comando seguente per avviare e abilitare il firewall UFW.

sudo ufw enable

Immettere y per confermare e avviare il firewall UFW.

Infine, controlla di nuovo il firewall UFW usando il seguente comando.

sudo ufw status

Sotto puoi vedere lo \Stato: attivo\ del firewall UFW con la porta SSH 22 aggiunta alle regole del firewall.

Installazione di Fail2ban su Ubuntu 22.04

Dopo aver installato e configurato il firewall UFW, ora installerai il pacchetto Fail2ban sul tuo server.

Esegui il seguente comando per aggiornare e aggiornare il tuo repository Ubuntu.

sudo apt update

Ora installa il pacchetto Fail2ban usando il comando seguente.

sudo apt install fail2ban -y

L'installazione avrà inizio.

Al termine dell'installazione di Fail2ban, abilitare il servizio Fail2ban e avviare il servizio utilizzando il comando seguente.

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Infine, controlla lo stato del servizio Fail2ban utilizzando il seguente comando.

sudo systemctl status fail2ban

Nello screenshot qui sotto, vedrai che il servizio Fail2ban è in esecuzione sul server Ubuntu 22.04.

Configurazione di Fail2ban

Dopo aver installato Fail2ban, ora è il momento di impostare e configurare Fail2ban.

Tutta la configurazione di Fail2ban è memorizzata nella directory /etc/fail2ban. Di seguito la configurazione dettagliata di Fail2ban che devi sapere:

  • La configurazione fail2ban.conf è la configurazione principale di Fail2ban.
  • La configurazione jail.conf è un esempio della configurazione della jail Fail2ban.
  • La directory action.d contiene le impostazioni delle azioni fail2ban come le impostazioni della posta e del firewall.
  • La directoryjail.d contiene configurazioni aggiuntive per fail2ban jail.

Per iniziare a configurare Fail2ban, dovrai copiare la configurazione predefinita della jail jail.conf in jail.local utilizzando il seguente comando.

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

Ora modifica la configurazione jail.local utilizzando l'editor nano.

sudo nano /etc/fail2ban/jail.local

Innanzitutto, decommenta l'opzione ignoreip e aggiungi il tuo indirizzo IP. Tutti gli indirizzi IP all'interno dell'opzione ignoreip non saranno bloccati da Fail2ban.

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

Per le impostazioni di divieto, puoi modificare la configurazione di cui hai bisogno. In questo esempio, il bantime globale sarà di 1 giorno, il findtime sarà di 10 minuti e il maxretry sarà fino a 5 volte.

L'opzione bantime è l'ora in cui l'indirizzo IP non sarà autorizzato ad accedere al server. L'opzione findtime è la durata tra il numero di fallimenti prima dell'azione di ban. E l'opzione maxretry è il numero di errori per gli indirizzi IP da bannare.

bantime  = 1d
findtime  = 10m
maxretry = 5

L'azione predefinita per Fail2ban è solo quella di vietare l'indirizzo IP. Ma puoi anche impostare la notifica via e-mail ogni volta che un indirizzo IP viene bannato.

Modificare l'opzione di azione come di seguito e modificare il mittente predefinito e l'indirizzo di posta di destinazione.

action = %(action_mw)s
destemail =

Successivamente, per l'integrazione del firewall UFW, devi modificare l'opzione banaction in ufw come di seguito.

banaction = ufw

Infine, per la configurazione delle jail. Questa sezione è dove aggiungi il tuo servizio e lo proteggi usando fail2ban.

In questo esempio, abiliteremo la jail per il servizio SSH, ma sovrascriveremo anche la configurazione predefinita globale per la jail sshd. Il bantime sarà di 1 settimana con massimo tentativo di fallimenti 3 volte e il findtime in 10 minuti.

[sshd]
enabled   = true
maxretry  = 3
findtime  = 1d
bantime   = 1w

port    = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s

Salva e chiudi il file quando hai finito.

Ora esegui il seguente comando per riavviare il servizio Fail2ban e applicare le nuove modifiche alla configurazione jail.local.

sudo systemctl restart fail2ban

Ora hai completato la configurazione di Fail2ban con la notifica e-mail abilitata e il jail sshd abilitato per la protezione del servizio SSH.

Utilizzo di Fail2ban-client per verificare lo stato di Fail2ban

Il fail2ban fornisce un client fail2ban da riga di comando per l'interazione con il servizio Fail2ban. Ciò ti consente di gestire e configurare Fail2ban dalla riga di comando e ti consente anche di gestire le jail di Fail2ban.

Per verificare l'installazione e la configurazione di fail2ban, esegui il comando fail2ban-client di seguito.

sudo fail2ban-client ping

Se ricevi un messaggio di output come \Il server ha risposto: pong\, significa che Fail2ban è in esecuzione senza errori.

Successivamente, esegui il comando fail2ban-client di seguito per verificare lo stato della jail sshd.

sudo fail2ban-client status sshd

Di seguito puoi vedere lo stato dettagliato di sshd jail. Ciò include il file di registro per il servizio SSH e l'elenco degli indirizzi IP vietati nella prigione sshd.

Ora se vuoi ottenere una configurazione dettagliata della sshd jail, puoi usare il comando fail2ban-client come di seguito.

Controlla la configurazione di bantime per sshd jail. Otterrai l'output del bantime qui in pochi secondi.

sudo fail2ban-client get sshd bantime

Controlla la configurazione maxrtey per la sshd jail. Vedrai che il maxretry qui è 3 perché è sovrascritto dalla configurazione globale, che è maxrety 5 volte.

sudo fail2ban-client get sshd maxretry

Per il banaction in sshd jail, puoi usare il seguente comando. E dovresti ottenere l'output di ufw come banaction predefinito per sshd jail.

sudo fail2ban-client get sshd actions

Per il findtime qui, vedrai anche il valore di override dalla prigione sshd. Anche qui l'output sarà in formato secondi.

sudo fail2ban-client get sshd findtime

Infine, puoi anche controllare l'ignoreip predefinito per sshd jail usando il comando seguente. E vedrai che ignoreip ha lo stesso valore della configurazione globale Fail2ban.

sudo fail2ban-client get sshd ignoreip

Ban e Unban IP utilizzando Fail2ban-client

Un'altra cosa importante di Fail2ban qui è come vietare e sbloccare gli indirizzi IP su Fail2ban. Per farlo, puoi anche usare il comando fail2ban-client.

Per vietare manualmente l'indirizzo IP sulla prigione sshd, puoi utilizzare il comando fail2ban-client di seguito. Cambia l'indirizzo IP con l'indirizzo IP che desideri vietare.

sudo fail2ban-client set sshd banip IP-ADDRESS

Per sbloccare l'indirizzo IP da sshd jail, puoi utilizzare il comando fail2ban-client di seguito. Assicurati solo di cambiare l'indirizzo IP con l'indirizzo IP che desideri sbloccare.

sudo fail2ban-client set sshd unbanip IP-ADDRESS

Ora, dopo aver bannato manualmente un indirizzo IP o sbloccato un indirizzo IP, puoi verificare utilizzando il comando fail2ban-client di seguito.

sudo fail2ban-client status sshd

Se escludi manualmente un indirizzo IP, assicurati che l'indirizzo IP sia disponibile nell'elenco degli indirizzi IP esclusi. Ma se annulli un indirizzo IP, assicurati che l'indirizzo IP scompaia dall'elenco degli indirizzi IP vietati.

Conclusione

Congratulazioni! Ora hai installato e configurato correttamente Fail2ban per proteggere Ubuntu 22.04. Hai anche imparato come abilitare il firewall UFW e come integrare Fail2ban con il firewall UFW. Infine, hai anche imparato come gestire Fail2ban utilizzando il comando fail2ban-client, che include come vietare e sbloccare gli indirizzi IP da Fail2ban.