Avere un proprio server offre in­nu­me­re­vo­li vantaggi, ma comporta anche una grande re­spon­sa­bi­li­tà e controlli regolari. Per far in modo che terzi non accedano al server, bisogna dedicare par­ti­co­la­re at­ten­zio­ne all’aspetto sicurezza. I criminali hanno diversi motivi per attaccare un server e ogni attacco andato a buon fine co­sti­tui­sce un alto rischio per l’am­mi­ni­stra­to­re del server.

Cosa si nasconde dietro Fail2ban?

Il framework di sicurezza Fail2ban, scritto in lin­guag­gio di pro­gram­ma­zio­ne Python (tra­du­ci­bi­le in senso lato come “tentavi errati portano all’esclu­sio­ne”), è un modulo server che può essere uti­liz­za­to 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 com­por­ta­men­to insolito, come nel caso in cui cerchino sempre di loggarsi con una password errata. Un certo numero di tentativi errati bloccherà au­to­ma­ti­ca­men­te l’indirizzo IP per un periodo di tempo stabilito in pre­ce­den­za. L’am­mi­ni­stra­to­re può però anche con­fi­gu­ra­re Fail2ban in modo da essere avvisato per email, se un indirizzo IP strano prova ad ef­fet­tua­re l’accesso.

Fail2ban include ge­ne­ral­men­te una serie di filtri, per esempio per Apache, Postfix o per Courier mail server, at­tra­ver­so i quali vengono ri­co­no­sciu­ti delle spe­ci­fi­che 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 de­ter­mi­na­to in pre­ce­den­za. La com­bi­na­zio­ne di un filtro e di un’azione, ad es. la soluzione di blocco dell’IP in­tra­pre­sa da Fail2ban, viene chiamata “Jail” (it. prigione). Questi tipi di jails possono essere pro­gram­ma­ti 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’ag­gior­na­men­to.

Fail2ban: in­stal­la­zio­ne e con­fi­gu­ra­zio­ne

Prima di in­stal­la­re e con­fi­gu­ra­re Fail2ban, dovete essere sicuri che sia in­stal­la­to Python sul vostro sistema (almeno la versione 2.4). Con­si­glia­bi­li sono inoltre i tool di con­fi­gu­ra­zio­ne firewall come iptables, shorewall e tcp wrappers (con­te­ni­to­ri tcp). Di seguito vi spie­ghia­mo in pochi e semplici passi come con­fi­gu­ra­re e uti­liz­za­re Fail2ban su Debian o Ubuntu:

  1. Iniziate l’in­stal­la­zio­ne di Fail2ban con il seguente comando:

    sudo apt-get install fail2ban

  2. Dopo aver com­ple­ta­to l’in­stal­la­zio­ne, trovate il framework nella cartella /etc/fail2ban. Per pre­cau­zio­ne, il file di con­fi­gu­ra­zio­ne jail.conf dovrebbe essere copiato in locale come jail.local, per as­si­cu­rar­si di non perdere le proprie im­po­sta­zio­ni prima degli ag­gior­na­men­ti. Ciò è possibile uti­liz­zan­do questi comandi:

    cd /etc/fail2ban
    sudo cp jail.conf jail.local

  3. Avviate il framework fail2ban con il seguente comando:

    sudo service fail2ban start

  4. Nel file di con­fi­gu­ra­zio­ne possono ora essere attivate o di­sat­ti­va­te le regole già formulate e i jails, oltre che essere regolati i relativi parametri. È possibile anche ag­giun­ge­re dei propri jail. A questo punto si possono con­fi­gu­ra­re i seguenti parametri del jail:

    enabled: attivare (true) o di­sat­ti­va­re (false) la regola
    filter: nome del filtro dal file /etc/fail2ban/filter.d
    port: in­di­ca­zio­ne della porta (ad es. SSH, HTTP, HTTPS)
    logpath: percorso del file di log da ve­ri­fi­ca­re
    maxretry: numero massimo di tentativi errati
    findtime: periodo di tempo in cui devono essere cercati gli IP pro­ble­ma­ti­ci, espresso in secondi
    bantime: periodo di tempo per il quale un IP resta bloccato, espresso in secondi (-1: blocco  per­ma­nen­te)

  5. Nel caso in cui abbiate apportato delle modifiche ai parametri, riavviate Fail2ban:

    sudo service fail2ban reload

  6. Fail2ban salva i risultati della sua va­lu­ta­zio­ne in un file di log separato che può essere ri­chia­ma­to nel modo seguente:

    tail -100f /var/log/fail2ban.log

  7. Per chiudere il framework di sicurezza digitate quanto segue:

    sudo service fail2ban stop 

Efficace anche contro i bot e gli script

Questo framework di pre­ven­zio­ne ha mol­tis­si­me pos­si­bi­li­tà di utilizzo, dato che può essere in­stal­la­to ovunque sia possibile ve­ri­fi­ca­re i file di log grazie all’aiuto di filtri. Un esempio è il plugin di WordPress “Antispam Bee” che iden­ti­fi­ca i commenti spam per i blog di WordPress. Se in questo plugin l’opzione “marcare come spam, non eliminare” è attiva, i post spam vengono vi­sua­liz­za­ti 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 ac­cu­ra­ta­men­te 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 au­to­riz­za­ti. Tramite esten­sio­ne, in caso di login errato, il server dà come risposta il codice di errore 403. Ciò scoraggia subito alcuni bot e script, in­ter­rom­pen­do­ne bru­sca­men­te l’attività. L’esten­sio­ne permette anche di eseguire il migliore metodo di blocco secondo le regole Fail2ban impostate.

Fail2ban: framework di sicurezza dall’utilizzo fles­si­bi­le

Fail2ban mette a di­spo­si­zio­ne dell’am­mi­ni­stra­to­re del server una pro­te­zio­ne efficace e fles­si­bi­le per di­fen­der­si dai bot, dagli script e dagli attacchi hacker. Il framework permette di con­trol­la­re i file di log con schemi sospetti e di bloccare, tem­po­ra­nea­men­te o per­ma­nen­te­men­te, gli indirizzi IP in­te­res­sa­ti. A decidere quali servizi dovrà con­trol­la­re Fail2ban è l’utente, im­po­stan­do parametri precisi da uti­liz­za­re durante la verifica. Se lo si desidera, è possibile escludere dalla ricerca alcuni indirizzi IP e sbloc­car­ne altri.

Se con­fi­gu­ra­to cor­ret­ta­men­te, Fail2ban aumenta no­te­vol­men­te la sicurezza del server, ma ov­via­men­te non so­sti­tui­sce le vecchie misure di pro­te­zio­ne come i software per la sicurezza, un buon sistema di backup, la scelta di password difficili e l’uso di una con­nes­sio­ne crit­to­gra­fa­ta. Solo se combinati insieme, i singoli com­po­nen­ti for­ni­sco­no una pro­te­zio­ne completa, capace di resistere ad attacchi frequenti e forti.

Vai al menu prin­ci­pa­le