Fail2ban

Fail2ban
software
Logo
Logo
Schermata di esempio
Schermata di esempio
GenereSicurezza informatica
Data prima versione2004
Ultima versione1.1.0 (25 aprile 2024)
Sistema operativoLinux
LinguaggioPython
LicenzaGPL
(licenza libera)
Sito webgithub.com/fail2ban/fail2ban

Fail2ban è un tool di sicurezza scritto in Python pensato per prevenire attacchi di forza bruta.[1] Funziona su sistemi di tipo Unix-like che dispongano di un firewall installato localmente, come iptables o TCP Wrapper.[2]

Scansiona i file di log e blocca gli indirizzi IP che presentano troppi fallimenti di password o uso di exploit.[3]

Funzionalità

[modifica | modifica wikitesto]

Fail2ban tiene monitorati i file di registro degli accessi ai servizi che si vogliono porre sotto controllo (ad esempio /var/log/auth.log, /var/log/apache/access.log, ecc.) ed esegue le azioni specificate in caso di rilevamento di attacco. [4]

Uno degli usi tipici di Fail2ban è il blocco degli indirizzi IP da cui provengono tentativi di violazione alla sicurezza del sistema. Quando vengono rilevati un numero di tentativi maggiori della soglia impostata, l'indirizzo IP viene bloccato per un tempo predeterminato e non potrà più accedere al servizio in ascolto su quella porta.

Fail2ban supporta sia IPv4 che IPv6.[5][6]

E' possibile configurare il blocco di un IP per un periodo più lungo se un indirizzo risulta "recidivo".[1]

Lo sblocco di un host bloccato avviene automaticamente dopo un determinato periodo di tempo impostato. In questo modo non viene "bloccata" in modo definitivo alcuna connessione autentica che potrebbe essere stata temporaneamente bloccata per errore. Il tempo di sblocco è di diversi minuti e generalmente è sufficiente per impedire che una connessione di rete venga inondata da connessioni dannose, oltre a ridurre la probabilità di successo di un attacco di forza bruta.

Fail2Ban, ogni volta che viene rilevato un indirizzo IP dannoso [7], può eseguire diverse azioni: aggiornare Netfilter/iptables o le regole del firewall, aggiornare la tabella host.deny di TCP Wrapper per rifiutare l'indirizzo IP malevolo, notificare via e-mail l'evento e, in generale, qualsiasi azione definita dall'utente che può essere eseguita tramite script Python.

La configurazione standard mette già a disposizione i filtri per i servizi più comuni, tra cui Apache, Lighttpd, sshd, vsftpd, qmail, Postfix e Courier Mail Server. [7][8]

I filtri sono definiti tramite espressioni regolari Python che possono essere personalizzate dall'utente.[1] La combinazione di un filtro e della relativa azione è nota come "jail".

E' possibile creare e aggiungere nuove "jail" per qualsiasi servizio di rete che disponga di un file di registro di accesso.[9]

Fail2ban può essere integrato via API con diversi servizi quali ad esempio blocklist.de e AbuseIPDB.[10][11]

In questo modo la capacità di Fail2ban di identificare gli IP malevoli viene combinata con la funzione di segnalazione degli stessi contribuendo a creare un database sempre più completo di IP malevoli a livello globale.

  • Fail2Ban da solo non riesce a garantire protezione da attacchi di forza bruta distribuiti. Rimane però la possibilità di distribuire gli eventi di ban/unban degli IP tra i server utilizzando ZMQ.
  • Non è in grado di interagire direttamente con le API delle applicazioni che sta monitorando.

Voci correlate

[modifica | modifica wikitesto]
  • DenyHosts - strumento per la prevenzione di attacchi di forza bruta verso server SSH
  • Stockade - strumento per bloccare le connessioni provenienti da indirizzi IP specifici per prevenire lo spam e bloccare attacchi di forza bruta
  • OSSEC - sistema di rilevamento delle intrusioni basato sull'host (HIDS)
  1. ^ a b c (EN) Greg Bledsoe, Server Hardening | Linux Journal, su linuxjournal.com, 14 gennaio 2016.
  2. ^ (EN) Jeff Jordan, How to protect your GNU/Linux computer from remote attacks with Fail2ban, su freesoftwaremagazine.com, 16 giugno 2015.
  3. ^ (EN) Fail2ban, su fail2ban.org. URL consultato il 9/2/2015.
  4. ^ (EN) Koen Van Impe, Defending Against Apache Web Server DDoS Attacks, in IBM's Security Intelligence, 9 dicembre 2015.
  5. ^ (EN) Sergey G. Brester, 0.10.0 (2017/08/09) - long-awaited 0.10th version, su github.com, 9 agosto 2017.
  6. ^ (EN) Daniel Aleksandersen, IPv6 support finally arrive in Fail2Ban 0.10, in Ctrl blog, 31 maggio 2016.
  7. ^ fail2ban/config/filter.d, su github.com.
  8. ^ (EN) Jack Wallen, How to protect secure shell on CentOS 7 with Fail2ban, in TechRepublic, 23 dicembre 2016.
  9. ^ (EN) Brad Casey, Three server security tools you might not know, in TechTarget, 17 febbraio 2016.
  10. ^ Integrating AbuseIPDB with Fail2Ban, su abuseipdb.com.
  11. ^ www.blocklist.de -- Fail2Ban-Reporting Service (we sent Reports from Attacks on Postfix, SSH, Apache-Attacks, Spambots, irc-Bots, Reg-Bots, DDos and more) from Fail2Ban via X-ARF, su blocklist.de.

Altri progetti

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]