---
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](https://crowdsec.net) |
| **GitHub** | [crowdsecurity/crowdsec](https://github.com/crowdsecurity/crowdsec) |
| **License** | MIT |
| **Langage** | Go |
| **Étoiles** | 9 800 ⭐ |
| **Dernière MAJ** | 2026-05-28 |
| **Catégorie** | [[cat-networking\|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é)

```yaml
# 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)

```bash
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) :

```yaml
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`) :

```bash
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

- [Site officiel](https://crowdsec.net)
- [Documentation](https://docs.crowdsec.net)
- [Hub de scénarios](https://hub.crowdsec.net)
- [GitHub](https://github.com/crowdsecurity/crowdsec)
- [Forum communautaire](https://discourse.crowdsec.net)

## Pages Liées

- [[cat-networking|Networking]] — Catégorie parente
- [[cat-security|Sécurité]] — 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|Recettes Docker Compose]]
- [[securisation-home-lab]] — Stratégie défense en profondeur
