RousselTMLEARNING

Article · Traefik: From Discovery to Expertise

Plugins - example with CrowdSec

This article is available in French.

1. Les plugins Traefik #

Ajouter des middlewares et des providers.

Fonctionnement #

Les plugins Traefik sont écrits en Go et exécutés par l'interpréteur Yaegi intégré : pas besoin de recompiler Traefik. Ils sont publiés dans le Plugin Catalog et déclarés dans la configuration statique, puis utilisés comme des middlewares.

# configuration statique
experimental:
  plugins:
    crowdsec:
      moduleName: github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin
      version: v1.3.5        # fixez une version testée
Erreur Courante : Un plugin s'exécute dans le processus Traefik : choisissez des plugins maintenus, fixez leur version et testez-les avant la production.

2. CrowdSec #

Une détection collaborative.

Architecture #

Traefik et CrowdSec
Le blocage se fait dans Traefik, avant que la requête n'atteigne l'application.
  1. Traefik écrit ses access logs dans un fichier partagé.
  2. L'agent CrowdSec les analyse avec des scénarios (force brute, scans, exploitation de vulnérabilités connues) et envoie des alertes.
  3. L'API locale crée des décisions (bannir une IP pendant 4 h) et reçoit aussi les listes partagées par la communauté.
  4. Le plugin bouncer interroge l'API locale et répond 403 aux IP bannies.

3. Mise en place avec Docker Compose #

Les éléments essentiels.

Configuration #

services:
  crowdsec:
    image: crowdsecurity/crowdsec
    environment:
      COLLECTIONS: "crowdsecurity/traefik crowdsecurity/http-cve"
    volumes:
      - ./acquis.yaml:/etc/crowdsec/acquis.yaml:ro
      - traefik-logs:/var/log/traefik:ro
  traefik:
    image: traefik:v3
    command:
      - --accesslog.filepath=/var/log/traefik/access.log
      - --experimental.plugins.crowdsec.modulename=github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin
      - --experimental.plugins.crowdsec.version=v1.3.5
    volumes: [traefik-logs:/var/log/traefik]
# middleware dynamique : crowdsecLapiKey = clé créée par « cscli bouncers add traefik »
docker compose exec crowdsec cscli bouncers add traefik   # clé pour le plugin
docker compose exec crowdsec cscli metrics                 # lignes lues, scénarios déclenchés
docker compose exec crowdsec cscli decisions list          # IP bloquées
docker compose exec crowdsec cscli decisions add --ip 203.0.113.7 --duration 1h   # test
Bonne Pratique : Ajoutez vos propres adresses (supervision, bureaux) dans une liste blanche CrowdSec pour ne jamais vous bloquer vous-même.

📄 Les plugins Traefik : l'exemple de CrowdSec pour bloquer les attaques →

My progress

  • ⏱ Estimated time : ≈ 6 min

Sign in to track your progress and take notes. Sign in

💬 Ask a question

Recommended Articles

Traefik : les providers (Docker, Kubernetes, Nomad, Consul, fichiers, clés-valeurs)

Les providers alimentent la configuration dynamique de Traefik : découverte des services Docker, ...

Traefik : sécuriser et transformer les requêtes avec les middlewares (BasicAuth, ForwardAuth…)

Les middlewares Traefik modifient les requêtes et réponses entre le routeur et le service : authe...

Traefik comme Ingress Controller pour Kubernetes (Helm, IngressRoute, Gateway API)

Installer Traefik dans Kubernetes avec Helm et publier des applications avec Ingress, les CRD Ing...

Traefik : les logs (journaux applicatifs et access logs)

Configurer les deux journaux de Traefik : le journal de fonctionnement (niveaux, format) et les a...

L'API de Traefik : inspecter la configuration et sécuriser le tableau de bord

Utiliser l'API REST de Traefik pour inspecter routeurs, services, middlewares et entrypoints, l'e...

Traefik : les métriques avec Prometheus et OpenTelemetry

Exposer les métriques de Traefik (Prometheus ou OTLP), comprendre les séries par entrypoint, rout...

Traefik : vue d'ensemble, architecture et premier déploiement

Découvrir Traefik : reverse proxy et load balancer cloud-native, entrypoints, routers, services, ...

Bonnes pratiques Traefik : sécurité, haute disponibilité et observabilité

Bonnes pratiques Traefik : sécurisation du dashboard et du socket Docker, TLS moderne, middleware...

Traefik : le tracing distribué avec OpenTelemetry

Activer le tracing de Traefik v3 avec OpenTelemetry (OTLP), propager le contexte W3C vers les app...

Support us

♥ SUPPORT US

Support RousselTM Learning

Courses, articles, labs and certificates stay free with no intrusive ads. A voluntary contribution, of any amount you choose, pays for hosting, lab environments and new content.

Contribute with PayPal Any amount · card or PayPal accountLearn more
QR code PayPal
Or scan this QR code with your phone

Thank you, every contribution counts!