#howto - Installazione e configurazione di fail2ban su Fedora 33/CentOS 8

Scritto da il
Redatto da
centos - bash - ssh - systemd - ssh - bash - systemd

fail2ban è uno strumento che si occupa di controllare il log accessi del server in tempo reale, bloccando l’indirizzo IP di chi prova ad accedere alla macchina con ripetuti tentativi falliti.

In questa guida vedremo come installarlo e configurarlo su Fedora 33, CentOS 8 e derivate.

Se utilizzi CentOS/RHEL 7 puoi far riferimento a questa guida.

Installazione

Il pacchetto fail2ban è disponibile nella repository EPEL che andremo ad installare:

dnf install epel-release

procediamo quindi all’installazione di fail2ban:

dnf install fail2ban

Una volta installato il pacchetto, abilitiamo ed avviamo il servizio via systemctl:

systemctl enable fail2ban
systemctl start fail2ban

Configurazione

Il file di configurazione principale di fail2ban è posizionato in /etc/fail2ban/jail.conf. Questo potrebbe venir sovrascritto aggiornando il pacchetto, e andremo quindi a creare un nuovo file di configurazione jail.conf in /etc/fail2ban/jail.d/.

Al suo interno inseriamo il seguente contenuto:

[DEFAULT]
bantime = 3600
findtime = 150
maxretry = 3

backend = systemd

[sshd]
enabled = true

dove:

  • bantime è il numero in secondi in cui un IP rimarrà bannato. In questo caso 3600 secondi, quindi un’ora
  • findtime è il numero di secondi di attesa per ogni tentativo
  • maxretry è il numero di tentativi permessi
  • backend indica a fail2ban quale backend utilizzare. Di base questo è impostato in auto, e qui lo andremo ad istruire per utilizzare systemd nello specifico
  • sshd enabled indica se fail2ban deve essere abilitato anche per le sessioni ssh, in questo caso true

Salviamo il nuovo file e riavviamo il servizio:

systemctl restart fail2ban

Whitelist

Possiamo istruire fail2ban ad ignorare alcuni indirizzi IP, e per fare questo aggiungiamo alla nostra configurazione:

[DEFAULT]
ignoreip = 127.0.0.1/8

assegnando al parametro ignoreip gli indirizzi IP che vogliamo ignorare. In questo caso, impostando 127.0.0.1/8 ignoreremo tutti gli indirizzi IP locali da .1 a .8.

Segnalazione via e-mail

Possiamo configurare l’invio di una nuova e-mail ad ogni tentativo fallito, questo usando sendmail. Nel nostro file di configurazione, sotto il blocco DEFAULT aggiungiamo:

destemail = [email protected]
sendername = fail2ban
mta = sendmail
action = %(action_mw)s

dove:

  • destmail è l’indirizzo e-mail a cui inviare la segnalazione
  • sendername il mittente
  • mta il metodo con cui inviare la mail
  • action l’azione da effettuare: %(action_)s banna l’utente, mentre nel nostro caso %(action_mwl)s bannerà l’utente ed invierà una mail contenente il whois dell’indirizzo IP
history_edu Revisioni