CrowdSec sur OPNsense : détection comportementale et défense collaborative
Après Suricata en IDS/IPS, la couche suivante mise en place a été CrowdSec. Les deux se complètent plutôt qu'ils ne se recouvrent : Suricata analyse le contenu des paquets contre des signatures connues, tandis que CrowdSec analyse le comportement observé dans les journaux (tentatives de connexion répétées, scans, bruteforce...) et s'appuie en plus sur une blocklist communautaire alimentée par l'ensemble des utilisateurs CrowdSec dans le monde.
1. Comment fonctionne CrowdSec
L'architecture repose sur deux composants distincts :
- L'agent CrowdSec : lit les journaux (logs du pare-feu, d'un reverse proxy, d'un serveur SSH...) et les confronte à des scénarios — des règles de détection comportementale (ex. "plus de 5 échecs d'authentification SSH en 1 minute depuis la même IP"). Quand un scénario se déclenche, l'agent émet une décision (généralement un bannissement temporaire).
- Les bouncers : des composants séparés qui appliquent concrètement les décisions prises par l'agent — un bouncer pare-feu bloque l'IP au niveau réseau, un bouncer Nginx/Apache la bloque au niveau applicatif, etc. Cette séparation agent/bouncer permet de détecter à un endroit et de bloquer à un autre.
2. Installer CrowdSec sur OPNsense
- Installer le plugin : System → Firmware → Plugins, rechercher
os-crowdsecet l'installer — il embarque à la fois l'agent et le bouncer pare-feu, intégrés nativement aux règles OPNsense. - Choisir les collections : une collection regroupe un ensemble de scénarios cohérents pour un usage donné (ex.
crowdsecurity/linux,crowdsecurity/sshd). Sur un pare-feu exposé, la collection de base couvrant les tentatives de connexion et de scan suffit pour démarrer ; d'autres collections s'ajoutent selon les services réellement exposés (reverse proxy, VPN...). - Activer le bouncer pare-feu : les décisions de blocage sont automatiquement traduites en une table d'adresses bloquées, appliquée directement dans les règles de filtrage d'OPNsense.
# Lister les décisions de blocage actives (shell OPNsense)
$ cscli decisions list
# Voir les métriques par scénario (nombre de détections, bans)
$ cscli metrics
# Vérifier que le bouncer pare-feu est bien enregistré et actif
$ cscli bouncers list
3. Gérer les faux positifs avec une whitelist
Comme tout système de détection comportementale, CrowdSec peut bannir à tort une IP légitime — un outil de supervision qui teste des ports en boucle, ou un poste qui enchaîne des tentatives de connexion après un changement de mot de passe mal propagé. Deux façons de corriger :
- Débannir ponctuellement :
cscli decisions delete --ip <adresse>pour lever un blocage immédiat. - Whitelister durablement : ajouter l'IP ou la plage concernée (ex. votre propre réseau de supervision) dans un profil de whitelist CrowdSec, pour qu'elle ne soit plus jamais évaluée par les scénarios.
cscli metrics après l'ajout d'une nouvelle collection pour repérer un scénario anormalement bavard avant qu'il ne pollue les décisions.4. CrowdSec et Suricata, en complément
CrowdSec dispose d'un parser capable de consommer directement les alertes générées par Suricata (au format EVE JSON déjà utilisé dans l'article précédent), pour les transformer en décisions de bannissement automatiques. Les deux outils partagent ainsi la même source de vérité côté détection réseau, tout en gardant leurs forces respectives : signatures fines pour Suricata, comportement et intelligence collective pour CrowdSec.
La vraie valeur ajoutée de CrowdSec n'est pas de remplacer un IDS/IPS classique, mais d'ajouter une couche qui bloque avant même qu'une signature précise existe pour une menace — sur la seule base d'un comportement suspect, corroboré par ce que des milliers d'autres pare-feu observent au même moment.
Conclusion
CrowdSec complète bien la panoplie mise en place sur OPNsense (Suricata, listes de blocage IP) avec une dimension collaborative qui manque aux approches purement locales. La configuration reste légère — un plugin, quelques collections bien choisies, une whitelist pour son propre réseau — pour un gain de sécurité qui grandit avec le nombre d'utilisateurs CrowdSec dans le monde. Si vous voulez être accompagné sur la mise en place de votre défense périmétrique, n'hésitez pas à me contacter.