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 sind erfüllt:
| 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.
Achtung
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.
Hinweis
Dieselben Schritte zeigt auch der Installationsassistent im Reiter Integration des Sitekeys. Siehe Integration.