In dieser Anleitung erfahrt ihr, wie ihr WordPress mittels des Tools CrowdSec in wenigen Minuten absichern könnt.
Datum | Änderung |
---|---|
11.08.2022 | Erstellung dieser Anleitung |
05.03.2023 | Kapitel 2 wurde hinzufügt |
29.05.2023 | Anpassung an neue Traefik Anleitung, Kapitel 4 hinzugefügt |
26.11.2023 | Kapitel 6 hinzugefügt |
05.01.2024 | Anpassungen an Traefik v3 |
1. Voraussetzung
Diese Anleitung basiert auf folgenden Anleitungen
2. WordPress zum CrowdSec Netzwerk hinzufügen
Nun fügen wir WordPress noch zum CrowdSec Netzwerk hinzu. Dazu öffnet ihr folgende Datei:
nano /opt/containers/wordpress/docker-compose.yml
Hier fügt ihr nun folgende 3 Zeilen hinzu:
version: '3.1' services: wordpress: image: wordpress restart: unless-stopped container_name: wordpress environment: WORDPRESS_DB_HOST: wordpress-db .. .. .. networks: - proxy - default - crowdsec # <-- diese Zeile .. .. .. networks: proxy: external: true crowdsec: # <-- diese Zeile external: true # <-- diese Zeile
Anschließend starten wir den Container neu, damit die Einstellungen übernommen werden.
docker compose -f /opt/containers/wordpress/docker-compose.yml -d --force-recreate
3. WordPress Plugin installieren
Nun müssen wir noch das passende WordPress Plugin installieren. Dazu sucht ihr einfach nach CrowdSec.
Nach der Installation müsst ihr das Plugin noch aktivieren.
Bei diesem Inhalt handelt es sich um exklusiven Content für Community Plus Mitglieder und Supporter.
Bitte logge dich mit deinem Account ein um den Inhalt zu sehen.
Klickt nun wieder auf den Button “Test bouncing” und folgende Meldung sollte erscheinen:
Wenn ihr jetzt mittels eures Webbrowsers auf die Webseite geht, solltet ihr folgendes sehen:
Anschließend könnt ihr eure IP wieder entsperren. Gebt dazu folgendes ein:
docker exec crowdsec cscli decisions delete --all
Wenn ihr die Webseite neu lädt, sollte das Captcha wieder verschwunden sein.
Hallo Leute,
Verständnisfrage: Wenn alles nach dieser Anleitung fehlerfrei funktioniert, dann müsste doch jemand, der mehrmals versucht sich auf meiner WordPresseite einzuloggen, gebannt werden oder nicht? Sonst macht doch Crowdsec keinen Sinn mit WordPress.
Ein Freund von mir hat zum testen versucht sich mit falschen Zugangsdaten einzuloggen, wurde aber nicht gebannt!
VG Hardy
Hallo,
erstmal danke für die Anleitung, doch egal was ich mache sie funktioniert nicht.
Wenn ich das Plugin aktiviere und wie oben angegeben: http://crowdsec:8080 angebe bekomme ich einen Fehler angezeigt: Unexpected HTTP call Failure
Wenn ich anstatt crowdsec die IP des Containers angebe ( in meinem fall befinden sich die Crowdsec Container in einem eigenen Netz also 172.31.0.2:8080 ) werde ich komplett ausgesperrt.
Bedeutet das zwar die domain.tld/wp-admin noch geht aber die Webseite schmeißt einen 524 von Cloudflare.
Sobald ich es deaktiviere geht es wieder.
Ich habe unter den Erweiterten Einstellungen auch mal den Redis Cache aktiviert, da mein WP mit Redis Object Cache läuft. Dann ändert sich auch nichts.
Ich frage mich nun was habe ich Falsch gemacht? Liegt es an Cloudflare oder an meiner Docker Config.
Wer möchte kann sich das ganze ja mal anschauen ich habe sie auf Pastebin gestellt:
Crowdsec: https://pastebin.com/RLQxxawD
Wordpress: https://pastebin.com/dNw7UCid
Ich bekomme beim Testen: Technical error while testing bouncer connection: Unexpected HTTP call failure.
Klappt also nicht. Haat jemand n Tipp?
LG Hardy
Ich hab jetzt deine Anleitung durchgeackert und bin beim testen des Bouncing gescheitert.
Nach mehreren Fehlversuchen hat es mit der LAPI URL http://crowdsec:8080 und dem API Key dann geklappt “Test Bouncing” auszuführen ohne Fehler.
Ich bekomme zwar eine grüne OK Bestätigung aber der “Result is: bypass.” Auf die Webseite komme ich danach uneingeschränkt ohne Capcha.
Das Bouncing Level habe ich auf “Normal Bouncing” eingestellt also hätte ich erwartet dass das Result “captcha” sein müsste.
Ein Test mit “cscli decisions add -i 1.2.3.4 –duration 15m –type captcha” aktiviert das captcha und geht auch mit “cscli decisions remove -i 1.2.3.4” wieder weg.
Ich hab in den COLLECTIONS vom crowdsec docker-compose.yml noch “crowdsecurity/linux crowdsecurity/sshd crowdsecurity/nextcloud crowdsecurity/wordpress ” hinzugefügt für meine WordPress und Nextcloud instanzen wie auch dem “crowdsec-firewall-bouncer-iptables” den ich lokal auf dem VPS installiert habe. Brauch ich die wirklich oder geht das auch ohne? EDIT: Mittlerweile läuft es ohne “crowdsecurity/wordpress” in den COLLECTIONS aber macht keinen Unterschied.
Scheint soweit alles zu klappen aber ich verstehe noch nicht wirklich wie die das alles zusammenhängt mit diesen Bouncern. Ich hatte einen “wordpress-bouncer” mit API Key eingerichtet und verwendet. Dieser erschien auch in “cscli metrics list” nach dem Bouncing Test. Bin aber nicht sicher ob ich den brauche. Wenn ich den API Key vom Traefik Bouncer verwende ist das Endresultat das gleiche. Es erscheint zwar kein wordpress-bouncer mehr in “cscli metrics list” aber das Test Ergebnis bleibt OK mit “Result is: bypass.” und ohne Blocking. Unter “cscli decisions list” finde ich auch kein Hinweis dass die IP geblockt ist.
Also entweder versteh ich diesen Blocking Tests komplett falsch und jage einem Phantom nach oder der Test kommt zwar OK zurück aber die getestete IP wird nicht geblockt.
Wo könnte da der Fehler liegen?
Ich wäre froh um ein paar Hinweise.
Danke und Gruss
Thomas
p.s. Warum ist eigentlich der Screenshot vor dem “Test Bouncing” in der Anleitung nur für Community Plus Mitglieder?