GNU/Linux >> Linux Esercitazione >  >> Rocky Linux

Come installare Fail2ban con Firewalld su Rocky Linux 8.4

Fail2ban è un demone di sistema per la protezione dei 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 diario di 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 il 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 di forza bruta dannosi. Inoltre, fail2ban è molto pratico, 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 comando seguente per assicurarti che il pacchetto firewalld sia disponibile sul tuo sistema.

sudo dnf info firewalld

Otterrai un output simile a quello di seguito.

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

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

sudo systemctl start firewalld

3. Ora abilita il servizio firewalld per l'esecuzione automatica ad ogni avvio del sistema.

sudo systemctl enable firewalld

E avrai 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, ti consente di aggiungere regole, eliminare regole, controllare lo stato, ecc.

Esegui 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 "in esecuzione ". 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 a quello di seguito.

Aggiunta del repository EPEL a Rocky Linux

Prima di installare fail2ban, è necessario aggiungere EPEL (Extra Packages for Enterprise Linux ) nel tuo sistema.

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, controlla tutti i repository disponibili sul tuo sistema utilizzando il comando seguente.

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 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 premere "Invio " per continuare.

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

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

sudo systemctl start fail2ban

3. Successivamente, esegui il comando seguente per abilitare l'avvio automatico del servizio fail2ban ad ogni avvio del sistema.

sudo systemctl enable fail2ban

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

sudo systemctl status fail2ban

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

Configurazione di Fail2ban

Ora configurerai fail2ban e abiliterai fail2ban per funzionare con il firewalld.

1. Copia la configurazione predefinita fail2ban da "jail.conf" a "jail.local " usando il comando seguente.

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

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

sudo nano /etc/fail2ban/jail.local

Sotto "[DEFAULT] " sezione, 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 x l'indirizzo IP sarà bannato. Supporta il formato come giorno, minuto o ore. Per questo esempio, l'host o l'indirizzo IP verrà bannato per "1 ora" dopo il numero massimo di tentativi di autenticazione falliti.
  • findtime =L'indirizzo IP sarà bannato se l'autenticazione massima non è riuscita durante l'ultimo "findtime".
  • maxretry =Quando l'indirizzo IP ha il numero X di maxrtry login fallito, l'IP sarà bannato. Per questo esempio, l'indirizzo IP verrà bannato dopo 5 tentativi di autenticazione falliti.

Regola bantime, findtime e maxrety in base alle tue esigenze, quindi premi "Ctrl+x" e digita "y", quindi premi "Invio" per salvare la configurazione.

3. La configurazione predefinita fail2ban utilizza iptables per il blocco. Per consentire a fail2ban di utilizzare firewalld per il blocco, copia la configurazione "00-firewalld.conf " a "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 "fail2ban-firewalld " pacchetto.

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

sudo systemctl restart fail2ban

Protezione del servizio SSH con Fail2ban

Per impostazione predefinita, fail2ban non blocca alcun indirizzo IP, finché non abiliti la configurazione jail per ogni servizio che desideri proteggere. Inoltre, la configurazione jail sovrascriverà la configurazione predefinita su "jail.local". La configurazione della jail sarà disponibile nella directory "/etc/fail2ban/jail.d".

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

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 "bantime " e "tentativo massimo " opzioni per la prigione "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 comando seguente.

sudo systemctl restart fail2ban

3. Successivamente, controlla lo stato fail2ban utilizzando il comando fail2ban-client. Il client fail2ban è 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 come di seguito.

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

Per verificare la configurazione di una specifica jail, puoi utilizzare il pulsante "get " opzione seguita dal nome della prigione, quindi le opzioni che vuoi controllare.

Controlla la configurazione "maxretry" per jail "sshd" usando il comando seguente.

sudo fail2ban-client get sshd maxretry

E vedrai che l'output è "3 ", abbina il valore nella configurazione "sshd.local".

Quindi, controlla l'azione di divieto predefinita per jail "sshd" usando il comando seguente.

sudo fail2ban-client get sshd actions

E vedrai che l'output è "firewallcmd-rich-rules ", abbina la configurazione globale fail2ban a "00-firewalld.local".

Verifica 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 massimo tentativo "3 " volte, la connessione viene interrotta dal server.

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

sudo fail2ban-client status sshd

E otterrai un output simile come il seguente.

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

2. Il fail2ban genererà regole avanzate firewalld per bloccare gli indirizzi IP. Il firewalld rich-rules è una capacità di filtraggio avanzata su firewalld.

Esegui il comando seguente per mostrare le regole avanzate del 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 usare il comando fail2ban-client.

1. Esegui il comando fail2ban-client 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 dei bannati su fail2ban.

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

sudo fail2ban-client status sshd

E otterrai che l'indirizzo IP viene rimosso dalla "Elenco IP vietati " sezione.

Conclusione

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


Rocky Linux
  1. Come installare Rocky Linux 8.4 passo dopo passo con schermate

  2. Come installare Python 3.9 su Rocky Linux 8

  3. Come installare Apache Tomcat 10 con Nginx su Rocky Linux 8

  4. Come installare Fail2ban con Firewalld su Rocky Linux 8

  5. Come installare Redis su Rocky Linux 8

Come installare TeamViewer su Rocky Linux 8

Come installare Rocky Linux 8 Guida dettagliata con schermate

Come installare Anaconda su Rocky Linux 8

Come installare Snap su Rocky Linux 8

Come installare PHP 7.4 su Rocky Linux 8

Come installare Fail2ban su Rocky Linux 8