Introduzione
Fail2ban è un software che protegge il tuo server da attacchi di forza bruta. Lo fa monitorando i registri del server e rilevando qualsiasi attività sospetta.
Il programma rileva quando c'è un numero irragionevole di tentativi falliti e aggiunge automaticamente nuovi a iptables che bloccano l'IP specificato. Questo IP (o host) viene quindi bloccato per un periodo di tempo specificato o indefinitamente.
Pertanto, l'installazione di questo software di monitoraggio dei registri è un modo eccellente per fornire un altro livello alla sicurezza del server. Tuttavia, può essere solo una parte del tuo piano generale di sicurezza del server. Esplora più misure con questi 21 suggerimenti per la sicurezza del server.
In questo tutorial imparerai come installare e configurare Fail2ban sul tuo server.
Prerequisiti
- Accesso a una riga di comando / finestra terminale
- Accesso a un account utente con sudo o privilegi di root
Installa Fail2ban
Come installare Fail2ban dipende dal sistema operativo in esecuzione sul tuo server. Di seguito troverai i comandi per installare e abilitare Fail2ban su Ubuntu , CentOS , Fedora e Debian .
Importante: Fail2ban non sostituisce i firewall software, come iptables. È inteso come un altro livello di sicurezza e non dovrebbe sostituire un firewall.
Installa Fail2ban su Ubuntu
1. Prima di aggiungere nuovi pacchetti, è importante aggiornare il repository di sistema e aggiorna Software. Per farlo, esegui il comando:
apt-get update && apt-get upgrade
Premi y
per confermare e premi Invio .
2. Ora puoi installare Fail2ban con:
apt-get install fail2ban
3. Facoltativamente, puoi installare Sendmail per il supporto e-mail:
apt-get install sendmail
4. Successivamente, devi consentire l'accesso SSH attraverso il firewall:
ufw allow ssh
5. Infine, abilita il firewall :
ufw enable
Installa Fail2ban su CentOS
1. Per installare Fail2ban su CentOS, è necessario il repository EPEL . Aggiorna il sistema e aggiungi il repository eseguendo:
yum update && yum install epel-release
2. Con il repository EPEL configurato, installa Fail2ban con il comando:
yum install fail2ban
3. Successivamente, è necessario avviare il servizio Fail2ban e abilitarlo all'avvio:
systemctl start fail2ban
systemctl enable fail2ban
4. Per il supporto e-mail, puoi installare Sendmail con:
yum install sendmail
5. Per avviare e abilitare Sendmail servizio eseguito:
systemctl start sendmail
systemctl enable sendmail
Installa Fail2ban su Fedora
1. Inizia aggiornando il sistema :
dnf update
2. Quindi, installa Fail2ban e Invia email (opzionale, se hai bisogno di supporto e-mail):
dnf install fail2ban
dnf install sendmail
3. Poiché questi servizi non si avviano automaticamente su Fedora, è necessario avviare e abilitare loro con:
systemctl start fail2ban
systemctl enable fail2ban
systemctl start sendmail
systemctl enable sendmail
Installa Fail2ban su Debian
1. Aggiorna e aggiorna il sistema:
apt-get update && apt-get upgrade -y
Premi y e Invio per confermare.
2. Quindi, installa Fail2ban con il comando:
apt-get install fail2ban
3. Per il supporto e-mail, puoi anche installare Sendmail usando il comando:
apt-get install sendmail-bin sendmail
Configura Fail2ban
Configura Fail2ban modificando i seguenti file di configurazione:
- file fail2ban.local
- file jail.local
Configura il file fail2ban.local
Fail2ban definisce la sua configurazione globale in fail2ban.conf file. Il file è costituito dalla configurazione predefinita e generalmente non è consigliabile modificarlo.
Tutte le modifiche alla configurazione devono essere eseguite in un fail2ban.local separato file.
1. Pertanto, la prima cosa da fare è copiare il contenuto di .conf file in un .local file. Il comando per farlo è:
cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local
2. Non ci sarà alcun output dopo questo comando. Il passaggio successivo consiste nell'aprire il file fail2ban.local utilizzando un editor di testo a tua scelta:
nano fail2ban.local
3. Dovresti vedere un file simile all'immagine qui sotto:
In questo esempio, i commenti in blu spiegano ciascuna opzione ei suoi possibili valori. Le linee bianche sono le opzioni che puoi modificare e includono:
loglevel
– Imposta l'output del livello di registro suCRITICAL,
ERROR
,WARNING
,WARNING
,INFO
oDEBUG
.logtarget
– Imposta la destinazione del registro, che può essere unFILE
,SYSLOG
,STDERR
oSTDOUT
.syslogsocket
– Imposta il file socket syslog suauto
oFILE
(questo viene utilizzato solo se illogtarget
è impostato suSYSLOG
)socket
– Impostare il file socket utilizzato per comunicare con il demone. Assicurati di non rimuovere questo file. Il percorso predefinito è:/var/run/fail2ban/fail2ban.sock
pidfile
– Impostare il file PID utilizzato per memorizzare l'ID di processo del server fail2ban. La posizione predefinita è:/var/run/fail2ban/fail2ban.pid
Configura il file jail.local
Un altro file di configurazione di Fail2ban che potresti dover modificare è jail.conf file che include jail che definiscono i filtri con le azioni.
Proprio come con la configurazione globale, il jail.config il file non deve essere modificato direttamente. Invece, tutte le personalizzazioni dovrebbero essere effettuate in jail.local file.
1. Se devi apportare alcune modifiche, copia il contenuto di .conf file in un .local file:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
2. Apri il file jail.local con un editor di testo a tua scelta:
nano jail.local
3. Dovresti vedere il seguente contenuto:
Lì puoi impostare le seguenti opzioni:
ignoreself
– Specificare se l'indirizzo IP locale deve essere ignorato impostando il valoretrue
false
.ignoreip
– Consente di specificare indirizzi IP, maschere CIDR o host DNS che devono essere banditi. Separa più indirizzi con uno spazio.ignorecommand
– Definisci ilpath/to/command
se uno dovrebbe essere ignorato.
bantime
– Specifica il numero di secondi in cui un host viene bannato (l'impostazione predefinita è600
)maxretry
– Il numero di errori consentiti prima che un host venga bannato (per impostazione predefinita, impostato su5
).findtime
– Il tempo in cui l'host non deve utilizzare ilmaxretry
numero per non essere bannato (generalmente impostato su10
minuti). Ad esempio, se un host fallisce 5 volte in 10 minuti, viene bannato per 600 secondi.
backend
– Specificare il back-end utilizzato per ottenere la modifica dei file. Se stai usando CentOS o Fedora, devi impostare il backend susystemd
. Il valore predefinitoauto
è sufficiente per altri sistemi operativi.[ssh]
– per impostazione predefinita, Fail2ban non ha jail abilitate. Pertanto, è necessario farlo manualmente aggiungendo le jail al file di configurazione. Ad esempio, puoi abilitare il jail del demone SSH decommentando (rimuovendo#
) le righe[ssh]
eenabled = true
.
destemail
– Specifica l'indirizzo e-mail a cui desideri ricevere le notifichesender
– Definisce l'indirizzo email da cui ricevi le notifiche
Configurazioni jail.local aggiuntive
Puoi anche impostare configurazioni aggiuntive nel file jail.local, come per SSH e iptables. Queste opzioni includono:
banaction
– Specifica l'azione predefinita utilizzata quandomaxretry
è raggiunto.banaction_allports
– Ti permette di etichettare un IP che dovrebbe essere bloccato in ogni porta.port
– Il valore deve corrispondere al servizio impostato. Potrebbe esseressh
o un numero di porta (se stai utilizzando una porta alternativa).filter
– Il nome del file contenente le informazioni failregex, che si trova in/etc/fail2ban/filter.d
.
Riavvia il servizio
Se hai apportato modifiche a fail2ban.local e jail.local file, assicurati di riavviare il servizio fail2ban.
Per riavviare il servizio fail2ban con la nuova configurazione, eseguire il comando:
service fail2ban restart