GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Installa, configura e usa Fail2ban su Ubuntu 20.04 LTS Server

Tutorial per installare e configurare server, client e servizi Fail2ban su server Linux Ubuntu 20.04 o 18.04 LTS.

Blogger e sviluppatori che eseguono e gestiscono i propri server, ovviamente sono anche responsabili della sua sicurezza. Se nel mondo di oggi non prestiamo attenzione alla sicurezza, allora c'è la possibilità che il nostro server diventi un bersaglio di aggressori e causi danni. Ebbene, sebbene ci siano vari WAF online, tuttavia, per rendere più resistente il server è disponibile un programma open-source chiamato Fail2Ban. Garantisce che l'indirizzo IP di un utente malintenzionato venga bloccato per un certo periodo di tempo dopo diversi tentativi falliti e quindi impedisce un numero illimitato di tentativi che potrebbero successivamente portare alla scoperta della password.

Fail2Ban può monitorare vari servizi. Questo ovviamente include l'accesso SSH, FTP, posta, ecc.  Qui impariamo i passaggi per installare Fail2ban su Ubuntu 20.04 o 18.04 LTS e il suo processo di configurazione.

Installazione Fail2ban su Ubuntu 20.04 o 18.04 LTS

I pacchetti per installare e configurare Fail2ban sono disponibili nel repository ufficiale di Ubuntu 20.04/18.04, quindi dobbiamo solo usare apt comando per la sua installazione.

Innanzitutto, esegui il comando di aggiornamento per ricostruire la cache del repository-

sudo apt update

E poi il comando principale per ottenere questo strumento di sicurezza-

sudo apt install fail2ban

Con l'esecuzione del comando precedente, i seguenti programmi saranno disponibili dopo l'installazione:

  • fail2ban-server – il server
  • fail2ban-client – ​​Programma client per la configurazione e la valutazione del server
  • fail2ban-regex- Programma per testare le espressioni regolari

Abilita e verifica lo stato dei suoi servizi-

sudo systemctl enable fail2ban
sudo systemctl status fail2ban

Fail2ban Configurazione su Ubuntu

fail2ban legge i tipi di file di configurazione con estensione .conf e .local . File con estensione .conf vengono creati durante l'installazione e verranno sovrascritti durante l'aggiornamento del pacchetto quindi tutte le modifiche devono essere apportate nel corrispondente .local File. Pertanto, aggiungi o modifica solo i valori in questo file che sono diversi dalle impostazioni predefinite o globali.

Fail2ban ha tre tipi di file di configurazione:

/etc/fail2ban/action.d/*.conf/*
/etc/fail2ban/filter.d/*.conf/*
/etc/fail2ban/jail.conf
/etc/fail2ban/jail.d/*.conf

Actions.d

I file nella directory /etc/fail2ban/action.d/ contengono i comandi per (sbloccare) gli indirizzi IP. I file di azione contengono due sezioni: [Definition][Init] . Le voci in [Init] la sezione viene utilizzata per sovrascrivere le regole definite nella jail. Gli esempi nella tabella seguente sono tratti da iptables-multiport-conf azione. Tutti i comandi vengono eseguiti con i diritti utente fail2ban.

Panoramica delle opzioni
ingresso descrizione esempio
[Definition]
actionstart Comandi eseguiti all'avvio di fail2ban. actionstart = iptables -N fail2ban-<name>
iptables -A fail2ban-<name> -j RETURN
iptables -I <chain> -p <protocol> -m multiport --dports <port> -j fail2ban-<name>
actionstop Comandi eseguiti all'uscita da fail2ban. actionstop = iptables -D <chain> -p <protocol> -m multiport --dports <port> -j fail2ban-<name>
iptables -F fail2ban-<name>[[BR]]iptables -X fail2ban-<name>
actioncheck Comandi eseguiti prima di ogni actionban. Questi vengono utilizzati per verificare la funzionalità dell'ambiente corrente. actioncheck = iptables -n -L <chain> | grep -q 'fail2ban-<name>[ \t]'
actionban Comandi eseguiti quando un IP viene bannato. La condizione è sempre maxretry deve essere superato e findtime caduto a corto di. actionban = iptables -I fail2ban-<name> 1 -s <ip> -j <blocktype>
actionunban Comandi da utilizzare per annullare il ban. actionunban = iptables -D fail2ban-<name> -s <ip> -j <blocktype>
[Init]
name Il nome predefinito della catena name = default
port porta port = ssh
protocol Viene utilizzato internamente dal lettore di configurazione. Possibili valori: tcpudpicmpall . protocol = tcp
chain La catena iptables a cui devono essere aggiunte le regole fail2ban. Lo standard è INPUT . catena =INGRESSO
Tag azione I tag di azione sono segnaposto che possono essere utilizzati in actionbanactionunbanactioncheck .
ip L'indirizzo IPv4 da escludere.
failures Il numero di tentativi falliti contati.
time Il timestamp Unix (secondi) del divieto.
matches Le voci concatenate dalle righe del file di registro che portano al divieto. Molti caratteri della shell vengono sottoposti a escape.

Filtro.d 

I file nella directory /etc/fail2ban/filter.d/ contiene le espressioni regolari per l'analisi dei file di registro e per l'estrazione dell'indirizzo IP o se vengono utilizzati usedns il nome host. Ci sono solo due sezioni in questi file: [Definition][Includes] . Quest'ultimo può essere utilizzato per leggere altri file di configurazione.

Gli esempi nella tabella seguente sono tratti da iptables-multiport-conf azione. Tutti i comandi vengono eseguiti con i diritti utente fail2ban.

Panoramica delle opzioni
ingresso descrizione esempio
[Definition]
failregex Con l'aiuto di questa espressione regolare, i file di registro vengono cercati per i risultati. Il tag è HOST disponibile qui,
che viene utilizzato come parte dell'espressione regolare e contiene il nome host o l'indirizzo IP.
La distinzione tra indirizzo IP e nome host è determinata automaticamente da fail2ban.
failregex =^%(__prefix_line)sFAIL:\S+ indirizzo da=$
^%(__prefix_line)sFAIL:\S+ libwrap da=$
ignoreregex Le eccezioni possono essere definite qui, anche se erano valide per
il precedente failregex. ignoreregex supporta l'interpolazione di stringhe
in modo che tu possa utilizzare le tue variabili con %(variablenname)s .
ignoreregex =
[INCLUDES]
before Utilizza per fare in modo che un file venga letto prima di quello impostato.
Un esempio è common.conf
prima =common.conf
after Il file viene letto dopo quello impostato dopo =esempio_dopo.local
esempio Dopo aver integrato il common.conf è _daemon disponibile.
Vedi /etc/fail2ban/filter.d/common.conf per maggiori dettagli.
_daemon =xinetd

Jail.conf

Mentre il jail.conf file combina Azioni e fatto Filtro in una prigione. L'utente deve salvare questo file con estensione.loca l per iniziare ad aggiungere le proprie regole o personalizzarle.

Il jail.conf e la tabella seguente fornisce una panoramica dei possibili valori predefiniti.


Panoramica delle opzioni
ingresso descrizione esempio
[DEFAULT]
ignoreip Elenco separato da spazio di IP o reti da ignorare. ignoreip = 127.0.0.1/8 192.168.1.33
bantime Tempo di esclusione in secondi. Un valore negativo è un divieto permanente. bantime = 86400
findtime Il numero di secondi dopo i quali il contatore per maxretry è ripristina. findtime = 660
maxretry Il numero massimo di tentativi non riusciti prima che fail2ban escluda l'IP. maxretry = 2
backend Il back-end, come systemd , può essere impostato qui. L'impostazione predefinita è auto (consigliato). backend = systemd
usedns Impostazione per il comportamento di ricerca inversa di fail2ban. I valori possibili sono yesnowarn .
Quest'ultimo significa che le voci con nomi host danno un avviso nel file di registro, che può portare a un numero elevato di voci.
usedns = warn
[myJail] Il nome della prigione può essere assegnato qui. [ssh]
enabled (De-) attiva la prigione enabled = true
port Definizione della porta, può essere numerica. Più valori sono separati da virgole. port = ssh
filter = sshd Nome del file filtro /etc/fail2ban/filter.d/sshd.conf
logpath Il file di registro da monitorare, che viene controllato per il filtro. logpath = /var/log/auth.log
maxretry, bantime,... È anche possibile definire valori diversi per le opzioni predefinite. maxretry = 3


Crea il tuo file di configurazione Jail


Quindi, ora copiamo il jail.conf per creare un jail.local per aggiungere eventuali impostazioni personalizzate che rimarranno lì anche dopo l'aggiornamento di fail2ban.

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

Per configurare varie impostazioni, modifica i file jail locali creati

sudo nano /etc/fail2ban/jail.local

Pochi esempi-

Inserisci nella whitelist alcuni indirizzi IP, intervalli IP o host

Ora, all'apertura del file, supponiamo che desideri autorizzare alcuni indirizzi IP, intervalli IP o host a essere bloccati dal servizio File2ban. Per questo, definiamo lo stesso nel Jail.local appena creato file.
Vedi :Come controllare l'indirizzo IP sul terminale di comando Linux

Nel file trova il #igonreip riga e rimuovi il # da. Successivamente aggiungi l'indirizzo IP o l'intervallo che desideri inserire nella whitelist.

Bantitime, findtime e maxretry

In modo simile, possiamo anche aumentare o diminuire il tempo dell'indirizzo IP vietato modificando i valori dell'opzione bantime fornita nel file.

[Default]

bantime = 10m

Per ridurre o aumentare il periodo di tempo, è sufficiente modificare i 10 minuti predefiniti impostandoli come preferisci. Considerando che per bloccare l'indirizzo IP in modo permanente utilizzare un valore negativo.

tentativo massimo

Quanti massimi tentativi deve aver fatto un indirizzo IP per essere bloccato? Per impostazione predefinita è cinque e dichiarato utilizzando maxretry opzione in jail.local file. Se vuoi ridurlo diciamo che solo dopo due tentativi dannosi l'IP dovrebbe bloccarsi, quindi cambia il numero da 5 a 2. Allo stesso modo, puoi aumentare anche il numero massimo di tentativi.

maxretry = 5

trovare il tempo

È il tempo tra il numero massimo di tentativi che dovrebbe verificarsi per qualsiasi accesso dannoso o sul sistema prima che Fail2Ban blocchi il particolare indirizzo IP. Ad esempio , qualcuno sta tentando di accedere, se ha effettuato 5 tentativi in ​​10 minuti previsti, il suo IP viene bloccato. Tuttavia, puoi modificare il tempo di ricerca valore per aumentare o diminuire questo periodo di tempo.

findtime = 10m

Fail2ban può inviare avvisi via email

Sì, se alcuni IP vengono bannati, puoi ricevere la notifica via e-mail per lo stesso. Tuttavia, devi abilitare e definire quale indirizzo email desideri utilizzare per ricevere la notifica.

Installa Sendmail- Un agente di trasferimento della posta (MTA) open source

sudo apt install sendmail

Ora, ci sono due impostazioni chiave che dobbiamo eseguire in jail.local file per ricevere notifiche via email.

  1. destemail – indirizzo e-mail che utilizzerà per ricevere una notifica.
  2. mittente – indirizzo email da cui fail2ban invierà le email.

Quindi, nel file trova le due impostazioni precedenti e aggiungi il tuo indirizzo email-

Successivamente, trova la riga sottostante

action = %(action_)s

E cambialo con uno dei seguenti-

action = %(action_)s – Questo invierà una notifica e-mail quando alcuni indirizzi IP vengono bannati.

o

action = %(action_mwl)s – Nel caso in cui desideri la notifica e-mail per l'IP dell'host vietato, comprese le informazioni sui registri, utilizza questa opzione di azione.
Inoltre, puoi guardare il nostro miglior elenco di app client di posta elettronica per Ubuntu o Debian Linux.

Abilita i servizi nel file Jail Fail2ban

Come accennato in precedenza, la creazione di jail.local comprende entrambe le Azioni e Filtri che può essere utilizzato per disabilitare/abilitare i servizi consentiti predefiniti o crearne di propri.

Ad esempio – Per impostazione predefinita, SSH è abilitato in Jail.local di Fail2ban.

In realtà, nel file Fail2ban Jail, vedrai che ci sono molti servizi che ne derivano. Tuttavia, devi abilitarli per l'uso. O altrimenti puoi crearne uno tuo.

In /etc/fail2ban/filters.d cartella puoi vedere tutto il filtro di configurazione file per ogni servizio Fai2ban Jail disponibile lì.

Prima di mostrare come attivarli, verifichiamo quali sono i servizi jail abilitati-

sudo fail2ban-client status

L'output sarà così-

Status
|- Number of jail: 1
`- Jail list: sshd

Ora, se vogliamo attivare alcuni servizi Jail, dobbiamo aggiungere enabled = true nel jail.conf file dopo il titolo del servizio di prigione. L'esempio seguente mostra come abilitare apache-auth carcere:

Esempio:Attiviamo il servizio Apache-auth Fail2ban

Modifica jail.local e trova Apache-Auth  predefinito Servizio di prigione

Salva il file utilizzando Ctrl+X , Y, e premendo Invio Chiave.

Riavvia il server Fail2ban

sudo systemctl restart fail2ban

Ora , usa ancora il client Fail2ban per verificare quanti servizi Jail sono abilitati-

sudo fail2ban-client status

Questa volta l'output sarà-

Status
|- Number of jail: 2
`- Jail list: apache-auth, sshd

Per saperne di più informazioni sul servizio usa il suo nome con il comando sopra-

sudo fail2ban-client status apache-auth

Risultato:

Status for the jail: apache-auth
|- Filter
| |- Currently failed: 0
| |- Total failed: 0
| `- File list: /var/log/apache2/error.log
`- Actions
|- Currently banned: 0
|- Total banned: 0
`- Banned IP list:

Errore:

Se ricevi i seguenti errori, significa che il particolare servizio che desideri abilitare non è ancora installato sul tuo sistema o server. Ad esempio, Se ho abilitato Apache Jail ma Apache stesso non è disponibile sul mio server, verrà visualizzato questo tipo di errore.

fail2ban.service: Main process exited, code=exited, status=255/EXCEPTION

[6613]: ERROR Failed to access socket path: /var/run/fail2ban/fail2ban.sock. Is fail2ban running?

Fail2ban utilizzo client

Anche noi possiamo utilizzare lo strumento di comando client di Fail2ban per gestire i suoi vari servizi: per vedere tutti i comandi ad esso correlati puoi utilizzare il flag della Guida-

fail2ban-client -h

, ad esempio per vietare o sbloccare alcuni IP per alcuni servizi, utilizzare la seguente sintassi

Bandare

fail2ban-client set <JAIL-service> banip <IP>

Per annullare il ban

fail2ban-client set <JAIL-service> unbanip <IP>

Esempio-

sudo fail2ban-client set sshd banip 192.168.0.6

Nota finale-

Quindi, questa è stata una rapida panoramica dell'installazione e della configurazione di Fail2ban su Ubuntu 20.04 o 18.04 LTS . Sebbene la documentazione dello strumento Fail2ban non sia vasta, comunque se qualcuno vuole dare un'occhiata, controlla il suo sito Web ufficiale. Ecco i link:Pagina del progetto, Documentazione, Pagina GitHub per il codice sorgente


Ubuntu
  1. Installa e configura il server VSFTPD su Ubuntu 18.04 LTS

  2. Come installare il server Minecraft su Ubuntu 18.04 LTS

  3. Come installare e utilizzare Telnet su Ubuntu 20.04 LTS

  4. Installa e configura CSF (Config Server Firewall) su Ubuntu 20.04 LTS

  5. Come installare e configurare Fail2ban su Ubuntu 20.04 LTS

Come installare e configurare il server VNC su Ubuntu 20.04 LTS

Come installare Jellyfin Media Server su Ubuntu 20.04 LTS Server/Desktop

Come installare Plex Media Server su Ubuntu 20.04 LTS Server/Desktop

Come installare e configurare il server Web Lighttpd su Ubuntu 20.04 LTS

Come installare e configurare il server DNS su Ubuntu 16.04 LTS

Come installare Fail2ban su Ubuntu 20.04 LTS