LuCI CrowdSec Dashboard : La sécurité de votre réseau en un coup d’œil
Après plusieurs années à utiliser CrowdSec sur mes routeurs OpenWrt, j’ai ressenti le besoin d’avoir une interface visuelle pour surveiller l’activité de sécurité sans avoir à me connecter en SSH et taper des commandes cscli. C’est ainsi qu’est né luci-app-crowdsec-dashboard.
Le problème : CrowdSec sans dashboard sur OpenWrt
CrowdSec est un excellent IPS collaboratif open-source, mais ses options de visualisation posent problème sur les routeurs embarqués :
- Metabase nécessite Docker et ~2GB de RAM — incompatible avec la plupart des routeurs
- La commande
cscli dashboardest dépréciée depuis la version 1.7.0 - La Console CrowdSec cloud est pratique mais nécessite une connexion externe
- L’interface luci-app-crowdsec-firewall-bouncer existante ne fait que configurer le bouncer
Résultat : pour voir ce qui se passe, il faut systématiquement passer par le terminal :
1 | cscli decisions list |
La solution : Un dashboard natif LuCI
J’ai développé luci-app-crowdsec-dashboard, un package OpenWrt qui ajoute une interface complète directement dans LuCI :

Fonctionnalités principales
📊 Vue d’ensemble (Overview)
- Statistiques en temps réel : bans actifs, alertes 24h, bouncers connectés
- Top scénarios : visualisation des attaques les plus fréquentes
- Top pays : répartition géographique des menaces avec drapeaux
- Timeline des alertes : fil d’activité des dernières détections
- Tableau des décisions : liste des IP bannies avec actions rapides
🚫 Gestion des décisions
- Recherche et filtrage par IP, scénario, pays
- Tri multi-colonnes
- Actions bulk : débannir plusieurs IP en une fois
- Ajout manuel : bannir une IP avec durée et raison personnalisées
- Export des données
⚠️ Historique des alertes
- Consultation de toutes les alertes passées
- Statistiques agrégées par scénario
- Possibilité de bannir directement depuis une alerte
- Pagination pour les gros volumes
📈 Métriques détaillées
- État des bouncers enregistrés
- Machines connectées à la LAPI
- Hub status : collections, parsers, scénarios installés
- Métriques Prometheus brutes (acquisition, buckets, etc.)
Architecture technique
Le dashboard utilise l’architecture standard LuCI avec quelques spécificités :
1 | ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ |
Backend RPCD
Le cœur du système est un script shell (/usr/libexec/rpcd/crowdsec) qui expose les commandes cscli via ubus :
1 | # Exemple d'appel interne |
Les méthodes exposées :
decisions/alerts/metrics— Lecture des donnéesbouncers/machines/hub— État des composantsstatus— Santé des servicesban/unban— Actions sur les IP
Frontend JavaScript
Les vues utilisent le framework LuCI client-side avec :
- Polling automatique toutes les 30-60 secondes
- Rendu dynamique sans rechargement de page
- Gestion d’état locale pour filtres et tri
Design : Un thème cybersecurity industriel
J’ai voulu créer une interface qui respire la sécurité sans tomber dans le cliché du “hacker movie”. Le thème s’inspire des dashboards de SOC (Security Operations Center) :
- Palette sombre avec fond #0a0e14 pour réduire la fatigue visuelle
- Accent vert cyan (#00d4aa) pour les éléments positifs
- Rouge corail (#ff6b6b) pour les alertes et bans
- Typographie monospace (JetBrains Mono) pour les données techniques
- Animations subtiles : shimmer sur les barres, pulse sur les statuts
1 | :root { |
Le design est full responsive : utilisable sur desktop, tablette, et même smartphone pour un check rapide.
Installation
Depuis les sources
1 | # Cloner dans l'environnement de build OpenWrt |
Installation manuelle
1 | # Transférer le .ipk sur le routeur |
Prérequis
- OpenWrt 21.02+
- CrowdSec Security Engine (
crowdsec) - CrowdSec Firewall Bouncer (recommandé)
- LuCI
Démo interactive
Avant d’installer sur votre routeur, vous pouvez tester l’interface avec des données simulées :
👉 https://cybermind.fr/apps/crowdsec-dashboard/
La démo inclut :
- Navigation entre les 4 vues
- Données fictives mais réalistes
- Toutes les interactions (recherche, tri, modales)
- Responsive design
Retours et contributions
Le projet est open-source sous licence Apache-2.0. Les contributions sont bienvenues :
- 🐛 Issues : Signaler un bug ou suggérer une amélioration
- 🔀 Pull Requests : Code, traductions, documentation
- ⭐ Star : Si le projet vous est utile !
Repository GitHub : github.com/gkerma/luci-app-crowdsec-dashboard
Conclusion
Avec luci-app-crowdsec-dashboard, la surveillance de CrowdSec sur OpenWrt devient enfin visuelle et accessible. Plus besoin de terminal pour vérifier si votre routeur fait bien son travail de protection.
Le dashboard ne remplace pas la puissance de cscli pour les opérations avancées, mais il offre une fenêtre instantanée sur la santé sécuritaire de votre réseau — exactement ce dont on a besoin au quotidien.
Vous utilisez CrowdSec sur OpenWrt ? Partagez votre configuration dans les commentaires !