Crowdsec Traefik Bouncer: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 1: | Zeile 1: | ||
=Traefik + CrowdSec + CAPTCHA absichern= | =Traefik + CrowdSec + CAPTCHA absichern= | ||
| − | + | ==Vorarbeiten== | |
| + | ;Ändern so das der Bouncer Container darauf zugreifen kann | ||
| + | *vi /etc/crowdsec/config.yaml | ||
| + | listen_uri: 0.0.0.0:8080 | ||
| + | *systemctl restart crowdsec | ||
==Ziel== | ==Ziel== | ||
Angreifer sollen bei HTTP-Angriffen nicht direkt blockiert, sondern auf eine CAPTCHA-Seite umgeleitet werden. Nach Bestehen des CAPTCHAs wird der Zugriff wieder freigegeben. | Angreifer sollen bei HTTP-Angriffen nicht direkt blockiert, sondern auf eine CAPTCHA-Seite umgeleitet werden. Nach Bestehen des CAPTCHAs wird der Zugriff wieder freigegeben. | ||
Version vom 9. April 2025, 09:06 Uhr
Traefik + CrowdSec + CAPTCHA absichern
Vorarbeiten
- Ändern so das der Bouncer Container darauf zugreifen kann
- vi /etc/crowdsec/config.yaml
listen_uri: 0.0.0.0:8080
- systemctl restart crowdsec
Ziel
Angreifer sollen bei HTTP-Angriffen nicht direkt blockiert, sondern auf eine CAPTCHA-Seite umgeleitet werden. Nach Bestehen des CAPTCHAs wird der Zugriff wieder freigegeben.
Komponenten
- Traefik als Reverse Proxy
- CrowdSec mit aktiver Erkennung
- cs-traefik-bouncer (als Docker-Container)
- Eine statische CAPTCHA-Webseite
Bouncer in CrowdSec registrieren
- cscli bouncers add traefik-bouncer
→ Key notieren und in config.yml bei crowdsec_lapi_key eintragen.
Konfiguration erstellen
- mkdir /mnt/docker/traefik/bouncer
- vi /mnt/docker/traefik/bouncer/config.yml
listen_uri: 0.0.0.0:8081 crowdsec_lapi_key: HIER_DEN_API_KEY_EINFÜGEN crowdsec_lapi_url: http://crowdsec:8080/ log_level: info mode: captcha
Docker-Traefik erweitern
- vi /mnt/docker/traefik/docker-compose.yaml
traefik-bouncer:
image: crowdsecurity/cs-traefik-bouncer
container_name: traefik-bouncer
volumes:
- ./bouncer/config.yml:/config.yml:ro
- ./captcha:/www
ports:
- "8081:8081"
restart: unless-stopped
Traefik Middleware konfigurieren
- vi /mnt/docker/traefik/conf/middleware.yaml
http:
middlewares:
crowdsec-captcha:
forwardAuth:
address: http://traefik-bouncer:8081/api/v1/forwardAuth
trustForwardHeader: true
authResponseHeaders:
- X-Crowdsec-Captcha-Result
Middleware verwenden
- vi /mnt/docker/traefik/conf/router.yaml
http:
routers:
web:
entryPoints:
- web
rule: Host(`example.com`)
service: myservice
middlewares:
- crowdsec-captcha
Funktion
- CrowdSec erkennt Angreifer anhand der HTTP-Zugriffe
- Statt sofort zu blockieren, wird eine CAPTCHA-Entscheidung gesetzt
- Der Traefik-Bouncer prüft dies und leitet auf die CAPTCHA-Seite um
- Nach erfolgreichem Aufruf wird die IP automatisch freigegeben
Testen
- curl -s http://example.com/.env
(Decision sollte CAPTCHA sein)
- Browser aufrufen → CAPTCHA-Seite wird angezeigt
Fazit
Mit dem cs-traefik-bouncer lässt sich CrowdSec um ein intelligentes CAPTCHA-System erweitern. Angreifer können automatisiert ausgebremst werden, ohne legitime Nutzer dauerhaft zu sperren.