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]
Fail2ban software | |
---|---|
Genere | Sicurezza informatica |
Data prima versione | 2004 |
Ultima versione | 1.1.0 (25 aprile 2024) |
Sistema operativo | Linux |
Linguaggio | Python |
Licenza | GPL (licenza libera) |
Sito web | github.com/fail2ban/fail2ban |
Scansiona i file di log e blocca gli indirizzi IP che presentano troppi fallimenti di password o uso di exploit.[3]
Funzionalità
modificaFail2ban 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]
Integrazioni
modificaFail2ban 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.
Limitazioni
modifica- 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.
Note
modifica- ^ a b c (EN) Greg Bledsoe, Server Hardening | Linux Journal, su Linux Journal, 14 gennaio 2016. URL consultato il 22 settembre 2018.
- ^ (EN) Jeff Jordan, How to protect your GNU/Linux computer from remote attacks with Fail2ban, su Free Software Magazine, 16 giugno 2015. URL consultato il 22 settembre 2018.
- ^ (EN) Fail2ban, su fail2ban.org. URL consultato il 9/2/2015.
- ^ (EN) Koen Van Impe, Defending Against Apache Web Server DDoS Attacks, in IBM's Security Intelligence, 9 dicembre 2015. URL consultato il 22 settembre 2018.
- ^ (EN) Sergey G. Brester, 0.10.0 (2017/08/09) - long-awaited 0.10th version, su GitHub, 9 agosto 2017. URL consultato il 22 settembre 2018.
- ^ (EN) Daniel Aleksandersen, IPv6 support finally arrive in Fail2Ban 0.10, in Ctrl blog, 31 maggio 2016. URL consultato il 22 settembre 2018.
- ^ fail2ban/config/filter.d, su GitHub.
- ^ (EN) Jack Wallen, How to protect secure shell on CentOS 7 with Fail2ban, in TechRepublic, 23 dicembre 2016. URL consultato il 22 settembre 2018.
- ^ (EN) Brad Casey, Three server security tools you might not know, in TechTarget, 17 febbraio 2016. URL consultato il 22 settembre 2018 (archiviato dall'url originale il 17 febbraio 2016).
- ^ Integrating AbuseIPDB with Fail2Ban, su AbuseIPDB. URL consultato il 31 agosto 2021.
- ^ 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. URL consultato il 31 agosto 2021.
Voci correlate
modifica- 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)
Altri progetti
modifica- Wikimedia Commons contiene immagini o altri file su Fail2ban
Collegamenti esterni
modifica- (EN) Sito ufficiale, su github.com.
- Fail2ban, su packages.debian.org.
- Repository sorgenti di Fail2ban, su github.com.
- (EN) Fail2ban, su Free Software Directory.
- Sito ufficiale, su fail2ban.org.
- Fail2ban, su guide.debianizzati.org.
- Brute force su SSH: proteggersi con Fail2ban, su html.it.