Come installare e configurare Fail2ban su Debian 10

11 mar 2021 5 min di lettura
Come installare e configurare Fail2ban su Debian 10
Indice dei contenuti

Introduzione

Tutti i server accessibili da Internet sono a rischio di attacchi di malware. Ad esempio, se si dispone di un'applicazione accessibile dalla rete pubblica, gli aggressori possono utilizzare tentativi di forza bruta per ottenere l'accesso all'applicazione.

Fail2ban è uno strumento che aiuta a proteggere la tua macchina Linux dalla forza bruta e da altri attacchi automatici monitorando i log dei servizi per attività dannose. Utilizza espressioni regolari per eseguire la scansione dei file di registro. Vengono conteggiate tutte le voci che corrispondono ai modelli e quando il loro numero raggiunge una certa soglia predefinita, Fail2ban banna l'IP offensivo utilizzando il firewall di sistema per un periodo di tempo specifico. Quando il periodo di divieto scade, l'indirizzo IP viene rimosso dall'elenco dei divieti.

Questo articolo spiega come installare e configurare Fail2ban su Debian 10.

Se desideri installare Fail2ban su un server in remoto continua a leggere, altrimenti salta il primo paragrafo "Connessione al Server" e leggi il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:

ssh root@IP_DEL_SERVER

Successivamente sarà necessario inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:

ssh nome_utente@IP_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Installare Fail2ban su Debian

Il pacchetto Fail2ban è incluso nei repository Debian 10 predefiniti. Per installarlo, esegui il seguente comando come root o utente con privilegi sudo:

sudo apt update
sudo apt install fail2ban

Una volta completato, il servizio Fail2ban verrà avviato automaticamente. Puoi verificarlo controllando lo stato del servizio:

sudo systemctl status fail2ban

L'output sarà simile a questo:

● fail2ban.service - Fail2Ban Service
   Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2021-03-10 13:11:21 UTC; 45s ago
...

Questo è tutto. A questo punto, hai Fail2Ban in esecuzione sul tuo server Debian.

Configurare Fail2ban

L'installazione predefinita di Fail2ban viene fornita con due file di configurazione /etc/fail2ban/jail.conf e /etc/fail2ban/jail.d/defaults-debian.conf. Non modificare questi file poiché potrebbero essere sovrascritti quando il pacchetto viene aggiornato.

Fail2ban legge i file di configurazione nel seguente ordine. Ogni file .local sovrascrive le impostazioni del file .conf:

  • /etc/fail2ban/jail.conf
  • /etc/fail2ban/jail.d/*.conf
  • /etc/fail2ban/jail.local
  • /etc/fail2ban/jail.d/*.local

Il modo più semplice per configurare Fail2ban è quello di copiare il contenuto del file jail.conf in jail.local e modificare il  file .local. Gli utenti più avanzati possono creare un file .local di configurazione da zero. Il file .local non deve includere tutte le impostazioni del file .conf corrispondente, ma solo quelle che desideri sovrascrivere.

Crea un file .local di configurazione copiando il file predefinito jail.conf:

sudo cp /etc/fail2ban/jail.{conf,local}

Per iniziare a configurare il server Fail2ban, apri il file jail.local con il tuo editor di testo:

sudo nano /etc/fail2ban/jail.local

Il file include commenti che descrivono cosa fa ciascuna opzione di configurazione. In questo esempio, cambieremo le impostazioni di base.

Inserire in whitelist di indirizzi IP

È possibile aggiungere alla direttiva ignoreip indirizzi IP, intervalli IP o host che si desidera escludere dal divieto. Qui dovresti aggiungere il tuo indirizzo IP del PC locale e tutte le altre macchine che desideri inserire nella whitelist.

Rimuovi il commento dalla riga che inizia con ignoreip e aggiungi i tuoi indirizzi IP separati da uno spazio:

ignoreip = 127.0.0.1/8 ::1 123.123.123.123 192.168.1.0/24
/etc/fail2ban/jail.local

Impostare il ban

Le opzioni bantime, findtime e maxretry permettono di impostare il tempo di divieto e le condizioni di divieto.

bantime è la durata per la quale l'IP è vietato. Quando non viene specificato alcun suffisso, il valore predefinito è secondi. Per impostazione predefinita, il bantime valore è impostato su 10 minuti. La maggior parte degli utenti preferisce impostare un periodo di ban più lungo. Modifica il valore a tuo piacimento:

bantime  = 1d
/etc/fail2ban/jail.local

Per bandire definitivamente l'IP, usa un numero negativo.

findtime è la durata tra il numero di errori prima che venga impostato un divieto. Ad esempio, se Fail2ban è impostato per escludere un IP dopo cinque errori (maxretry, vedi sotto), tali errori devono verificarsi entro la durata findtime.

findtime  = 10m
/etc/fail2ban/jail.local

maxretry è il numero di errori prima che un IP venga bannato. Il valore predefinito è impostato su cinque, che dovrebbe andare bene per la maggior parte degli utenti.

maxretry = 5
/etc/fail2ban/jail.local

Notificare tramite l'email

Fail2ban può inviare avvisi e-mail quando un IP è stato bannato. Per ricevere e-mail, devi avere un SMTP installato sul tuo server e modificare l'azione predefinita, che vieta solo l'IP %(action_mw)s, come mostrato di seguito:

action = %(action_mw)s
/etc/fail2ban/jail.local

%(action_mw)s banna l'IP incriminato e invia un'e-mail con un rapporto whois. Se desideri includere i log pertinenti nell'e-mail, imposta l'azione su %(action_mwl)s.

Puoi anche modificare gli indirizzi di posta elettronica di invio e ricezione:

destemail = [email protected]

sender = [email protected]
/etc/fail2ban/jail.local

Fail2ban Jails

Fail2ban utilizza il concetto di jail. Una prigione descrive un servizio e include filtri e azioni. Le voci di registro che corrispondono al modello di ricerca vengono conteggiate e, quando viene soddisfatta una condizione predefinita, vengono eseguite le azioni corrispondenti.

Fail2ban viene fornito con una serie di jail per diversi servizi. Puoi anche creare le tue configurazioni jail. Per impostazione predefinita, è abilitata solo la jail ssh.

Per abilitare una jail, è necessario aggiungere enabled = true dopo il titolo della jail. L'esempio seguente mostra come abilitare la jail postfix:

[postfix]
enabled  = true
port     = smtp,ssmtp
filter   = postfix
logpath  = /var/log/mail.log
/etc/fail2ban/jail.local

Le impostazioni che abbiamo discusso nella sezione precedente, possono essere impostate per jail. Ecco un esempio:

[sshd]
enabled   = true
maxretry  = 3
findtime  = 1d
bantime   = 4w
ignoreip  = 127.0.0.1/8 11.22.33.44
/etc/fail2ban/jail.local

I filtri si trovano nella directory /etc/fail2ban/filter.d, memorizzati in un file con lo stesso nome della jail. Se hai una configurazione personalizzata e hai esperienza con le espressioni regolari, puoi ottimizzare i filtri.

Ogni volta che il file di configurazione viene modificato, il servizio Fail2ban deve essere riavviato affinché le modifiche abbiano effetto:

sudo systemctl restart fail2ban

Client Fail2ban

Fail2ban viene fornito con uno strumento della riga di comando denominato fail2ban-client che è possibile utilizzare per interagire con il servizio Fail2ban.

Per visualizzare tutte le opzioni disponibili, invoca il comando con l'opzione -h:

fail2ban-client -h

Questo strumento può essere utilizzato per vietare/sbloccare (bannare e sbannare) indirizzi IP, modificare le impostazioni, riavviare il servizio e altro ancora. Alcuni esempi:

Ottieni lo stato corrente del server:

sudo fail2ban-client status

Controlla lo stato della jail:

sudo fail2ban-client status sshd

Annulla esclusione di un IP:

sudo fail2ban-client set sshd unbanip 11.22.33.44

Ban un IP:

sudo fail2ban-client set sshd banip 11.22.33.44

Conclusione

Ti abbiamo mostrato come installare e configurare Fail2ban su Debian 10.

Per ulteriori informazioni su questo argomento, visitare la documentazione di Fail2ban.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.