Crowdsec Traefik Bouncer: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 2: | Zeile 2: | ||
==Ziel== | ==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. | + | 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== | ==Voraussetzungen== | ||
* Traefik läuft als Container (z. B. mit weyon/traefik-bindtools) | * Traefik läuft als Container (z. B. mit weyon/traefik-bindtools) | ||
| − | * HTTPS ist aktiv (Let's Encrypt | + | * HTTPS ist aktiv (Wildcard-Zertifikat oder Let's Encrypt) |
* CrowdSec ist direkt auf dem Docker-Host installiert | * CrowdSec ist direkt auf dem Docker-Host installiert | ||
* Externes Docker-Netzwerk heißt ''traefik-public'' | * Externes Docker-Netzwerk heißt ''traefik-public'' | ||
* Die Dienste wie ''uptime-kuma'' sind über Traefik erreichbar | * Die Dienste wie ''uptime-kuma'' sind über Traefik erreichbar | ||
| + | * Das CrowdSec-Traefik-Plugin wird verwendet (kein Bouncer-Container nötig) | ||
==CrowdSec vorbereiten== | ==CrowdSec vorbereiten== | ||
| Zeile 18: | Zeile 19: | ||
*systemctl restart crowdsec | *systemctl restart crowdsec | ||
| − | *cscli bouncers add traefik- | + | *cscli bouncers add traefik-plugin |
→ Den Key kopieren | → 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== | ==Middleware definieren== | ||
| Zeile 57: | Zeile 38: | ||
middlewares: | middlewares: | ||
crowdsec-captcha: | 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== | ==Middleware aktivieren für uptime-kuma== | ||
| Zeile 82: | Zeile 63: | ||
==Fazit== | ==Fazit== | ||
| − | Diese Konfiguration | + | 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. |
Version vom 9. April 2025, 10:20 Uhr
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
- Browser öffnen → https://uptime-kuma.samogo.de
→ 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.