Crowdsec Traefik Bouncer

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Traefik mit CrowdSec + CAPTCHA über HTTPS (Label-basiert)

Ziel

HTTP-Angreifer sollen nicht sofort geblockt, sondern auf eine CAPTCHA-Seite umgeleitet werden. Nach erfolgreicher Bestätigung wird der Zugriff automatisch freigegeben – ausschließlich über HTTPS. Die Konfiguration erfolgt vollständig über Docker-Labels unter Verwendung des offiziellen CrowdSec-Plugins für Traefik.

Voraussetzungen

  • Traefik läuft als Container (z. B. mit weyon/traefik-bindtools)
  • HTTPS ist aktiv (Wildcard-Zertifikat oder Let's Encrypt)
  • CrowdSec ist direkt auf dem Docker-Host installiert
  • Externes Docker-Netzwerk heißt traefik-public
  • Die Dienste wie uptime-kuma sind über Traefik erreichbar
  • Das CrowdSec-Traefik-Plugin wird verwendet (kein Bouncer-Container nötig)

CrowdSec vorbereiten

  • vi /etc/crowdsec/config.yaml
listen_uri: 0.0.0.0:8080
  • systemctl restart crowdsec
  • cscli bouncers add traefik-plugin

→ Den Key kopieren

Traefik-Plugin aktivieren

  • vi /mnt/docker/traefik/traefik.yaml
experimental:
  plugins:
    crowdsec:
      moduleName: "github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin"
      version: "v1.4.2"

Middleware definieren

  • vi /mnt/docker/traefik/conf/middleware.yaml
http:
  middlewares:
    crowdsec-captcha:
      plugin:
        crowdsec:
          crowdsec_mode: captcha
          crowdsec_lapi_url: http://host.docker.internal:8080/
          crowdsec_lapi_key: HIER_DEN_KEY_EINFÜGEN

Middleware aktivieren für uptime-kuma

In der docker-compose.yaml von uptime-kuma ergänzen:

  - "traefik.http.routers.uptime-kuma.middlewares=crowdsec-captcha@file"

System starten

  • docker compose up -d

Testen

  • cscli decisions add --ip DEINE_IP --type captcha --duration 10m

→ CAPTCHA-Seite erscheint

Fazit

Diese Konfiguration integriert das CrowdSec CAPTCHA direkt in Traefik über das offizielle Plugin. Sie kommt ohne zusätzlichen Container aus und ermöglicht eine saubere und wartbare Absicherung von Diensten über HTTPS – dynamisch, intelligent und benutzerfreundlich.