Zum Inhalt
Myra EU CAPTCHA Online-Hilfe Stand · 25.08.2026

CrowdSec

Der Bouncer für CrowdSec ist ein eigenständiger vorgelagerter Server, der die Entscheidungen von CrowdSec mit dem Myra EU CAPTCHA verbindet. IP-Adressen mit der Entscheidung captcha erhalten eine Challenge, IP-Adressen mit der Entscheidung ban den Statuscode 403. Der übrige Verkehr erreicht Ihre Anwendung unverändert.

Ablauf

  1. Der Bouncer fragt den Entscheidungsstrom von CrowdSec unter /v1/decisions/stream ab und hält die Entscheidungen im Arbeitsspeicher.
  2. Bei jeder Anfrage schlägt er die IP-Adresse des Besuchers nach:
Entscheidung Verhalten
ban Der Bouncer beantwortet die Anfrage mit dem Statuscode 403 Forbidden.
captcha Der Bouncer leitet auf /__captcha__ um, zeigt das Widget an, prüft das Token serverseitig, setzt ein signiertes Cookie und leitet zurück.
keine Entscheidung Der Bouncer reicht die Anfrage an Ihre Anwendung weiter.

Voraussetzungen

Die folgenden Voraussetzungen müssen erfüllt sein:

Voraussetzung Wert
CrowdSec Laufender Agent mit erreichbarer Local API
Go ab Version 1.22 für den Bau aus den Quellen
Zugangsdaten Öffentlicher Sitekey und Secret aus der Ansicht Details

Bouncer installieren

Laden Sie das fertige Programm für Ihre Plattform von der Seite der Veröffentlichungen herunter:

# Linux amd64
curl -L https://github.com/Myra-Security-GmbH/eu-captcha-crowdsec/releases/latest/download/cs-eucaptcha-bouncer-linux-amd64 \
  -o cs-eucaptcha-bouncer
chmod +x cs-eucaptcha-bouncer

Programme stehen für Linux (amd64, arm64), macOS (amd64, arm64) und Windows (amd64) bereit.

Aus den Quellen bauen Sie wie folgt:

git clone https://github.com/Myra-Security-GmbH/eu-captcha-crowdsec.git
cd eu-captcha-crowdsec
make build
# produces ./cs-eucaptcha-bouncer

Bouncer einrichten

Um den Bouncer einzurichten, gehen Sie wie folgt vor:

  • Melden Sie den Bouncer bei CrowdSec an:
cscli bouncers add eu-captcha-bouncer
# Note the printed API key — you'll need it in the next step
  • CrowdSec zeigt einen API-Schlüssel an.
  • Legen Sie die Konfigurationsdatei an:
cp config.yaml.example config.yaml
  • Tragen Sie die erforderlichen Werte ein:
listen_addr: "0.0.0.0:8080"
upstream_url: "http://localhost:3000"   # your application

crowdsec:
  lapi_url: "http://localhost:8080"
  api_key: "<API key from cscli bouncers add>"
  update_interval: "10s"

eu_captcha:
  sitekey: "EUCAPTCHA_SITE_KEY"    # from app.eu-captcha.eu
  secret:  "EUCAPTCHA_SECRET_KEY"  # from app.eu-captcha.eu

session:
  secret: "<random hex string>"  # openssl rand -hex 32
  ttl: "1h"
  • Starten Sie den Bouncer:
./cs-eucaptcha-bouncer -config config.yaml
  • Der Bouncer schreibt sein Protokoll als strukturiertes JSON auf die Standardausgabe.

Richten Sie anschließend Ihren Lastverteiler oder Ihr DNS auf die Adresse aus listen_addr aus.

Einstellungen

Die folgenden Einstellungen stehen zur Verfügung:

Einstellung Vorgabe Wirkung
listen_addr 0.0.0.0:8080 Adresse, auf der der Bouncer Anfragen entgegennimmt.
upstream_url erforderlich Adresse Ihrer Anwendung.
crowdsec.lapi_url http://localhost:8080 Adresse der Local API von CrowdSec.
crowdsec.api_key erforderlich API-Schlüssel aus cscli bouncers add.
crowdsec.update_interval 10s Abstand zwischen zwei Abfragen des Entscheidungsstroms.
eu_captcha.sitekey erforderlich Öffentlicher Sitekey.
eu_captcha.secret erforderlich Geheimer Schlüssel.
eu_captcha.verify_url https://api.eu-captcha.eu/v1/verify Adresse des Endpunkts für die Prüfung.
session.secret erforderlich Schlüssel für die HMAC-Signatur. Erzeugen Sie ihn mit openssl rand -hex 32.
session.cookie_name __eucaptcha_pass Name des Sitzungs-Cookies.
session.ttl 1h Gültigkeitsdauer einer bestandenen Challenge.
trusted_proxies leer CIDR-Bereiche, deren Kopfzeile X-Forwarded-For der Bouncer auswertet.

Betrieb über systemd

[Unit]
Description=EU Captcha CrowdSec Bouncer
After=network.target crowdsec.service

[Service]
ExecStart=/usr/local/bin/cs-eucaptcha-bouncer -config /etc/eu-captcha-bouncer/config.yaml
Restart=on-failure
User=www-data

[Install]
WantedBy=multi-user.target

Betrieb im Container

FROM golang:1.22-alpine AS builder
WORKDIR /src
COPY . .
RUN go build -o cs-eucaptcha-bouncer ./cmd/cs-eucaptcha-bouncer

FROM alpine:3.19
COPY --from=builder /src/cs-eucaptcha-bouncer /usr/local/bin/
ENTRYPOINT ["cs-eucaptcha-bouncer", "-config", "/etc/bouncer/config.yaml"]

Belegte Pfade

Der Bouncer belegt zwei Pfade der geschützten Domain. Verwenden Sie diese Pfade nicht in Ihrer Anwendung:

Pfad Verwendung
/__captcha__ Zeigt die Challenge-Seite an.
/__captcha__/verify Nimmt das gelöste Token entgegen.