--- title: Fail2Ban-Report created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, logs, fail2ban, security, ssh, brute-force, dashboard, python, flask] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Logs, https://github.com/SubleXBle/Fail2Ban-Report] --- # 📋 Fail2Ban-Report > **Le dashboard dĂ©diĂ© Ă  Fail2Ban** : visualisez les bans, IPs bannies, services attaquĂ©s et tendances dans une UI web lĂ©gĂšre. Transformez les logs Fail2Ban bruts en insights visuels exploitables. ## 📋 Informations GĂ©nĂ©rales | Champ | Valeur | | :--- | :--- | | **Site web** | [github.com/SubleXBle/Fail2Ban-Report](https://github.com/SubleXBle/Fail2Ban-Report) | | **GitHub** | [SubleXBle/Fail2Ban-Report](https://github.com/SubleXBle/Fail2Ban-Report) | | **License** | MIT | | **Langage** | Python (Flask) | | **Étoiles GitHub** | 308 ⭐ | | **DerniĂšre MAJ** | 2026-05-15 | | **CatĂ©gorie** | [[cat-logs|Logs]] | ## 📝 Description **Fail2Ban-Report** est un **dashboard web lĂ©ger** spĂ©cialement conçu pour visualiser les donnĂ©es de **Fail2Ban**, le cĂ©lĂšbre outil de protection contre le brute-force (SSH, FTP, HTTP, SMTP, etc.). Fail2Ban gĂ©nĂšre Ă©normĂ©ment de logs utiles (qui est banni, depuis quand, pour quel service, combien de tentatives) mais l'UI native est inexistante : tout est dans des fichiers texte. L'outil parse automatiquement les **logs Fail2Ban** (`/var/log/fail2ban.log` ou la base SQLite) et prĂ©sente les informations clĂ©s dans une **UI web moderne** : nombre total de bans, IPs les plus actives, services les plus attaquĂ©s, timeline des bans, top pays, heatmap par heure/jour, etc. C'est un projet **simple, focalisĂ©, et efficace** : il fait une chose, et il la fait bien. **Public cible** : sysadmins qui gĂšrent des serveurs exposĂ©s Ă  Internet (SSH, web), amateurs d'auto-hĂ©bergement qui veulent voir d'un coup d'Ɠil si leur serveur se fait bruteforcer, Ă©quipes de sĂ©curitĂ© qui veulent un dashboard Fail2Ban sans se prendre la tĂȘte. - ✅ **UI dĂ©diĂ©e Fail2Ban** : visualisation claire et immĂ©diate - ✅ **Parsing auto** des logs Fail2Ban (texte et SQLite) - ✅ **Graphiques** : timeline, top IPs, top services, heatmap - ✅ **LĂ©ger** : Python Flask, ~30 Mo de RAM - ✅ **Single container** Docker (Python + SQLite) - ✅ **Configuration minimale** : pointer vers le fichier de log - ✅ **API REST** : intĂ©gration possible avec d'autres outils - ✅ **MIT License** : usage libre - ✅ **Multi-instance** : possible de monitorer plusieurs serveurs - ⚠ **Lecture seule** : Fail2Ban-Report ne peut pas unbannir (lecture seule) - ⚠ **CommunautĂ© modeste** (308 ⭐) : peu de features avancĂ©es - ⚠ **Couplage Fail2Ban only** : ne fait rien d'autre ## 🚀 Installation ### Option 1 : Docker Compose (recommandĂ©) ```yaml # docker-compose.yml version: '3.8' services: fail2ban-report: image: ghcr.io/sublexble/fail2ban-report:latest container_name: fail2ban-report restart: unless-stopped environment: F2B_LOG_PATH: /var/log/fail2ban.log F2B_DB_PATH: /var/lib/fail2ban/fail2ban.sqlite3 TZ: Europe/Paris volumes: - /var/log/fail2ban.log:/var/log/fail2ban.log:ro - /var/lib/fail2ban/:/var/lib/fail2ban/:ro ports: - "5000:5000" labels: - "traefik.enable=true" - "traefik.http.routers.f2b.rule=Host(`f2b.example.com`)" - "traefik.http.routers.f2b.entrypoints=websecure" - "traefik.http.routers.f2b.tls.certresolver=letsencrypt" volumes: f2b-data: ``` ### Option 2 : Python (bare-metal) ```bash # PrĂ©requis : Fail2Ban installĂ© et fonctionnel git clone https://github.com/SubleXBle/Fail2Ban-Report.git cd Fail2Ban-Report pip install -r requirements.txt python app.py --log /var/log/fail2ban.log ``` ### Option 3 : Systemd ```ini # /etc/systemd/system/fail2ban-report.service [Unit] Description=Fail2Ban Report Dashboard After=network.target [Service] User=www-data WorkingDirectory=/opt/fail2ban-report ExecStart=/usr/bin/python3 app.py --log /var/log/fail2ban.log Restart=always [Install] WantedBy=multi-user.target ``` ## ⚙ Configuration Initiale 1. **S'assurer que Fail2Ban tourne** : `sudo fail2ban-client status` 2. **VĂ©rifier les logs** : `ls -la /var/log/fail2ban.log` 3. **Lancer le container** : `docker compose up -d` 4. **AccĂ©der Ă  l'UI** : `http://IP:5000` 5. **Configurer Fail2Ban** (si pas dĂ©jĂ  fait) : `/etc/fail2ban/jail.local` 6. **Ajouter des jails** : SSH, nginx-http-auth, postfix, etc. 7. **VĂ©rifier les graphiques** : timeline des bans, top IPs 8. **Activer HTTPS** : Traefik en reverse proxy 9. **Setup l'alerte** : Fail2Ban → email/Slack pour les bans critiques ## 🔄 Alternatives ### Open Source - **Fail2Ban** (le backend, indispensable) - **CrowdSec** — Alternative moderne Ă  Fail2Ban (avec dashboard) - **SSHGuard** — Anti-brute-force SSH - [[app-loki]] + [[app-grafana]] — Pour des dashboards custom - **GoAccess** — Analyseur de logs web (focus web, pas Fail2Ban) - **Wazuh** — SIEM complet (inclut dashboard Fail2Ban-like) ### Comparaison Fail2Ban-Report vs autres | CritĂšre | Fail2Ban-Report | CrowdSec | Loki/Grafana | Wazuh | | :--- | :--- | :--- | :--- | :--- | | **Focus** | Fail2Ban logs | Threat intel partagĂ© | Tous logs | SIEM complet | | **UI dĂ©diĂ©e** | ✅ | ✅ | ❌ (Ă  faire) | ✅ | | **Multi-serveur** | ❌ (1 instance = 1 serveur) | ✅ (via API) | ✅ | ✅ | | **Bans actifs** | ✅ | ✅ | ❌ (Ă  faire) | ✅ | | **Threat intel** | ❌ | ✅ Blocklist | ❌ | ✅ | | **Setup** | 5 min | 15 min | 30 min | 60 min | | **RAM** | ~30 Mo | ~100 Mo | ~2 Go | ~4 Go | | **License** | MIT | MIT | AGPL-3.0 | GPL-2.0 | **Verdict** : Fail2Ban-Report est **l'outil parfait** si vous utilisez dĂ©jĂ  Fail2Ban et voulez juste visualiser. Pour une approche moderne avec threat intel partagĂ©, migrez vers CrowdSec. Pour un SIEM complet, Wazuh. ### PropriĂ©taires (ce que Fail2Ban-Report remplace) - **Cloudflare** (WAF/CDN, gratuit partiel) - **DenyHosts** (stale, plus maintenu) - **SSH Fortress** (commercial SSH bastion) - **ManageEngine Log360** (payant) - **Splunk Security** (trĂšs cher) ## 🔐 SĂ©curitĂ© - ⚠ **Logs = donnĂ©es sensibles** : IPs bannies = surface d'attaque - ✅ **Chiffrement in-transit** : TLS obligatoire (Traefik en reverse proxy) - ✅ **Authentification** : basic auth (configurable) ou SSO via reverse proxy - ✅ **Read-only** : Fail2Ban-Report ne modifie jamais la config Fail2Ban - ✅ **Bind localhost** : possible de n'Ă©couter que sur 127.0.0.1 - ✅ **Pas de stockage** : agrĂšge Ă  la volĂ©e depuis les logs (SQLite en cache) - ⚠ **RĂ©tention** : les bans actifs expirent selon Fail2Ban (donc OK RGPD) - ✅ **Pas de PII** : que des IPs et noms de services - ✅ **Pas de backup nĂ©cessaire** : donnĂ©es reconstruites depuis les logs - ✅ **Logs Fail2Ban protĂ©gĂ©s** : permissions 0640 root:adm ## 📚 Ressources - [GitHub SubleXBle/Fail2Ban-Report](https://github.com/SubleXBle/Fail2Ban-Report) - [Fail2Ban docs officielles](https://github.com/fail2ban/fail2ban/wiki) - [CrowdSec (alternative)](https://crowdsec.net/) - [Tutoriel installation](https://github.com/SubleXBle/Fail2Ban-Report/wiki) ## Pages LiĂ©es - [[cat-logs]] — CatĂ©gorie Logs - [[app-loki]] — Stack logs complĂšte - [[app-uptime-kuma]] — Monitoring uptime - [[securisation-home-lab]] — Bonnes pratiques sĂ©curitĂ© (Fail2Ban y est mentionnĂ©)