6.0 KiB
title: CrowdSec created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, networking, security, ids, ips, bouncer, go, collaborative] confidence: high contested: false sources: [https://selfh.st/apps/?tag=networking, https://github.com/crowdsecurity/crowdsec]
🛡️ CrowdSec
Moteur de sécurité comportementale et collaborative : analyse logs, détecte les attaques, bloque via bouncer, et partage les IOC avec la communauté. Le successeur moderne et open source de Fail2Ban, avec une dimension crowd-sourced.
| Métadonnée | Valeur |
|---|---|
| Site web | crowdsec.net |
| GitHub | crowdsecurity/crowdsec |
| License | MIT |
| Langage | Go |
| Étoiles | 9 800 ⭐ |
| Dernière MAJ | 2026-05-28 |
| Catégorie | cat-networking |
Description
CrowdSec est un security engine écrit en Go qui reprend la philosophie de app-fail2ban (parser les logs, détecter des patterns, bloquer) mais y ajoute trois innovations majeures : (1) une logique de décision plus fine via un DSL de scénarios, (2) un bouncer qui applique la décision (ban iptables, nginx, Cloudflare…), et (3) un partage d'IOC anonymisé avec la communauté. Quand votre instance bannit une IP qui scanne votre SSH, cette IP est signalée à l'API centrale et protégée sur des milliers d'autres instances en quelques secondes.
L'architecture est modulaire : un agent lit les logs et déclenche des alertes, des scénarios (collections YAML) décrivent les comportements suspects, un bouncer (plugin) applique la remédiation. Plus de 400 scénarios couvrent SSH, HTTP, WordPress, nginx, Traefik, Linux, Kubernetes, etc. La console web app-crowdsec-manager offre un dashboard de visualisation, alertes et gestion multi-instances.
Le modèle économique est open core : le moteur est MIT, certains bouncers avancés (API premium, blocklists géographiques, console SaaS) sont payants. Pour un homelab, l'édition community est largement suffisante.
Installation
Docker Compose (recommandé)
# docker-compose.yml
services:
crowdsec:
image: crowdsecurity/crowdsec:latest
container_name: crowdsec
restart: unless-stopped
environment:
- COLLECTIONS=crowdsecurity/sshd crowdsecurity/nginx crowdsecurity/linux crowdsecurity/wordpress
- PARSE_ACQUIS_TIMEOUT=2s
volumes:
- cs-config:/etc/crowdsec
- cs-data:/var/lib/crowdsec/data
- /var/log:/var/log:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
- monitoring
# Bouncer qui bloque au niveau pare-feu
bouncer-traefik:
image: fbonalair/crowdsec-traefik-bouncer:latest
container_name: crowdsec-bouncer
restart: unless-stopped
environment:
- CROWDSEC_BOUNCER_API_KEY=${CROWDSEC_BOUNCER_API_KEY}
- CROWDSEC_AGENT_HOST=crowdsec:8080
networks:
- monitoring
volumes:
cs-config:
cs-data:
networks:
monitoring:
driver: bridge
Installation manuelle (Debian)
curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | sudo bash
sudo apt install crowdsec
sudo cscli collections install crowdsecurity/sshd crowdsecurity/nginx
sudo systemctl enable --now crowdsec
Configuration
Fichier principal : /etc/crowdsec/config.yaml. Acquisition des logs (exemple) :
source: journalctl
journalctl_filter:
- _SYSTEMD_UNIT=sshd.service
labels:
type: syslog
---
source: file
filenames:
- /var/log/nginx/access.log
- /var/log/nginx/error.log
labels:
type: nginx
Commandes CLI (cscli) :
cscli decisions list # bannissements actifs
cscli decisions delete --id 42 # débannir
cscli alerts list # alertes brutes
cscli hub list # scénarios disponibles
cscli hub install crowdsecurity/wordpress
API exposée sur localhost:8080, à ne pas exposer publiquement.
Alternatives
Open Source
- app-fail2ban — Ancêtre, plus simple, pas collaboratif, Python
- app-crowdsec-manager — Console web officielle (visualisation)
- Wazuh (fork OSS d'OSSEC) — SIEM complet, plus lourd
- Suricata / Zeek — NIDS réseau, niveau paquet
- OSSEC — HIDS historique (C, plus de développement)
Propriétaire (ce que CrowdSec remplace)
- Cloudflare Bot Management — WAF commercial, pay-as-you-go
- AWS GuardDuty — IDS managé, facturation au Go
- Datadog Security Monitoring — SaaS d'observabilité sécurité
- Fail2ban Cloud (Cognito) — Fork commercial de Fail2Ban
Sécurité
- Inscrire son instance sur crowdsec.net (compte gratuit) pour bénéficier du partage d'IOC mondial.
- Ne pas exposer l'API 8080 sur Internet : la clé API sert à authentifier les bouncers.
- Choisir ses collections avec soin : trop de scénarios = faux positifs et charge CPU.
- Whitelist vos IP de monitoring/administration dans
postoverflows/s02-enrich/whitelist.yaml. - Surveiller la latence API : si crowdsec.net est down, la décision locale continue mais l'enrichissement IOC est KO.
- Bouncer Traefik : protège tous les services derrière Traefik sans config par service.
- Consulter le dashboard : la console app-crowdsec-manager expose le top des attaques, l'efficacité des scénarios et les faux positifs.
Ressources
Pages Liées
- cat-networking — Catégorie parente
- cat-security — Catégorie transversale
- app-fail2ban — Comparaison directe avec CrowdSec
- app-crowdsec-manager — Console web d'administration
- app-traefik — Reverse-proxy pair avec le bouncer
- recettes-docker-compose
- securisation-home-lab — Stratégie défense en profondeur