Configurare Fail2ban e proteggere così il server
Avere un proprio server offre innumerevoli vantaggi, ma comporta anche una grande responsabilità e controlli regolari. Per far in modo che terzi non accedano al server, bisogna dedicare particolare attenzione all’aspetto sicurezza. I criminali hanno diversi motivi per attaccare un server e ogni attacco andato a buon fine costituisce un alto rischio per l’amministratore del server.
Cosa si nasconde dietro Fail2ban?
Il framework di sicurezza Fail2ban, scritto in linguaggio di programmazione Python (traducibile in senso lato come “tentavi errati portano all’esclusione”), è un modulo server che può essere utilizzato su tutti i sistemi Linux e POSIX con firewall o filtro di pacchetti. Fail2ban rileva nei file di log del server gli indirizzi IP che mostrano un comportamento insolito, come nel caso in cui cerchino sempre di loggarsi con una password errata. Un certo numero di tentativi errati bloccherà automaticamente l’indirizzo IP per un periodo di tempo stabilito in precedenza. L’amministratore può però anche configurare Fail2ban in modo da essere avvisato per email, se un indirizzo IP strano prova ad effettuare l’accesso.
Fail2ban include generalmente una serie di filtri, per esempio per Apache, Postfix o per Courier mail server, attraverso i quali vengono riconosciuti delle specifiche serie di segni nei file di log. Tramite i filtri è possibile attivare delle azioni, actions, cioè dei comandi che vanno eseguiti in un periodo di tempo determinato in precedenza. La combinazione di un filtro e di un’azione, ad es. la soluzione di blocco dell’IP intrapresa da Fail2ban, viene chiamata “Jail” (it. prigione). Questi tipi di jails possono essere programmati con Fail2ban per ogni tipo di software che crea i file di log. Dato che Fail2ban è un framework open source con licenza GPL2, non ci sono costi per l’utilizzo e l’aggiornamento.
Fail2ban include generalmente una serie di filtri, per esempio per Apache, Postfix o per Courier mail server, attraverso i quali vengono riconosciuti delle specifiche serie di segni nei file di log. Tramite i filtri è possibile attivare delle azioni, actions, cioè dei comandi che vanno eseguiti in un periodo di tempo determinato in precedenza. La combinazione di un filtro e di un’azione, ad es. la soluzione di blocco dell’IP intrapresa da Fail2ban, viene chiamata “Jail” (it. prigione). Questi tipi di jails possono essere programmati con Fail2ban per ogni tipo di software che crea i file di log. Dato che Fail2ban è un framework open source con licenza GPL2, non ci sono costi per l’utilizzo e l’aggiornamento.
Fail2ban: installazione e configurazione
Prima di installare e configurare Fail2ban, dovete essere sicuri che sia installato Python sul vostro sistema (almeno la versione 2.4). Consigliabili sono inoltre i tool di configurazione firewall come iptables, shorewall e tcp wrappers (contenitori tcp). Di seguito vi spieghiamo in pochi e semplici passi come configurare e utilizzare Fail2ban su Debian o Ubuntu:
- Iniziate l’installazione di Fail2ban con il seguente comando:
sudo apt-get install fail2ban - Dopo aver completato l’installazione, trovate il framework nella cartella /etc/fail2ban. Per precauzione, il file di configurazione jail.conf dovrebbe essere copiato in locale come jail.local, per assicurarsi di non perdere le proprie impostazioni prima degli aggiornamenti. Ciò è possibile utilizzando questi comandi:
cd /etc/fail2ban
sudo cp jail.conf jail.local - Avviate il framework fail2ban con il seguente comando:
sudo service fail2ban start - Nel file di configurazione possono ora essere attivate o disattivate le regole già formulate e i jails, oltre che essere regolati i relativi parametri. È possibile anche aggiungere dei propri jail. A questo punto si possono configurare i seguenti parametri del jail:
enabled: attivare (true) o disattivare (false) la regola
filter: nome del filtro dal file /etc/fail2ban/filter.d
port: indicazione della porta (ad es. SSH, HTTP, HTTPS)
logpath: percorso del file di log da verificare
maxretry: numero massimo di tentativi errati
findtime: periodo di tempo in cui devono essere cercati gli IP problematici, espresso in secondi
bantime: periodo di tempo per il quale un IP resta bloccato, espresso in secondi (-1: blocco permanente) - Nel caso in cui abbiate apportato delle modifiche ai parametri, riavviate Fail2ban:
sudo service fail2ban reload - Fail2ban salva i risultati della sua valutazione in un file di log separato che può essere richiamato nel modo seguente:
tail -100f /var/log/fail2ban.log - Per chiudere il framework di sicurezza digitate quanto segue:
sudo service fail2ban stop
Efficace anche contro i bot e gli script
Questo framework di prevenzione ha moltissime possibilità di utilizzo, dato che può essere installato ovunque sia possibile verificare i file di log grazie all’aiuto di filtri. Un esempio è il plugin di WordPress “Antispam Bee” che identifica i commenti spam per i blog di WordPress. Se in questo plugin l’opzione “marcare come spam, non eliminare” è attiva, i post spam vengono visualizzati come errori 403. L’indirizzo IP, il post e la sequenza di errore compaiono in seguito anche nei log di WordPress (access.log). Con l’aiuto di un jail, che analizza accuratamente le voci dei log in base al codice di errore, potete rilevare i messaggi spam già sul server.
Fail2ban protegge WordPress non solo dallo spam, ma anche da login non autorizzati. Tramite estensione, in caso di login errato, il server dà come risposta il codice di errore 403. Ciò scoraggia subito alcuni bot e script, interrompendone bruscamente l’attività. L’estensione permette anche di eseguire il migliore metodo di blocco secondo le regole Fail2ban impostate.
Fail2ban protegge WordPress non solo dallo spam, ma anche da login non autorizzati. Tramite estensione, in caso di login errato, il server dà come risposta il codice di errore 403. Ciò scoraggia subito alcuni bot e script, interrompendone bruscamente l’attività. L’estensione permette anche di eseguire il migliore metodo di blocco secondo le regole Fail2ban impostate.
Fail2ban: framework di sicurezza dall’utilizzo flessibile
Fail2ban mette a disposizione dell’amministratore del server una protezione efficace e flessibile per difendersi dai bot, dagli script e dagli attacchi hacker. Il framework permette di controllare i file di log con schemi sospetti e di bloccare, temporaneamente o permanentemente, gli indirizzi IP interessati. A decidere quali servizi dovrà controllare Fail2ban è l’utente, impostando parametri precisi da utilizzare durante la verifica. Se lo si desidera, è possibile escludere dalla ricerca alcuni indirizzi IP e sbloccarne altri.
Se configurato correttamente, Fail2ban aumenta notevolmente la sicurezza del server, ma ovviamente non sostituisce le vecchie misure di protezione come i software per la sicurezza, un buon sistema di backup, la scelta di password difficili e l’uso di una connessione crittografata. Solo se combinati insieme, i singoli componenti forniscono una protezione completa, capace di resistere ad attacchi frequenti e forti.
Se configurato correttamente, Fail2ban aumenta notevolmente la sicurezza del server, ma ovviamente non sostituisce le vecchie misure di protezione come i software per la sicurezza, un buon sistema di backup, la scelta di password difficili e l’uso di una connessione crittografata. Solo se combinati insieme, i singoli componenti forniscono una protezione completa, capace di resistere ad attacchi frequenti e forti.