Skip to main content

Le Cloudflare Bouncer de CrowdSec

Dans un contexte où la majorité des attaques ciblent les services exposés sur Internet, la combinaison de CrowdSec et Cloudflare constitue une solution de protection particulièrement efficace.
Le Cloudflare Bouncer permet d’appliquer automatiquement les décisions de sécurité de CrowdSec directement au niveau de l’infrastructure Cloudflare, avant même que le trafic n’atteigne les serveurs protégés.

Cette approche offre une mitigation en amont, réduisant considérablement la charge sur les serveurs et bloquant les attaques à la source.

Principe général du Cloudflare Bouncer

Dans l’écosystème CrowdSec :

  • l’agent CrowdSec détecte les comportements malveillants,

  • le moteur décisionnel prend une décision (ban, captcha, allow),

  • le bouncer applique cette décision.

Le Cloudflare Bouncer est donc le composant chargé de transmettre les décisions de CrowdSec à l’API Cloudflare, afin de créer automatiquement des règles de sécurité.

Fonctionnement détaillé

Détection locale

CrowdSec analyse les journaux (logs) des services exposés :

  • serveurs web (Nginx, Apache, Traefik…),

  • reverse proxies,

  • services applicatifs.

Il identifie les comportements suspects :

  • brute force,

  • scans,

  • bots agressifs,

  • attaques par répétition.

Prise de décision

Lorsque le moteur détecte un comportement malveillant :

  • une décision est créée localement (ex. : ban IP pendant 4 heures),

  • cette décision est également partagée avec la CTI CrowdSec (intelligence collective).

Application via Cloudflare

Le Cloudflare Bouncer :

  • interroge régulièrement l’API locale de CrowdSec,

  • récupère les décisions actives,

  • crée ou met à jour des règles de sécurité Cloudflare.

Ces règles peuvent être :

  • blocage total,

  • challenge JavaScript,

  • CAPTCHA (selon configuration).

Le trafic malveillant est bloqué avant d’atteindre le serveur, directement sur l’infrastructure Cloudflare.

Pourquoi utiliser le Cloudflare Bouncer ?

Blocage en amont

Les attaques sont stoppées au niveau :

  • du CDN,

  • du WAF Cloudflare,

  • des points de présence Cloudflare mondiaux.

Le serveur n’est jamais sollicité.

Réduction de la charge serveur

  • Moins de connexions entrantes,

  • Moins de logs,

  • Moins de consommation CPU/RAM.

Protection globale

Une IP bannie est bloquée :

  • sur tous les domaines Cloudflare ciblés,

  • indépendamment du serveur physique.

Idéal pour les infrastructures modernes

Particulièrement adapté aux :

  • hébergements mutualisés,

  • environnements cloud,

  • conteneurs Docker,

  • Kubernetes,

  • reverse proxies exposés.

Architecture type

Internet
   ↓
Cloudflare (Bouncer CrowdSec)
   ↓
Reverse Proxy / Serveur Web
   ↓
Applications

CrowdSec peut être installé :

  • sur le reverse proxy,

  • sur un serveur applicatif,

  • ou sur une machine dédiée à l’analyse des logs.

Prérequis

Côté infrastructure

  • Serveur Linux (Debian / Ubuntu / RHEL)

  • Accès root ou sudo

  • Reverse proxy exposé (Nginx, Traefik, Apache…)

  • CrowdSec non installé ou propre

Côté Cloudflare

  • Domaine(s) déjà protégés par Cloudflare

  • Accès à l’interface Cloudflare

  • Offre Cloudflare compatible avec règles WAF (Free suffisant pour les IP rules)

Mise en place du Cloudflare Bouncer

Création du token API Cloudflare

Dans Cloudflare :

  • créer un token personnalisé,

  • accorder les permissions firewall,

  • limiter le token aux zones concernées.

Cela garantit un principe de moindre privilège.

Installation de CrowdSec

Ajout du dépôt CrowdSec

curl -s https://install.crowdsec.net | sudo sh

Installation

apt install crowdsec -y

Vérification

sudo systemctl status crowdsec
cscli version

Configuration de CrowdSec

Vérifier les logs analysés

cscli metrics

Si aucun log n’apparaît, vérifier les chemins dans :

/etc/crowdsec/acquis.yaml

Exemple pour Nginx :

filenames:
  - /var/log/nginx/access.log
labels:
  type: nginx

Installer les collections utiles

cscli collections install crowdsecurity/nginx
cscli collections install crowdsecurity/http-cve
cscli collections install crowdsecurity/base-http-scenarios

Redémarrer :

sudo systemctl restart crowdsec

Vérifier les scénarios actifs

cscli scenarios list

Connexions à la console
Retrouvez la clé d'inscription sur app.crowdsec.net

sudo cscli console enroll <clé privée> 

 

Lancement et vérification

Une fois démarré :

  • le bouncer se connecte à l’API CrowdSec,

  • synchronise les décisions,

  • crée automatiquement les règles Cloudflare.

Les règles sont visibles dans :

  • Security → WAF → Rules (Cloudflare),

  • cscli decisions list côté CrowdSec.

Bonnes pratiques

Limiter les faux positifs

  • utiliser des durées de ban raisonnables,

  • préférer le challenge au blocage pour certains scénarios,

  • whitelister les IP internes, VPN et partenaires.

Centraliser la détection

Un seul CrowdSec peut analyser :

  • les logs de plusieurs services,

  • plusieurs reverse proxies,

  • plusieurs conteneurs.

Le Cloudflare Bouncer applique ensuite la protection à grande échelle.

Combiner avec d’autres bouncers

Le Cloudflare Bouncer peut être utilisé en complément :

  • d’un bouncer firewall local,

  • d’un bouncer Nginx,

  • d’un WAF applicatif.

Limites à connaître

  • Le bouncer dépend de l’API Cloudflare (latence possible).

  • Les règles Cloudflare ont des quotas (selon l’offre).

  • Protection uniquement pour le trafic passant par Cloudflare.

  • Non adapté aux services non HTTP (SSH direct, SMTP…).

Cas d’usage idéaux

  • Sites web publics

  • APIs exposées

  • Applications SaaS

  • Reverse proxies (Traefik, Nginx, HAProxy)

  • Infrastructures cloud et conteneurisées

Conclusion

Le Cloudflare Bouncer de CrowdSec est une solution puissante qui permet de déplacer la sécurité au plus près de l’attaquant.
En combinant la détection comportementale de CrowdSec et la capacité de mitigation mondiale de Cloudflare, il offre une protection efficace, scalable et moderne contre les menaces actuelles.

C’est une brique essentielle pour toute infrastructure exposée sur Internet souhaitant bloquer les attaques avant qu’elles n’atteignent les serveurs.