Introduzione
Tutti i servizi esposti alla rete possono essere un potenziale obiettivo. Possiamo notare facilmente numerosi tentativi di connessione non previsti andando a leggere i file log del nostro server.
Fail2ban è un tool che può aiutarci a monitorare e bloccare tutte le connessioni non autorizzate verso il nostro server.
Fail2ban modifica in modo automatico la configurazione del firewall IPtables se necessario, per bloccare indirizzi IP non autorizzati.
In questa guida, illustreremo come installare e utilizzare Fail2ban su un server Ubuntu 18.10.
Se il vostro intento è installare Fail2ban su di un server in remoto continuate a leggere, altrimenti se volete installare Fail2ban sul vostro computer locale saltate il primo paragrafo "Connessione al Server" e leggere il successivo.
Connessione al Server
Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno della password per l'autenticazione.
Per connettersi al server come utente root digitare questo comando:
ssh root@IP_DEL_SERVER
Successivamente vi verrà chiesto di 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 il primo parametro:
ssh VOSTRO_UTENTE@IP_DEL_SERVER
Successivamente vi verrà chiesto di inserire la password del vostro utente.
Siete ora connessi al vostro server, siete pronti per iniziare l'installazione di Fail2ban.
Installare Fail2ban
Fail2ban è disponibile nei repository predefiniti di Ubuntu, quindi può essere facilmente installato tramite apt:
sudo apt update
sudo apt install fail2ban
Possiamo trovare i file di configurazione di Fail2ban nella directory /etc/fail2ban. Il file principale da modificare è jail.conf.
jail.conf potrebbe essere sovrascritto dagli aggiornamenti del pacchetto, quindi consiglio di creare una copia di questo file che chiameremo jail.local, questo andrà a sovrascrivere quello originale. In questo modo non dovremo avere problemi anche in seguito ad aggiornamenti del pacchetto Fail2ban.
La sezione principale di jail.conf (jail.local, la nostra copia) si chiama [DEFAULT]. Successivamente troviamo le varie sezioni dei singoli servizi, come per esempio [sshd].
Creiamo il nostro file jail.local da terminale:
sudo nano /etc/fail2ban/jail.local
Incolliamo il seguente testo:
[DEFAULT]
# Ban hosts for one hour:
bantime = 3600
# Override /etc/fail2ban/jail.d/00-firewalld.conf:
banaction = iptables-multiport
[sshd]
enabled = true
Salvare e chiudere il file.
Abbiamo impostato un nuovo bantime, di un ora, predefinito per tutti i servizi.
Ora possiamo riavviare il servizio Fail2ban usando systemctl:
sudo systemctl restart fail2ban
Per controllare lo stato di Fail2ban:
sudo fail2ban-client status
Per informazioni più dettagliate, come la lista di Ip bannati, dare questo comando:
sudo fail2ban-client status sshd
Per monitorare le azioni recenti di Fail2ban:
sudo tail -F /var/log/fail2ban.log
Configurazione
Ecco alcuni consigli per configurare Fail2ban.
Apriamo nuovamente il file jail.local:
sudo nano /etc/fail2ban/jail.local
Sotto la sezione [DEFAULT], se vogliamo ricevere email di notifica da parte di Fail2ban, aggiungere le seguenti voci:
destemail = [email protected]
action = %(action_mwl)s
Possiamo aggiungere un indirizzo IP permanente, come quello del nostro computer, da ignorare, per non essere mai bloccati:
ignoreip = MIO_IP
Di default la porta utilizzata per le connessioni ssh è la 22.
Se si utilizza una porta diversa è necessario cambiare la configurazione:
Nella sezione [sshd], sotto enabled=true aggiungiamo port:
port = LA_TUA_PORTA
Aggiungiamo il percorso del il file log che andremo ad utilizzare:
logpath = /var/log/auth.log
Possiamo modificare il numero di tentativi di accesso prima di essere bannati:
maxretry = 3
Riepilogo:
[DEFAULT]
# Ban hosts for one hour:
bantime = 3600
destemail = [email protected]
action = %(action_mwl)s
ignoreip = MIO_IP
# Override /etc/fail2ban/jail.d/00-firewalld.conf:
banaction = iptables-multiport
[sshd]
enabled = true
port = LA_TUA_PORTA
logpath = /var/log/auth.log
maxretry = 3
Se si desidera impostare un ban permanente modificare il valore del parametro bantime a -1:
...
bantime = -1
...
Salvare e chiudere il file.
Riavviare Fail2ban:
sudo service fail2ban restart
Per controllare lo stato di Fail2ban:
sudo fail2ban-client status
Sbannare un indirizzo IP
Per sbannare (unban) un indirizzp IP in modo manuale, digitare il seguente comando da terminale:
fail2ban-client set sshd unbanip INDIRIZZO_IP
Conclusione
L'installazione e la configurazione di Fail2ban su Ubuntu 18.10 è terminata.