Ricerca nel sito web

Come installare Fail2ban con Firewalld su Rocky Linux 8.4


Su questa pagina

  1. Prerequisiti
  2. Impostazione di Firewalld
  3. Aggiunta del repository EPEL a Rocky Linux
  4. Installazione di Fail2ban su Rocky Linux
  5. Configurazione di Fail2ban
  6. Protezione del servizio SSH con Fail2ban
  7. Verifica l'installazione di Fail2ban e Firewalld
  8. Indirizzo IP Uban su Fail2ban
  9. Conclusione

Fail2ban è un demone di sistema per proteggere i server da accessi dannosi e attacchi di forza bruta. Fail2ban è un framework IPS (Intrusion Prevention Software) open source scritto in Python ed è estremamente configurabile. Funziona come un servizio demone che monitorerà il journal SystemD e i file di registro e quindi cercherà eventuali tentativi di autenticazione falliti. Quando l'autenticazione fallita raggiunge il numero massimo X, fail2ban bloccherà automaticamente l'indirizzo IP utilizzando il software firewall.

Se sei un VPS (Virtual Private Server) o proprietario di un server dedicato, dovresti prendere in considerazione l'installazione di fail2ban su tutti i tuoi server. Ti aiuterà a proteggere alcuni servizi di base come SSH e FTP da attacchi dannosi di forza bruta. Inoltre, fail2ban è molto utile, facile da configurare e flessibile.

In questa guida imparerai come installare fail2ban su Rocky Linux, configurare fail2ban con firewalld e proteggere il servizio SSH dagli attacchi di forza bruta.

Prerequisiti

  • Un utente con privilegi di root sudo.

Configurazione di Firewalld

Firewalld è il software firewall predefinito su Rocky Linux. Viene installato automaticamente durante l'installazione di Rocky Linux, ma non è attivato per impostazione predefinita.

1. Esegui il seguente comando per assicurarti che il pacchetto firewalld sia disponibile sul tuo sistema.

sudo dnf info firewalld

Otterrai un output simile al seguente.

Come si vede nello screenshot, il pacchetto firewalld è elencato come \Pacchetti installati\.

2. Successivamente, avviare il servizio firewalld utilizzando il seguente comando.

sudo systemctl start firewalld

3. Ora abilitare il servizio firewalld per l'esecuzione automatica a ogni avvio del sistema.

sudo systemctl enable firewalld

E otterrai il seguente output.

Created symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service → /usr/lib/systemd/system/firewalld.service.
Created symlink /etc/systemd/system/multi-user.target.wants/firewalld.service → /usr/lib/systemd/system/firewalld.service.

4. Successivamente, controlla lo stato del servizio firewalld utilizzando il comando seguente.

sudo systemctl status firewalld

E otterrai il seguente output.

Come visto, il servizio firewalld è attivo e funzionante.

5. Facoltativamente, è possibile controllare lo stato del servizio firewalld utilizzando il comando firewall-cmd. Il firewall-cmd è l'interfaccia principale per interagire con firewalld. Il comando firewall-cmd è un'utilità per la gestione delle regole firewalld, consente di aggiungere regole, eliminare regole, controllare lo stato, ecc.

Eseguire il comando firewall-cmd di seguito per verificare lo stato del servizio firewalld.

sudo firewall-cmd --state

Se il tuo firewalld è attivo, otterrai l'output come \running\. Altrimenti, otterrai l'output come \non in esecuzione\.

Ora esegui il seguente comando firewall-cmd per controllare tutte le regole firewalld attualmente applicate.

sudo firewall-cmd --list-all

Otterrai un output simile al seguente.

Aggiunta del repository EPEL a Rocky Linux

Prima di installare fail2ban, è necessario aggiungere al sistema il repository EPEL (Extra Packages for Enterprise Linux).

1. Ora esegui il seguente comando per installare il repository EPEL.

sudo dnf install epel-release

Digita \y\ per installare e continuare.

2. Al termine dell'installazione, controllare tutti i repository disponibili sul sistema utilizzando il seguente comando.

sudo dnf repolist

Ora vedrai l'output come di seguito.

Come visto, il repository EPEL è disponibile e attivo sul sistema. Ora, continuiamo con l'installazione di fail2ban.

Installazione di Fail2ban su Rocky Linux

1. Per installare fail2ban, eseguire il comando seguente.

sudo dnf install fail2ban fail2ban-firewalld

Digita \y\ per confermare l'installazione e premi \Invio\ per continuare.

Come nella riga di comando, stai anche installando il pacchetto aggiuntivo \fail2ban-firewalld\. Consentirà a fail2ban di manipolare le regole firewalld.

2. Al termine dell'installazione, avviare il servizio fail2ban utilizzando il comando seguente.

sudo systemctl start fail2ban

3. Successivamente, eseguire il comando seguente per consentire l'avvio automatico del servizio fail2ban a ogni avvio del sistema.

sudo systemctl enable fail2ban

4. Ora controlla i servizi di stato fail2ban eseguendo il seguente comando.

sudo systemctl status fail2ban

E otterrai che il servizio fail2ban è attivo e in esecuzione con la configurazione predefinita come di seguito.

Configurazione di Fail2ban

Ora configurerai fail2ban e abiliterai fail2ban a lavorare con firewalld.

1. Copia la configurazione predefinita di fail2ban da \jail.conf\ a \jail.local\ utilizzando il seguente comando.

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

2. Successivamente, modifica la configurazione fail2ban utilizzando il comando nano editor di seguito.

sudo nano /etc/fail2ban/jail.local

Nella sezione \[DEFAULT]\, controlla le configurazioni di seguito.

[DEFAULT]
....
bantime = 1h
findtime = 1h
maxretry = 5

Opzioni che devi conoscere.

  • [DEFAULT]=Tutte le configurazioni in questa sezione verranno applicate come configurazione predefinita globale.
  • bantime=Numero di volte in cui x indirizzo IP sarà bannato. Supporta il formato come giorno, minuto o ore. Per questo esempio, l'host o l'indirizzo IP sarà bannato per \1 ora\ dopo il numero massimo di tentativi falliti di autenticazione.
  • findtime=L'indirizzo IP sarà bannato se ha un'autenticazione massima fallita durante l'ultimo \findtime\.
  • maxretry=Quando l'indirizzo IP ha il numero X di maxrtry login falliti, allora l'IP sarà bannato. Per questo esempio, l'indirizzo IP verrà bannato dopo 5 tentativi di autenticazione falliti.

Regola bantime, findtime e maxrety secondo le tue necessità, quindi premi \Ctrl+x\ e digita \y\, quindi premi \Invio\ per salvare la configurazione.

3. La configurazione predefinita di fail2ban utilizza iptables per il blocco. Per consentire a fail2ban di utilizzare firewalld per il blocco, copiare la configurazione \00-firewalld.conf\ in \00-firewalld.local\ utilizzando il comando seguente.

sudo mv /etc/fail2ban/jail.d/00-firewalld.conf /etc/fail2ban/jail.d/00-firewalld.local

Questa configurazione \00-firewalld.conf\ fa parte del pacchetto \fail2ban-firewalld\.

4. Ora riavvia il servizio fail2ban per applicare nuove configurazioni utilizzando il comando seguente.

sudo systemctl restart fail2ban

Protezione del servizio SSH con Fail2ban

Per impostazione predefinita, fail2ban non blocca alcun indirizzo IP, fino a quando non abiliti la configurazione jail per ogni servizio che desideri proteggere. Inoltre, la configurazione della jail sostituirà la configurazione predefinita su \jail.local\. La configurazione della jail sarà disponibile nella directory \/etc/fail2ban/jail.d\.

1. Creare una nuova configurazione jail per il servizio SSH utilizzando il seguente comando.

sudo nano /etc/fail2ban/jail.d/sshd.local

Ora incolla la seguente configurazione.

[sshd]
enabled = true

# Override the default global configuration
# for specific jail sshd
bantime = 1d
maxretry = 3

Come visto, la configurazione sovrascrive le opzioni \bantime\ e \maxretry\ per la jail \sshd\.

Premi \Ctrl+x\ e digita \Y\, quindi premi \Invio\ per salvare la nuova configurazione della jail.

2. Per applicare la nuova configurazione, riavviare il servizio fail2ban utilizzando il seguente comando.

sudo systemctl restart fail2ban

3. Successivamente, controlla lo stato fail2ban utilizzando il comando fail2ban-client. Il fail2ban-client è una riga di comando per la gestione del server di controllo fail2ban.

Ora esegui il comando fail2ban-client di seguito per verificare la configurazione della jail.

sudo fail2ban-client status

E otterrai un output simile al seguente.

Il fail2ban è in esecuzione con 1 jail nome attivo \sshd\.

Per controllare la configurazione di una specifica jail, puoi usare l'opzione \get\ seguita dal nome della jail, quindi dalle opzioni che vuoi controllare.

Controlla la configurazione \maxretry\ per jail \sshd\ usando il comando qui sotto.

sudo fail2ban-client get sshd maxretry

E vedrai che l'output è \3\, corrisponde al valore sulla configurazione \sshd.local\.

Successivamente, controlla l'azione di divieto predefinita per jail \sshd\ utilizzando il comando seguente.

sudo fail2ban-client get sshd actions

E vedrai che l'output è \firewallcmd-rich-rules\, corrisponde alla configurazione globale fail2ban in \00-firewalld.local\.

Verificare l'installazione di Fail2ban e Firewalld

Per verificare l'installazione di fail2ban, controlla lo stato completo della jail (per questa guida è sshd jail) e controlla le regole firewalld generate da fail2ban.

A scopo di test, di seguito è riportato lo screenshot dopo aver tentato di connettersi a un server SSH con una password errata. Dopo aver raggiunto il maxretry \3\ volte, la connessione viene interrotta dal server.

1. Eseguire il seguente comando per controllare lo stato di una specifica jail (questo esempio sshd jail).

sudo fail2ban-client status sshd

E otterrai un output simile al seguente.

Come visto, la prigione sshd ha 1 indirizzo IP bannato. Se sei su un VPS live o su un server dedicato, vedrai molti più indirizzi IP.

2. Il fail2ban genererà ricche regole firewalld per bloccare gli indirizzi IP. Le ricche regole di firewalld sono una funzionalità di filtraggio avanzata su firewalld.

Esegui il seguente comando per mostrare le ricche regole firewalld generate da fail2ban.

firewall-cmd --list-rich-rules

E otterrai un output simile a quello di seguito.

Indirizzo IP Uban su Fail2ban

Per sbloccare l'indirizzo IP da fail2ban, puoi utilizzare il comando fail2ban-client.

1. Eseguire il comando fail2ban-client riportato di seguito per sbloccare l'indirizzo IP \192.168.1.10\.

sudo fail2ban-client unban 192.168.1.10

E l'indirizzo IP verrà rimosso dall'elenco vietato su fail2ban.

Successivamente, esegui il seguente comando per assicurarti che l'indirizzo IP venga rimosso dal database fail2ban (per questo esempio il jail sshd).

sudo fail2ban-client status sshd

E otterrai che l'indirizzo IP viene rimosso dalla sezione \Elenco IP bloccati\.

Conclusione

Congratulazioni! hai installato correttamente il framework fail2ban IPS su Rocky Linux 8.4. E per il passaggio successivo, puoi esaminare un'altra configurazione della jail per proteggere altri servizi come server FTP, phpMyAdmin, WordPress, ecc.