CrowdSec : l'IDS/IPS collaboratif qui remplace fail2ban

Guide CrowdSec complet : installation, collections, bouncers Nginx/Docker, dashboard et alertes Telegram. L'alternative moderne a fail2ban.

CrowdSec : l'IDS/IPS collaboratif qui remplace fail2ban

En 2024, les scans automatisés attaquent votre serveur en moins de 5 minutes après sa mise en ligne. J'ai vu des serveurs fraîchement installés recevoir plus de 10 000 tentatives de connexion SSH en 24h. fail2ban a longtemps été la réponse standard, mais CrowdSec est une évolution majeure : intelligence collective partagée, détection comportementale multi-protocoles, et intégration avec l'écosystème réseau. Ce guide vous montre comment déployer CrowdSec en production.

Pourquoi CrowdSec plutôt que fail2ban ?

fail2ban est un excellent outil, mais il fonctionne de façon isolée — chaque serveur apprend seul de ses attaques. CrowdSec change le paradigme : quand votre serveur détecte une IP malveillante, elle est partagée avec tous les membres de la communauté CrowdSec (380 000+ instances en 2024). Quand quelqu'un attaque un serveur en Corée, votre serveur à Paris est déjà protégé.

  • Intelligence collective : blocklists communautaires (5+ millions d'IPs malveillantes)
  • Multi-protocoles : SSH, HTTP, MySQL, RDP, Kubernetes, tout ce qui a des logs
  • Détection comportementale : patterns d'attaque, pas juste un compteur de tentatives
  • Remédiation flexible : bloquer, captcha, rediriger, notifier
  • API moderne : intégration avec nginx, Traefik, HAProxy, OPNsense...
  • Composant séparé : agent léger + moteur de décision découplés
Dashboard CrowdSec interface web alertes sécurité carte monde attaques origines
Console CrowdSec : carte mondiale des attaques bloquées en temps réel

Architecture CrowdSec

CrowdSec a une architecture en trois parties, ce qui le rend très flexible :

  • Agent (crowdsec) : lit les logs, détecte les comportements malveillants
  • Local API (LAPI) : cerveau local qui prend les décisions de blocage
  • Bouncers : appliquent les décisions (iptables, nginx, OPNsense...)

Cette séparation permet par exemple d'avoir un agent sur chaque serveur qui remonte les alertes à une LAPI centrale, et des bouncers sur vos firewalls.

Installation CrowdSec

Sur Ubuntu / Debian

# Méthode officielle (script d'installation)
curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | sudo bash
sudo apt install -y crowdsec

# Vérifier l'installation
sudo systemctl status crowdsec
sudo cscli version

# Afficher les collections installées
sudo cscli collections list

Sur CentOS / AlmaLinux / Rocky Linux

curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.rpm.sh | sudo bash
sudo dnf install -y crowdsec
sudo systemctl enable --now crowdsec
Terminal Linux commandes cscli logs détection attaques SSH brute force en rouge
cscli decisions list : voir les IPs bloquées et les raisons de blocage en temps réel

Configuration des collections

CrowdSec utilise des 'collections' — des ensembles de scénarios de détection thématiques. Installez ceux qui correspondent à vos services :

# Collections indispensables
sudo cscli collections install crowdsecurity/linux    # SSH, syslog
sudo cscli collections install crowdsecurity/nginx    # Accès web
sudo cscli collections install crowdsecurity/apache2  # Apache
sudo cscli collections install crowdsecurity/mysql    # Base de données
sudo cscli collections install crowdsecurity/postfix  # Serveur mail
sudo cscli collections install crowdsecurity/wordpress # CMS WordPress
sudo cscli collections install crowdsecurity/traefik  # Reverse proxy Traefik

# Lister tous les scénarios disponibles
sudo cscli scenarios list --all

# Afficher les parsers actifs
sudo cscli parsers list

Après l'installation des collections, redémarrez CrowdSec pour prendre en compte les nouveaux scénarios :

sudo systemctl reload crowdsec

# Vérifier que les nouvelles collections sont actives
sudo cscli collections list

# Voir les logs en temps réel
sudo journalctl -u crowdsec -f

Installer les bouncers — là où la magie opère

Bouncer iptables (blocage réseau bas niveau)

# Bloquer directement au niveau du firewall kernel
sudo apt install -y crowdsec-firewall-bouncer-iptables

# Configuration /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml
sudo nano /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml
# /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml
mode: iptables
pid_dir: /var/run/
update_frequency: 10s
daemonize: true
log_mode: file
log_dir: /var/log/
log_level: info
api_url: http://127.0.0.1:8080
api_key: <VOTRE_API_KEY>
disable_ipv6: false
deny_action: DROP
deny_log: false
supported_decisions_types:
  - ban
# Démarrer le bouncer
sudo systemctl enable --now crowdsec-firewall-bouncer

# Vérifier
sudo cscli bouncers list

Bouncer nginx (blocage HTTP)

sudo apt install -y crowdsec-nginx-bouncer

# Configuration dans /etc/nginx/conf.d/crowdsec.conf
# (ajouté automatiquement à l'installation)
sudo nginx -t && sudo systemctl reload nginx
Schéma architecture CrowdSec intelligence collective partage blocklists communauté mondiale
Intelligence collective CrowdSec : votre instance contribue et bénéficie du réseau mondial

Hub CrowdSec — Blocklists premium

Le Hub CrowdSec (app.crowdsec.net) offre des blocklists premium enrichies :

# S'enregistrer sur le Hub CrowdSec
sudo cscli console enroll <votre-token-hub>

# Synchroniser avec le Hub
sudo cscli hub update

# Abonnement aux blocklists (gratuit pour les essentiels)
# Via l'interface web app.crowdsec.net :
# - Firehol Level 1 (IPs malveillantes connues)
# - Proxy et VPN suspects
# - Tor exit nodes
# - Scanners connus (Shodan, Censys...)

# Vérifier la synchronisation
sudo cscli hub list

Alertes et notifications

Configurer des notifications en temps réel via Telegram, Slack ou email :

# /etc/crowdsec/notifications/telegram.yaml
type: telegram
name: telegram_default
log_level: info
format: |
  {{range . -}}
  🚨 CrowdSec Alert
  IP: {{.Source.IP}}
  Country: {{.Source.Cn}}
  Reason: {{.Scenario}}
  Action: {{.Decisions | len}} decision(s)
  {{end -}}

# Plugin Telegram
token: "VOTRE_TOKEN_BOT_TELEGRAM"
chat_id: "VOTRE_CHAT_ID"

# Activer la notification
sudo cscli notifications add telegram_default
sudo cscli notifications test telegram_default
Notification Telegram alerte sécurité CrowdSec smartphone application mobile
Alertes Telegram en temps réel : savoir immédiatement qui attaque et pourquoi

Gestion des décisions

# Voir les IPs actuellement bloquées
sudo cscli decisions list

# Bannir manuellement une IP
sudo cscli decisions add --ip 1.2.3.4 --duration 24h --reason "Test manuel"

# Débannir une IP (faux positif)
sudo cscli decisions delete --ip 1.2.3.4

# Débannir par ID de décision
sudo cscli decisions delete --id 42

# Voir les alertes récentes
sudo cscli alerts list

# Stats globales
sudo cscli metrics

# Simuler le mode DRY RUN (ne bloque pas, juste observe)
# Dans /etc/crowdsec/config.yaml :
# simulation: true

Déploiement multi-serveurs

Pour une infrastructure avec plusieurs serveurs, centralisez la LAPI sur un serveur dédié :

# Sur le serveur LAPI central
# /etc/crowdsec/config.yaml — modifier l'écoute
api:
  server:
    listen_uri: 0.0.0.0:8080

# Sur les serveurs agents
# /etc/crowdsec/config.yaml
api:
  client:
    insecure_skip_verify: false
    credentials_path: /etc/crowdsec/local_api_credentials.yaml

# /etc/crowdsec/local_api_credentials.yaml
url: http://<IP_LAPI>:8080
login: <agent_login>
password: <agent_password>

# Enregistrer l'agent auprès de la LAPI centrale
sudo cscli lapi register --url http://<IP_LAPI>:8080 --machine agent-serveur1
Interface web CrowdSec console graphiques statistiques blocages par pays et type attaque
Console CrowdSec : statistiques détaillées par type d'attaque et origine géographique

Prochaines étapes

  • Configurer l'intégration avec OPNsense/PFSense via le bouncer pfSense
  • Mettre en place des whitelist pour vos IPs légitimes (éviter les faux positifs)
  • Explorer les scénarios personnalisés pour vos applications métier
  • Centraliser les logs avec Loki + Grafana pour la visualisation
  • Tester le mode simulation pendant 48h avant d'activer le blocage
📥 Guide PDF complet

Téléchargez ce guide en PDF pour le consulter hors ligne.

⬇ Télécharger le guide (PDF)

🚀 Aller plus loin avec BOTUM

Ce guide couvre les bases. En production, chaque environnement a ses spécificités. Les équipes BOTUM accompagnent les organisations dans le déploiement, la configuration avancée et la sécurisation de leur infrastructure. Si vous avez un projet, parlons-en.

Discuter de votre projet →
Série Sécurité