GNU/Linux >> Linux Esercitazione >  >> AlmaLinux

Come installare Fail2ban con Firewalld su AlmaLinux 8

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

La guida fornirà una panoramica sull'installazione di Fail2ban su AlmaLinux 8 e alcuni suggerimenti e impostazioni di base.

Prerequisiti

  • Sistema operativo consigliato: AlmaLinux 8.
  • Account utente: Un account utente con privilegi sudo o accesso root (comando su) .

Aggiornamento del sistema operativo

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

sudo dnf upgrade --refresh -y

Il tutorial utilizzerà il comando sudo e supponendo che tu abbia lo stato sudo . Per verificare lo stato di sudo sul tuo account:

sudo whoami

Esempio di output che mostra lo stato di sudo:

[joshua@localhost ~]$ sudo whoami
root

Se non hai impostato un account utente sudo e lo desideri, visita il nostro tutorial su Come aggiungere un utente ai sudoer su AlmaLinux .

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

su

Installa il repository EPEL

Il primo passaggio consiste nell'importare il repository da EPEL (Extra Packages for Enterprise Linux) come segue:

sudo dnf install epel-release

Esempio di output:

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

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

sudo dnf repolist

Esempio di output:

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

Configura Firewalld

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

sudo dnf info firewalld

Esempio di output:

Come puoi vedere, questo è installato di default su AlmaLinux 8; inoltre, dovrebbe essere automaticamente abilitato sul tuo sistema.

Per confermare, utilizza il seguente comando systemctl :

sudo systemctl status firewalld

Esempio di output:

Un altro trucco pratico con firewalld è usare 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 riattivarlo per l'avvio all'avvio del sistema, utilizzare quanto segue:

sudo systemctl enable firewalld

Esempio di output 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 attuali prima che ne vengano aggiunte di nuove da fail2ban, elenca quelle esistenti per familiarizzare con firewalld:

sudo firewall-cmd --list-all

Esempio di output:

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:

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

Per impostazione predefinita, fail2ban non sarà attivo, quindi devi avviarlo manualmente con il seguente comando systemctl :

sudo systemctl start fail2ban

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

sudo systemctl enable fail2ban

Verifica lo stato con il seguente comando:

sudo systemctl status fail2ban

Esempio di output:

Infine, verifica la versione e la build di fail2ban:

fail2ban-client --version

Esempio di output:

Fail2Ban v0.11.2

Come configurare Fail2ban

Dopo aver completato l'installazione, ora dobbiamo eseguire alcune impostazioni e configurazioni di base. Fail2ban viene fornito con due file di configurazione che si trovano in /etc/fail2ban/jail.conf e la jail predefinita 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 configuriamo Fail2ban come se aggiorni e perdi le tue impostazioni. Semplice, creiamo copie che terminano con .local invece di .conf poiché fail2ban leggerà sempre .local prima di caricare .conf .

Per fare ciò, usa i seguenti comandi.

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

Per impostazione predefinita, jail.local è impostato per utilizzare IPTABLES . Per semplificare le cose, invece di utilizzare 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 Ol codice 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 esaminerà alcune impostazioni che puoi utilizzare o modificare a tuo piacimento. Nota che la maggior parte delle impostazioni sono commentate; il tutorial decommenterà le righe in questione o modificherà quelle esistenti nelle impostazioni di esempio.

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

Incremento del tempo di divieto

La prima impostazione che incontrerai è Interruzione degli incrementi di tempo . 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 i tempi di ban sono minori; ad esempio, 1 ora, vorresti che fosse più lungo se l'attaccante restituisce x5 volte.

È inoltre necessario impostare un moltiplicatore o un fattore affinché la logica di aumento del divieto funzioni. Puoi scegliere uno qualsiasi 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. Ulteriori spiegazioni sono nella configurazione sulla matematica dietro di essa.

Esempio di seguito:

Inserisci IP nella whitelist in Fail2ban

Successivamente nell'elenco, ci imbattiamo nelle opzioni di autorizzazione, decommentiamo quanto segue e indirizziamo tutti gli indirizzi IP che desideri siano 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 intervalli IP.

Esempio di seguito:

Impostazione dell'ora di esclusione predefinita

Il tempo di esclusione predefinito è di 10 minuti predefinito con 10 minuti di ricerca su 5 tentativi. Una spiegazione di ciò è che Fail2ban jail con filtro bandirà il tuo aggressore per 10 minuti dopo che ha ripetuto lo stesso attacco in 10 minuti (trova tempo) x 5 volte (riprova). Puoi impostare alcune impostazioni di divieto predefinite qui.

Tuttavia, quando arrivi alle jail, ti consigliamo di impostare tempi di ban diversi poiché alcuni ban dovrebbero essere automaticamente più lunghi di altri, compresi i tentativi che dovrebbero essere inferiori o superiori.

Esempio di seguito:

E-Mail configurata con Fail2ban

È possibile impostare un indirizzo e-mail per Fail2ban per inviare i report. Il valore 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 a 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 = [email protected]

# Sender e-mail address used solely for some actions
sender = [email protected]

Nota, per impostazione predefinita, Fail2ban utilizza sendmail MTA per le notifiche e-mail. Puoi cambiarlo nella funzione di posta procedendo come segue:

Cambia da:

mta = sendmail

Cambia in:

mail = sendmail

Fail2ban jail

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

Impostazione predefinita per tutte le prigioni 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 filtrare/bannare 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 è 1 e il tempo di esclusione è 48 ore. Questa è un'impostazione della lunghezza massima di tentativi e ban individuali per questa jail che aumenterà automaticamente con il moltiplicatore di ban che abbiamo impostato in precedenza nella guida. Se in uno dei filtri manca questo, puoi aggiungerlo come esempio.

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

Modifica sopra il seguente esempio di seguito:

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

Successivamente, vorresti 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, ricordandosi di rinominarle prima in .jail su .conf, e quindi aggiungendo quanto segue alla configurazione della tua jail.

[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 banna automaticamente come per la 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

Esempi di utilizzo del client Fail2ban

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.

Escludi un indirizzo IP:

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

Annulla un indirizzo IP:

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

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

sudo fail2ban-client -h

Controllo di Firewalld e Fail2ban

Per impostazione predefinita, firewalld dovrebbe essere configurato per vietare automaticamente qualsiasi IP su cui fail2ban è vietato. Per vedere se funziona davvero correttamente, usa il seguente comando:

Un rapido test è quello che si trova nella tua prigione [SSHD] e posizionando enabled =true 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 del 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.

Monitoraggio dei registri di Fail2ban

Molti errori comuni sono creare carceri e andarsene senza testare o monitorare ciò che stanno facendo. La revisione dei log è essenziale, che il log fail2ban si trova nel suo percorso predefinito /var/log/fail2ban.log .

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

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

Il comando può tornare utile per controlli a campione senza doversi immergere nella registrazione.

Disinstalla Fail2ban

Se non hai più bisogno di Fail2ban, per rimuoverlo dal tuo sistema, usa il seguente comando:

sudo dnf autoremove fail2ban fail2ban-firewalld

Esempio di output:

Digita Y, quindi premere il TASTO INVIO per procedere con la disinstallazione.

Nota, questo rimuoverà anche tutte le dipendenze inutilizzate che sono state installate con Fail2ban.


AlmaLinux
  1. Come installare Fail2ban con Firewalld su Rocky Linux 8.4

  2. Come installare MongoDB su AlmaLinux 8

  3. Come installare l'ultimo PHP 8.1 su AlmaLinux

  4. Come installare Lighttpd su AlmaLinux 8

  5. Come installare Fail2ban con Firewalld su Rocky Linux 8

Come installare Linux Kernel 5.15 su AlmaLinux 8

Come installare e configurare Memcached su AlmaLinux 8

Come installare e configurare Git su AlmaLinux 8

Come installare Redis e configurare su AlmaLinux 8

Come installare Elasticsearch su AlmaLinux 8

Come installare Fail2Ban su AlmaLinux 8