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éeErreur 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 écrit ses access logs dans un fichier partagé.
- L'agent CrowdSec les analyse avec des scénarios (force brute, scans, exploitation de vulnérabilités connues) et envoie des alertes.
- 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é.
- 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 # testBonne Pratique : Ajoutez vos propres adresses (supervision, bureaux) dans une liste blanche CrowdSec pour ne jamais vous bloquer vous-même.
