Files
2026-06-09 18:40:21 +02:00

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