Come installare e configurare Fail2ban su Debian 11

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 installare Fail2ban e fare alcune configurazioni con esempi completi e suggerimenti essenziali per iniziare su Debian 11 Bullseye.

Prerequisiti

  • Sistema operativo consigliato: Debian 11 Bullseye
  • Account utente: Un account utente con accesso sudo o root.
  • Pacchetti richiesti: wget

Aggiorna il sistema operativo

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

sudo apt update && sudo apt upgrade -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@debian~]$ sudo whoami
root

Per configurare un account sudo esistente o nuovo, visita il nostro tutorial su Aggiungere un utente a Sudoers su Debian.

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

su

pubblicità


Installa Fail2ban

Per impostazione predefinita, Fail2ban è incluso nel repository Debian 11 Bullseye. Per installare il software, usa il seguente comando nel tuo terminale:

sudo apt install fail2ban

Esempio di output:

Come installare e configurare Fail2ban su Debian 11

Tipo Y, poi premere il tasto invio per procedere e completare l'installazione.

Per impostazione predefinita, fail2ban dopo l'installazione dovrebbe essere attivo e abilitato. Per verificarlo, usa quanto segue comando systemctl:

sudo systemctl status fail2ban

Esempio di output:

Come installare e configurare Fail2ban su Debian 11

Se il tuo servizio fail2ban non è attivato, esegui i seguenti comandi per avviarlo e, se lo desideri, abilitalo all'avvio del sistema per impostazione predefinita:

sudo systemctl start fail2ban

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

sudo systemctl enable fail2ban

Infine, verifica la versione e la build di fail2ban:

fail2ban-client --version

Esempio di output:

Fail2Ban v0.11.2

Questo mostra che hai una delle ultime versioni stabili, che è ver. 0.11.2 (2020/11/23) – (guarire il mondo con strumenti di sicurezza). Se desideri sapere in futuro dove si trova la tua build installata nel programma di rilascio di Fail2ban, visita la pagina di rilascio su Pagina di Fail2ban Github.

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 default Fail2ban /etc/fail2ban/jail.d/defaults-debian.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 Fail2ban leggerà sempre .Locale i file prima di caricarli .conf se non riesce a trovarne uno.

Per fare ciò, utilizzare il seguente comando:

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

Ora apri il file di configurazione per procedere con la configurazione:

sudo nano /etc/fail2ban/jail.local

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 e configurare Fail2ban su Debian 11

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 192.167.5.5 (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 e configurare Fail2ban su Debian 11

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 eliminerà il tuo aggressore per 10 minuti dopo che avrà ritentato lo stesso attacco in 10 minuti (trovare il tempo) 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 e configurare Fail2ban su Debian 11

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 a te stesso, ma anche inviare e-mail ai provider di hosting sull'attività dell'attaccante in modo da poter fare qualcosa. Nota, fallo solo se usi un proxy e-mail poiché alcuni aggressori non prenderanno gentilmente questo o riceveranno l'e-mail direttamente con l'indirizzo IP del tuo server, usa questa azione con estrema cautela o per niente.

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

Esempio:

Come installare e configurare Fail2ban su Debian 11

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

Installa UFW (firewall semplice)

Per impostazione predefinita, Debian non viene fornito con UFW. Per gli utenti che preferiscono utilizzare UFW con Fail2ban, seguire i passaggi seguenti.

Innanzitutto, installa UFW:

sudo apt install ufw -y

Quindi, verifica l'installazione e crea:

sudo ufw version

Esempio di output:

ufw 0.36
Copyright 2008-2015 Canonical Ltd.

Ora abilita all'avvio del sistema e attiva fail2ban usando il comando del terminale:

sudo ufw enable

Esempio di output:

Firewall is active and enabled on system startup

Il prossimo, aggiungi UFW alla tua banazione, che invece non utilizzerà gli IPTABLES predefiniti e tu ciò che specifichi:

Esempio da:

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

Esempio per:

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

Come puoi vedere, la nuova linea banazione = ufw è stato aggiunto per modificare l'azione di divieto predefinita. Puoi aggiungere più, diciamo che vuoi BAN su UFW e anche usare lo script Cloudflare per vietare l'indirizzo IP usando il loro servizio firewall insieme a segnalare l'indirizzo IP a AbusoIntegrazione Fail2ban IPDB:

Esempio:

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

Un elenco di azioni predefinite può essere trovato in /etc/fail2ban/actions.d; tutte le azioni hanno una configurazione di base e casi d'uso.

Per visualizzare gli indirizzi IP vietati, utilizzare il seguente comando UFW:

sudo ufw status verbrose

Esempio di output:

Anywhere                   REJECT      <IP ADDRESS>               # by Fail2Ban after 1 attempts against apache-botsearch

Come puoi vedere, puoi vedere che l'UFW è rifiutare l'indirizzo IP dopo essere stato bandito dall'azione Fail2ban UFW sul filtra apache-botsearch dopo un tentativo. Questo è solo un esempio di Fail2ban che lavora in un ambiente live e, aspettati, dovresti modificare i tuoi filtri in base alle tue esigenze.

Nota, non sbloccare gli indirizzi IP utilizzando UFW. Assicurati di utilizzare l'azione fail2ban-client unban, o l'IP verrà nuovamente bannato quando torni al sito poiché UFW non può comunicare con Fail2ban.


pubblicità


Aggiorna Fail2ban

Le versioni di Fail2ban non escono spesso, quindi non vedrai cambiamenti significativi ogni settimana o, se è per questo, anche mensilmente. Tuttavia, per aggiornare Fail2ban, si applica lo stesso processo quando si controllano gli aggiornamenti del proprio sistema Debian.

Innanzitutto, usa il file aggiornamento apt comando:

sudo apt update

In secondo luogo, se è disponibile un aggiornamento, puoi utilizzare un apt upgrade, che avvierà l'aggiornamento più tutti gli altri, o se preferisci aggiornare fail2ban, utilizza il seguente:

sudo apt upgrade fail2ban

Disinstalla Fail2ban

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

sudo apt autoremove fail2ban --purge

Esempio di output:

Tipo Y, quindi premere il tasto TASTO INVIO per procedere alla rimozione.

Nota che questo rimuoverà anche tutte le dipendenze inutilizzate che sono state installate con Fail2ban originariamente per la rimozione completa.


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 Debian 11 Bullseye e configurare 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 è sviluppato attivamente ed è una scelta solida da implementare sul tuo server in questi tempi in cui gli attacchi stanno diventando così frequenti.

Sottoscrivi
Notifica
4 Commenti
Feedback in linea
Visualizza tutti i commenti

UFW -> ufw nella configurazione jail.local.
(fallisce con "UFW")

banazione = ufw
-> Il minuscolo per ufw è importante nel tuo esempio per jail.local

4
0
Amerei i tuoi pensieri, per favore commenta.x