Initial vault setup
This commit is contained in:
@@ -0,0 +1,177 @@
|
||||
---
|
||||
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é)
|
||||
Reference in New Issue
Block a user