Traefik¶
Traefik bindet das Myra EU CAPTCHA über das Plugin CrowdSec Bouncer Traefik Plugin ein. Das Plugin stammt nicht von Myra Security. Es fragt die Entscheidungen von CrowdSec ab und zeigt für die Entscheidung captcha eine Challenge des Myra EU CAPTCHA an.
Ablauf¶
Das Plugin arbeitet als Middleware vor Ihrem Dienst:
| Entscheidung | Verhalten |
|---|---|
ban |
Das Plugin weist die Anfrage ab. |
captcha |
Das Plugin zeigt die Vorlage captcha.html mit dem Widget an, prüft das gelöste Token und lässt die IP-Adresse für die Dauer der Schonfrist durch. |
| keine Entscheidung | Das Plugin reicht die Anfrage unverändert an Ihren Dienst weiter. |
Anders als bei Caddy entscheidet damit CrowdSec, wer eine Challenge sieht. Alle Anfragen einer Domain schützen Sie mit dem eigenständigen Bouncer. Siehe CrowdSec.
Voraussetzungen¶
Die folgenden Voraussetzungen müssen erfüllt sein:
| Voraussetzung | Wert |
|---|---|
| Traefik | Version, die Plugins unterstützt |
| CrowdSec | Laufender Agent mit erreichbarer Local API |
| Zugangsdaten | Öffentlicher Sitekey und Secret aus der Ansicht Details |
Plugin registrieren¶
Um das Plugin bekannt zu machen, gehen Sie wie folgt vor:
- ► Ergänzen Sie die statische Konfiguration
traefik.yml:
experimental:
plugins:
bouncer:
moduleName: github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin
version: v1.3.5
- ► Starten Sie Traefik neu.
- ➔ Traefik lädt das Plugin beim Start herunter.
Vorlage und Bouncer vorbereiten¶
Um die Vorlage der Challenge bereitzustellen und den Bouncer anzumelden, gehen Sie wie folgt vor:
- ► Laden Sie die Vorlage herunter:
curl -o captcha.html \
https://raw.githubusercontent.com/maxlerebourg/crowdsec-bouncer-traefik-plugin/main/captcha.html
- ► Binden Sie die Datei als Volume in den Container von Traefik ein.
- ► Melden Sie den Bouncer bei CrowdSec an:
- ↳ Der Befehl gibt einen API-Schlüssel aus. Notieren Sie ihn.
Middleware einrichten¶
Um die Middleware einzurichten, ergänzen Sie die dynamische Konfiguration:
http:
middlewares:
crowdsec:
plugin:
bouncer:
crowdsecLapiKey: "<API-Schlüssel aus cscli bouncers add>"
crowdsecLapiHost: "crowdsec:8080"
captchaProvider: eucaptcha
captchaSiteKey: "EUCAPTCHA_SITE_KEY"
captchaSecretKey: "EUCAPTCHA_SECRET_KEY"
captchaGracePeriodSeconds: 1800
captchaHTMLFilePath: /captcha.html
Die folgenden Schlüssel betreffen das Myra EU CAPTCHA:
| Schlüssel | Beschreibung |
|---|---|
captchaProvider |
Anbieter der Challenge. Für das Myra EU CAPTCHA lautet der Wert eucaptcha. |
captchaSiteKey |
Öffentlicher Sitekey. |
captchaSecretKey |
Secret des Sitekeys. |
captchaGracePeriodSeconds |
Dauer in Sekunden, für die eine bestandene Challenge gilt. |
captchaHTMLFilePath |
Pfad zur Vorlage captcha.html im Container. |
- ► Weisen Sie die Middleware den Routen zu, die geschützt werden sollen.
Warning
Das Secret gehört ausschließlich in die Konfiguration auf dem Server. Hinterlegen Sie es in einer Umgebungsvariablen oder in einem Dienst zur Verwaltung von Geheimnissen.
Note
Dieselben Schritte zeigt auch der Installationsassistent im Reiter Integration des Sitekeys. Siehe Integration.