Se volete rendere il vostro server inaccessibile ad un indirizzo IP da cui provengono troppi, sospetti tentativi di autenticazione, fail2ban è lo strumento che fa per voi. Si tratta di uno script in Python che esegue automaticamente una di quelle noiosissime operazioni che spesso un sistemista UNIX/Linux deve effettuare manualmente: fail2ban cerca nei log di sistema tutti gli indirizzi IP che hanno tentato senza successo di accedere al server; se i tentativi di accesso superano un certo numero massimo consentito in un certo arco di tempo, allora quell’IP viene tagliato fuori mediante iptables per un (altrettanto) certo lasso di tempo.
Sia l’installazione che la configurazione di fail2ban sono assolutamente semplici, specialmente su di un server Debian GNU/Linux. Per prima cosa è necessario installare il pacchetto:
aptitude install fail2ban
Una volta terminata la rapidissima installazione, il deamon è già perfettamente funzionante:
# /etc/init.d/fail2ban status
Status of authentication failure monitor: fail2ban is running.
La configurazione di default dovrebbe essere soddisfacente per la gran parte dei sistemisti, ma se si vuole mettere mano a qualche parametro, i file di configurazione da aggiornare sono i seguenti:
1) /etc/fail2ban/fail2ban.conf
In questo file possono essere impostati il file in cui verranno loggate le operazioni (logtarget) e livello di verbosità dei log che vi verranno scritti (loglevel).
2) /etc/fail2ban/jail.conf
Qui invece si possono configurare molti comportamenti specifici di fail2ban a seconda del tipo di servizio a cui è stato tentato l’accesso. È possibile indicare un elenco di indirizzi IP (separati da uno spazio semplice) per i quali non deve essere mai effettuato il ban (ignoreip). Per ognuno dei servizi è poi possibile settare differenti comportamenti di reazione ai tentativi falliti di autenticazione. Vale comunque per tutti la seguente legenda:
bantime: durata in secondi del periodo di ban
maxretry: numero massimo di tentativi consecutivi falliti che generano lo stato di ban
logpath: file di log da analizzare per il servizio in questione
Comunque se date un’occhiata ai due file di configurazione indicati sopra scoprirete che sono sufficientemente commentati, cambiare correttamente il valore desiderato sarà un gioco da ragazzi.