GNU/Linux >> Linux Esercitazione >  >> Debian

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, vietando programmi 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.

Il seguente tutorial ti insegnerà come installare Fail2ban ed eseguire alcune configurazioni con esempi completi e suggerimenti essenziali per iniziare a utilizzare Debian 11 Bullseye.

Prerequisiti

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

Aggiorna sistema operativo

Aggiorna la tua 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 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@debian~]$ sudo whoami
root

Per configurare un account sudo esistente o nuovo, visita il nostro tutorial su Aggiunta di un utente a Sudoer su Debian .

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

su

Installa Fail2ban

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

sudo apt install fail2ban

Esempio di output:

Digita Y, quindi premi il tasto Invio per procedere e completare l'installazione.

Per impostazione predefinita, fail2ban dopo l'installazione dovrebbe essere attivo e abilitato. Per verificarlo, utilizza il seguente comando systemctl :

sudo systemctl status fail2ban

Esempio di output:

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 in uscita, che è ver. 0.11.2 (23/11/2020) – (guarisci il mondo con strumenti di sicurezza) . Se desideri sapere in futuro dove si trova la build installata nel programma di rilascio di Fail2ban, visita la pagina di rilascio sulla pagina di Fail2ban Github.

Configura 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 il predefinito 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 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 se non riesce a trovarne uno.

Per fare ciò, usa 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 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 è Ban 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 sotto:

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 192.167.5.5 (example IP address)

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

Esempio sotto:

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 riprovato lo stesso attacco in 10 minuti (trova tempo) x 5 volte (tentativi) . 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 sotto:

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 inviare e-mail ai provider di hosting sull'attività dell'attaccante in modo che si possa fare qualcosa. Nota, fallo solo se utilizzi un proxy di posta elettronica poiché alcuni aggressori non accetteranno questo problema o riceveranno l'e-mail direttamente con l'indirizzo IP del tuo server, usa questa azione con estrema cautela o per niente.

Esempio sotto:

# 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]

Esempio:

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 sotto:

[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 utilizzando 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

Installa UFW (firewall semplice)

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

Innanzitutto, installa UFW:

sudo apt install ufw -y

Quindi, verifica l'installazione e compila:

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 da terminale:

sudo ufw enable

Esempio di output:

Firewall is active and enabled on system startup

Successivamente, aggiungi UFW alla tua banazione che invece non utilizzerà gli IPTABLES predefiniti e tu quello 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 riga banaction =ufw è stato aggiunto per modificare l'azione di esclusione predefinita. Puoi aggiungerne più, supponiamo di voler BAN su UFW e anche utilizzare lo script Cloudflare per vietare l'indirizzo IP utilizzando il loro servizio firewall insieme a segnalare l'indirizzo IP ad AbuseIPDB Fail2ban Integration:

Esempio:

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

È possibile trovare un elenco di azioni predefinite 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 sta rifiutando l'indirizzo IP dopo essere stato bannato dall'azione Fail2ban UFW sul filtro apache-botsearch dopo un tentativo. Questo è solo un esempio di Fail2ban che lavora in un ambiente live e, per aspettarselo, dovresti modificare i filtri in base alle tue esigenze.

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

Aggiorna Fail2ban

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

Innanzitutto, utilizza l'aggiornamento apt comando:

sudo apt update

In secondo luogo, se è disponibile un aggiornamento, puoi utilizzare un aggiornamento apt, che avvierà l'aggiornamento più qualsiasi altro, o se preferisci aggiornare fail2ban, utilizzare quanto segue:

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:

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

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

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.


Debian
  1. Come installare Tomcat 8.5 su Debian 9

  2. Come installare MongoDB su Debian 9

  3. Come installare Nginx su Debian 9

  4. Come installare Apache su Debian 9

  5. Come installare Jenkins su Debian 9

Installa Fail2ban su Debian 11

Come installare e configurare Git su Debian 11

Come installare Fail2Ban su Debian 8

Come installare Fail2Ban su Debian 10

Come installare Vai su Debian 11

Come installare Fail2Ban su Debian 11