Come installare Fail2ban con Firewalld su Rocky Linux 8

Fail2ban è un framework software di prevenzione delle intrusioni che protegge i server dei computer principalmente da attacchi di forza bruta, dal divieto di agenti utente dannosi, dal divieto di scanner di URL e molto altro. Fail2ban ottiene ciò leggendo i log di accesso/errore del tuo server o delle tue applicazioni web. Fail2ban è codificato nel linguaggio di programmazione Python.

Il seguente tutorial ti insegnerà come installa Fail2ban su Rocky Linux 8 e la configurazione e i suggerimenti di base.

Prerequisiti

  • Sistema operativo consigliato: Rocky Linux 8.+.
  • Account utente: Un account utente con accesso sudo o root.

Aggiorna il sistema operativo

Aggiorna il tuo Rocky linux sistema operativo per assicurarsi che tutti i pacchetti esistenti siano aggiornati:

sudo dnf upgrade --refresh -y

Il tutorial utilizzerà il comando sudo che collaborano con noi, attingono direttamente dalla storia e dalla tradizione veneziana supponendo che tu abbia lo stato di sudo.

Per verificare lo stato di sudo sul tuo account:

sudo whoami

Esempio di output che mostra lo stato di sudo:

[joshua@rockylinux ~]$ sudo whoami
root

Per configurare un account sudo esistente o nuovo, visita il nostro tutorial su Come aggiungere un utente a Sudoers su Rocky Linux.

Per utilizzare l' account di root, usa il seguente comando con la password di root per accedere.

su

pubblicità


Installa il repository EPEL

Il primo passo è importare il repository da EPEL (Pacchetti extra per Enterprise Linux) come segue:

sudo dnf install epel-release

Esempio di output:

Come installare Fail2ban con Firewalld su Rocky Linux 8

Digita "Y", quindi premere il tasto "TASTO INVIO" per procedere con l'installazione.

È sempre una buona idea verificare se il repository è stato aggiunto con successo; questo può essere fatto con il comando repolista dnf come di seguito:

sudo dnf repolist

Esempio di output:

Come installare Fail2ban con Firewalld su Rocky Linux 8

Come puoi vedere, il repository EPEL è stato aggiunto correttamente. Suggerimento utile, puoi riutilizzare questo comando per vedere eventuali future importazioni di repository.

Configura Firewalld

Per impostazione predefinita, Rocky Linux 8 viene fornito con firewalld installato. Per verificarlo, usa il seguente comando:

sudo dnf info firewalld

Esempio di output:

Come installare Fail2ban con Firewalld su Rocky Linux 8

Come puoi vedere, questo è installato su Rocky Linux 8 per impostazione predefinita; inoltre, dovrebbe essere abilitato automaticamente sul tuo sistema.

Per confermare ciò, utilizzare il seguente comando systemctl:

sudo systemctl status firewalld

Esempio di output:

Come installare Fail2ban con Firewalld su Rocky Linux 8

Un altro trucco utile con firewalld è utilizzare il comando firewall-cmd –state per verificare se è in esecuzione o meno:

sudo firewall-cmd --state

Esempio di output:

running

Se il tuo firewalld è spento, per avviarlo usa quanto segue:

sudo systemctl start firewalld

Per riabilitarlo per l'avvio all'avvio del sistema, utilizzare quanto segue:

sudo systemctl enable firewalld

Output di esempio in caso di successo:

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.

Se il tuo firewall è stato rimosso, puoi reinstallare firewalld con il seguente comando:

sudo dnf install firewalld

Infine, per verificare le regole correnti prima che vengano aggiunte nuove regole da fail2ban, elenca quelle esistenti per familiarizzare con firewalld:

sudo firewall-cmd --list-all

Esempio di output:

Come installare Fail2ban con Firewalld su Rocky Linux 8

pubblicità


Installa Fail2ban

Ora che hai installato il repository EPEL, è il momento di installare fail2ban e il pacchetto aggiuntivo fail2ban-firewalld, che configurerà correttamente Fail2ban per funzionare con firewalld per un uso futuro.

sudo dnf install fail2ban fail2ban-firewalld

Esempio di output:

Come installare Fail2ban con Firewalld su Rocky Linux 8

Digita "Y", quindi premere il tasto "TASTO INVIO" per procedere con l'installazione.

Per impostazione predefinita, fail2ban non sarà attivo, quindi è necessario avviarlo manualmente con quanto segue comando systemctl:

sudo systemctl start fail2ban

Quindi per abilitare fail2ban all'avvio del sistema, utilizzare quanto segue:

sudo systemctl enable fail2ban

Verificare lo stato con il seguente comando:

sudo systemctl status fail2ban

Esempio di output:

Come installare Fail2ban con Firewalld su Rocky Linux 8

Infine, verifica la versione e la build di fail2ban:

fail2ban-client --version

Esempio di output:

Fail2Ban v0.11.2

Configura Fail2ban

Dopo aver completato l'installazione, è necessario eseguire alcune operazioni di installazione e configurazione di base. Fail2ban viene fornito con due file di configurazione che si trovano in /etc/fail2ban/jail.conf e il jail default fail2ban /etc/fail2ban/jail.d/00-firewalld.conf. Non modificare questi file. I file di configurazione originali sono i tuoi originali e verranno sostituiti in qualsiasi aggiornamento di Fail2ban in futuro.

Ora potresti chiederti come abbiamo impostato Fail2ban come se aggiornassi e perdessi le tue impostazioni. Semplice, creiamo copie che terminano con .Locale invece di .conf come leggerà sempre fail2ban .Locale i file prima di caricarli .conf se non riesce a trovarne uno.

Per fare ciò, utilizzare i seguenti comandi.

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

Per impostazione predefinita, jail.local è impostato per l'uso IPTABLES. Per semplificare le cose, invece di usare il 00-firewalld.conf/jail e creando le tue regole da zero, apri jail.local e vai alla riga 208 e sostituisci:

Apri jail.local:

sudo nano /etc/fail2ban/jail.local

Trova Olcodice d (IPTABLES):

anaction = iptables-multiport
banaction_allports = iptables-allports

Sostituisci con (FIREWALLD):

banaction = firewallcmd-rich-rules[actiontype=]
banaction_allports = firewallcmd-rich-rules[actiontype=]

Successivamente, il tutorial verrà eseguito su alcune impostazioni che puoi utilizzare o modificare a tuo piacimento. Nota che la maggior parte delle impostazioni sono commentate; il tutorial rimuoverà il commento dalle righe in questione o modificherà quelle esistenti nelle impostazioni di esempio.

Ricorda, queste sono impostazioni opzionali e puoi impostare quello che vuoi se ne sai di più su fail2ban e ne hai la fiducia.

Incremento del tempo di divieto

La prima impostazione che incontrerai sono gli incrementi di tempo di divieto. Dovresti abilitarlo ogni volta che l'attaccante ritorna. Aumenterà il tempo di ban, salvando il tuo sistema dal ri-bannare costantemente lo stesso IP se la durata del tuo ban è minore; ad esempio, 1 ora, vorresti che fosse più lungo se l'attaccante ritorna x5 volte.

È inoltre necessario impostare un moltiplicatore o un fattore affinché la logica di aumento del divieto funzioni. Puoi scegliere uno di questi; tuttavia, nella nostra guida, preferiamo i moltiplicatori, come evidenziato nel nostro esempio qui sotto, poiché puoi impostare aumenti del tempo di ban personalizzati a tuo piacimento. Un'ulteriore spiegazione è nel set-up sulla matematica dietro di esso.

Esempio di seguito:

Come installare Fail2ban con Firewalld su Rocky Linux 8

Whitelist IP in Fail2ban

Successivamente nell'elenco, ci imbattiamo nelle opzioni di whitelist, decommentiamo quanto segue e indirizziamo tutti gli indirizzi IP che desideri vengano inseriti nella whitelist.

ignoreip = 127.0.0.1/8 ::1 180.53.31.33 (example IP address)

Assicurati di inserire uno spazio o una virgola tra gli indirizzi IP. Puoi anche autorizzare gli intervalli IP.

Esempio di seguito:

Come installare Fail2ban con Firewalld su Rocky Linux 8

Impostazione dell'orario di divieto predefinito

Le impostazioni predefinite del tempo di ban sono 10 minuti con 10 minuti di ricerca su 5 tentativi. Una spiegazione di ciò è che la jail di Fail2ban con il filtraggio metterà al bando il tuo aggressore per 10 minuti dopo che avrà ritentato lo stesso attacco in 10 minuti (tempo di ricerca) x 5 volte (riprova). Puoi impostare alcune impostazioni di divieto predefinite qui.

Tuttavia, quando si arriva alle jail, si consiglia di impostare tempi di ban diversi poiché alcuni ban dovrebbero essere automaticamente più lunghi di altri, inclusi i tentativi che dovrebbero essere inferiori o superiori.

Esempio di seguito:

Come installare Fail2ban con Firewalld su Rocky Linux 8

E-Mail configurata con Fail2ban

Puoi impostare un indirizzo e-mail per Fail2ban per inviare report. Il predefinito azione = %(action_mw)s che vieta l'IP offensivo e invia un'e-mail con un rapporto whois da esaminare. Tuttavia, nella tua cartella action.d, esistono altre opzioni di posta elettronica per segnalare non solo te stesso, ma anche inviare e-mail ai provider della lista nera e all'ISP dell'attaccante da segnalare.

Esempio di seguito:

# Destination email address used solely for the interpolations in
# jail.{conf,local,d/*} configuration files.
destemail = admin@example.com

# Sender e-mail address used solely for some actions
sender = fail2ban@example.com
Come installare Fail2ban con Firewalld su Rocky Linux 8

Nota, per impostazione predefinita, Fail2ban utilizza sendmail MTA per le notifiche e-mail. Puoi cambiarlo in funzione di posta Effettuando le seguenti operazioni:

Cambio da:

mta = sendmail

Cambia in:

mail = sendmail

Carceri Fail2ban

Successivamente, veniamo alle carceri. Puoi impostare jail predefinite con filtri e azioni create dalla comunità che coprono molte applicazioni server popolari. Puoi creare jail personalizzate o trovarne di esterne su vari sintesi e siti web della comunità; tuttavia, imposteremo le jail predefinite del pacchetto Fail2ban.

Configurazione predefinita per tutte le jail come nell'immagine qui sotto. Nota come nulla è abilitato.

Esempio di seguito:

[apache-badbots]
# Ban hosts which agent identifies spammer robots crawling the web
# for email addresses. The mail outputs are buffered.
port     = http,https
logpath  = %(apache_access_log)s
bantime  = 48h
maxretry = 1

Quindi, abbiamo un server HTTP Apache 2 e, come per filtrare/escludere i bot dannosi, tutto ciò che devi fare è aggiungere enabled = true come nell'esempio seguente.

[apache-badbots]
# Ban hosts which agent identifies spammer robots crawling the web
# for email addresses. The mail outputs are buffered.
enabled = true
port     = http,https
logpath  = %(apache_access_log)s
bantime  = 48h
maxretry = 1

Nota come il numero massimo di tentativi è uguale a 1 e il tempo di ban è 48 ore. Questa è un'impostazione di lunghezza massima dei tentativi e dei ban individuali per questa jail che aumenterà automaticamente con il moltiplicatore di ban che abbiamo impostato in precedenza nella guida. Se uno dei filtri non è presente, puoi aggiungerlo come esempio.

[apache-noscript]
enabled = true
port     = http,https
logpath  = %(apache_error_log)s

Modificare sopra il seguente esempio di seguito:

[apache-noscript]
enabled = true
port     = http,https
logpath  = %(apache_error_log)s
bantime = 1d
maxretry = 3

Successivamente, ti piacerebbe avere azioni diverse da quelle specificate nella configurazione predefinita in /etc/fail2ban/jail.local, azioni aggiuntive che puoi trovare nella directory action.d. Diverse azioni da questa directory possono essere facilmente impostate seguendo le indicazioni all'interno di quelle righe di configurazione delle azioni nei file, ricordando di rinominarle prima in .prigione al di sopra .conf, e quindi aggiungendo quanto segue alla configurazione della prigione.

[apache-botsearch]
enabled = true
port     = http,https
logpath  = %(apache_error_log)s
banaction = action_mw
cloudflare
bantime = 72h
maxretry = 1

Come puoi vedere, abbiamo aggiunto action_mw, quindi ban automaticamente come da nostra azione predefinita e ci invia un rapporto via email con whois, quindi l'azione seguente, se usi Cloudflare, bloccherà anche l'indirizzo IP sul servizio. Ricorda, Cloudflare deve essere configurato prima dell'uso. Leggi il file action.d cloudflare.conf.

Una volta che sei soddisfatto della tua configurazione, esegui il seguente comando per riavviare fail2ban e caricare le tue nuove jail.

sudo systemctl restart fail2ban

pubblicità


Esempi di utilizzo di Fail2ban-client

Ora che sei attivo e funzionante con Fail2ban, devi conoscere alcuni comandi operativi di base. Lo facciamo usando il comando fail2ban-client. Potrebbe essere necessario disporre dei privilegi sudo, a seconda della configurazione.

Escludere un indirizzo IP:

sudo fail2ban-client set apache-botsearch banip <ip address>

Riattiva un indirizzo IP:

sudo fail2ban-client set apache-botsearch unbanip <ip address>

Comando per visualizzare il menu di aiuto se hai bisogno di trovare impostazioni aggiuntive o ottenere aiuto su uno in particolare.

sudo fail2ban-client -h

Verifica di Firewalld e Fail2ban

Per impostazione predefinita, firewalld dovrebbe essere configurato per bannare automaticamente qualsiasi IP su cui fail2ban esegue un ban. Per vedere se funziona davvero correttamente, usa il seguente comando:

Un test rapido si trova nella tua prigione [SSHD] e mettendo abilitato = vero anche se non stai usando questa jail in quanto è solo un test, usa il seguente comando ban:

sudo fail2ban-client set sshd banip 192.155.1.7

Ora elenca le regole avanzate dell'elenco firewall come segue:

firewall-cmd --list-rich-rules

Esempio di output:

rule family="ipv4" source address="192.155.1.7" port port="ssh" protocol="tcp" reject type="icmp-port-unreachable"

Come puoi vedere, fail2ban e firewalld funzionano correttamente per un ambiente live.


pubblicità


Monitoraggio dei log di Fail2ban

Molti errori comuni vengono impostati come carceri e se ne vanno senza testare o monitorare ciò che stanno facendo. La revisione dei registri è essenziale, che il registro fail2ban si trova nel suo percorso predefinito /var/log/fail2ban.log.

Se hai un server che riceve traffico decente, un comando eccellente per guardare dal vivo per vedere eventuali problemi e tenerlo d'occhio mentre lavori in altri server è usare il comando tail -f sotto.

sudo tail -f /var/log/fail2ban.log

Il comando può tornare utile per il controllo a campione senza dover immergersi nella registrazione.

Commenti e Conclusione

Il tutorial ti ha mostrato le basi per installare Fail2ban sul sistema Rocky Linux 8 e impostare alcune jail con i filtri disponibili. Fail2ban è uno strumento potente. Puoi configurarlo in molti modi diversi da quello che ho mostrato qui. È solo un esempio di come aggirarlo, per cominciare. Fail2ban è attivamente sviluppato ed è una scelta solida da implementare sul tuo server in questi tempi in cui gli attacchi stanno diventando così frequenti.

2 pensieri su "Come installare Fail2ban con Firewalld su Rocky Linux 8"

    • Ciao Edgar,

      Sì, è possibile, ho alcune regole personalizzate con UFW/Modsecurity che utilizzo su un altro server che gestivo. Le possibilità sono infinite, tutto dipende dalla tua situazione e da cosa stai cercando di fare.

      Farò un tutorial nelle prossime settimane quando avrò più tempo e dettagli per quanto ne so, ma non lasciare che questo ti impedisca di provare.

      Grazie.

      ================================================== ============

      Ahoj Edgare,

      Ano, je to možné, mám nějaká vlastní pravidla s UFW/Modsecurity, která používám na jiném serveru, který jsem spravoval. Možnosti jsou nekonečné, vše závisí na vaší situaci a na tom, co se snažíte dělat.

      Během několika příštích týdnů, až budu mít více času a podrobností, udělám tutoriál, pokud vím, ale nenechte se tím odradit od pokusu.

      Grazie.

      Rispondi

Lascia un tuo commento