Wenn mehrere Dienste auf demselben Server Ăźber Port 80 (HTTP) oder 443 (HTTPS) kommunizieren, kann es zu Port-Konflikten kommen, da normalerweise nur ein Dienst einen bestimmten Port zur gleichen Zeit belegen kann. Traefik lĂśst dieses Problem als Reverse-Proxy und Load-Balancer.
Traefik leitet alle eingehenden Anfragen auf Port 80 oder 443 an die richtigen Dienste weiter. Dies geschieht anhand von konfigurierten Regeln, die das Routing bestimmen. So wird sichergestellt, dass jeder Dienst erreichbar ist, ohne dass Port-Konflikte entstehen. Nutze Traefik fĂźr eine effiziente und reibungslose Kommunikation der Webdienste.
In wie weit unterscheidet sich diese zu der bisherigen vorhandenen Anleitung?
- Die bisherige Anleitung ist etwas gealtert.
- Es gab viele wichtige Kommentare, Fragen und Anregungen – vielen Dank dafĂźr!
- Traefik Major Release Version 3
Diese Anleitung ist nicht mehr die aktuelle und WIRD NICHT MEHR GEPFLEGT. Hier gehtâs zur neuen Anleitung:
https://goneuland.de/traefik-ab-v3-6-mit-crowdsec-installieren-und-konfigurieren/
Versionierung
| Datum | Ănderung |
|---|---|
| Hinweis | Um die Docker-API-Problematik zu umgehen, kann in der Datei/opt/containers/traefik-crowdsec-stack/.env die VariableSERVICES_TRAEFIK_IMAGE_VERSION=3.6ergänzt werden. Diese Einstellung ßberschreibt die in compose/traefik.yml definierte Standard-Image-Version von Traefik. |
| 06.12.2025 | Kapitel 7.2.: SERVICES_TRAEFIK_IMAGE_VERSION in traefik.yml auf aktuellen Stand (3.6) gebracht. |
| 12.04.2025 | Kapitel 7.4.3.: In einzelne Middlewares aufgeschlĂźsselt und Header security um fehlenden Punkte erweitert. |
| 08.04.2025 | Kapitel 7.2.: Entfernen von default@file und Bouncer-Tausch default@file entfernt, da stets automatisch zugewiesen. Bouncer durch gepflegten Fork von FreifunkMUC ersetzt. |
| 07.04.2025 | Kapitel 7.2.: Elementare Ănderungen im docker-socket-proxy von linuxserver.io wodurch der Healthcheck fehlschlägt. |
| 24.03.2025 | Kapitel 7.2.: Schreibfehler korrigiert (@nicklas) Kapitel 7.4.6.: Schreibfehler korrigiert (@nicklas) Kapitel 7.5.1.: Hinweis zu Debian 12 hinzugefĂźgt (@christian) |
| 02.02.2025 | Kapitel 7.2: Fehler in der Compose von Traefik behoben (@thedj) / Traefik-Version auf 3.3 angepasst. |
| 10.10.2024 | Kapitel 7.3.1.: Hinweis erweitert (@steje) Kapitel 7.2. & Kapitel 7.3.2.: Anbindung von CrowdSec an den Docker-Socket-Proxy / Github aktualisiert |
| 09.10.2024 | Kapitel 7.5.1. & Kapitel 8.1.: Um Hinweis ergänzt (@Dearmon) |
| 07.10.2024 | Initialer Release |
WICHTIG!
Diese Anleitung nimmt keine Rßcksicht auf die alte Anleitung. Ich werde schauen, dass ich eine gesonderte Anleitung fßr den Umstieg schreibe. Grundsätzlich ist es mÜglich in dem man alle Docker Container und Netzwerke herunterfährt dann diese Anleitung durchläuft und die Container nach und nach wieder hochfährt. Zu beachten gilt an dieser Stelle dann nur ein kleiner Unterschied in Angabe des Host in den Labels:
traefik.http.routers.nginx-mailcow-secure.rule: "Host(`mail.euredomain.de`) || Host(`autodiscover.euredomain.de`) || Host(`autoconfig.euredomain.de`) || Host(`mta-sts.euredomain.de`) || Host(`imap.euredomain.de`) || Host(`pop3.euredomain.de`) || Host(`smtp.euredomain.de`)"
Code-Sprache: JavaScript (javascript)
traefik.http.routers.nginx-mailcow-secure.rule: Host(`mail.euredomain.de`,`autodiscover.euredomain.de`,`autoconfig.euredomain.de`,`mta-sts.euredomain.de`,`imap.euredomain.de`,`pop3.euredomain.de`,`smtp.euredomain.de`)
Code-Sprache: CSS (css)
0. Testing
Ich werde versuchen, diese Anleitung so aktuell wie mÜglich zu halten. Die Kompatibilität der Anleitung und der dazugehÜrigen Konfigurationen kann im zugehÜrigen GitHub-Repository eingesehen werden. Ich empfehle, das GitHub-Repository nur dann zu verwenden, wenn du diese Anleitung bereits mehrfach durchgearbeitet hast oder generell ein erfahrener Anwender im Bereich Server- und Docker-Administration bist.
Repository-Link: https://github.com/psycho0verload/traefik-crowdsec-stack
1. Zielsetzung
- Traefik v3 installieren und konfigurieren
- Crowdsec installieren und konfigurieren
- Traefik Services via CrowdSec sichern
- Einzelner Stack
- Wie wir unsere Services mit Traefik verfĂźgbar machen

2. Voraussetzung
Um die Installation und Konfiguration von Traefik v3 und CrowdSec durchzufĂźhren, mĂźssen die folgenden Systemanforderungen erfĂźllt sein:
- Ubuntu 24.04 LTS – “Noble” oder Debian 12 LTS – “Bookworm”
- Docker version 27.x
- Docker Compose version v2.28.x
root-Rechte auf dem Zielsystem
2.1. Hinweis
Diese Anleitung basiert auf meiner persÜnlichen Testumgebung, in der ich hauptsächlich mit der aktuellen Ubuntu-Version arbeite. Dennoch werde ich den gesamten Prozess auch auf der neuesten Debian-Version testen und bereitstellen.
Es ist mÜglich, dass die Anleitung auch rßckwärtskompatibel zu älteren Versionen von Ubuntu und Debian ist. Dies werde ich jedoch weder testen noch sicherstellen.
Mir ist bekannt, dass es inzwischen ein CrowdSec-Plugin fĂźr Traefik gibt, allerdings mĂśchte ich alle MĂśglichkeiten von CrowdSec in meinen Umgebungen voll ausschĂśpfen.
Wichtiger Hinweis:
ALLE Befehle werden als root-User ausgefĂźhrt!


Hallo,
irgendwie ist bei mir der Wurm drin. Es hat alles soweit gut funktioniert. Nach einem Server Neustart komme ich allerdings nicht mehr auf meine Website. Es kommt immer der Fehler “404 page not found”
Mein Dyndns Account ipv4 zeigt auf die Fritzbox, danach wird an den Server weitergeleitet.
Ipv6 lasse ich nur den Präfix an den Dyndns-Account routen und der Suffix bleibt fest. Den Suffix habe ich vom Server genommen. ALso Dyndns-ipv6 zeigt direkt auf den Server.
Ich hoffe, das passt so. Falls nicht, lasst es mich bitte wissen.
Ich hab im Moment keinen Plan mehr, wo ich noch schauen soll.
Danke schon mal und mit freundlichen GrĂźĂen,
Stefan
Hallo,
ich habe die anleitung umgesetzt,muĂ aber leider irgendwo noch einen fehler gemacht haben. Der aufruf des websites fĂźhrt zu folgender fehlermeldung:
Es scheint, als ob kein certifikat vorhanden ist. Kann jemand helfen?
Danke!
Hallo,
ich habe das Problem, dass alle internen Anfragen an die Fritzbox-Website gehen.
Ich mĂśchte natĂźrlich auch von intern z.B. nextcloud.xxx.de erreichen.
Geht das Ăźerhaupt?
Vielen Dank schon mal,
Stefan
Hallo Zusammen,
der Traefik Stack läuft und stellt dienste aus anderen Docker-Containern bereit.
Ich benĂśtige nun eine Weiterleitung auf einen anderen Server auĂerhalb vom Dockercontainer.
KĂśnnt Ihr mir mitteilen welche Konfigurationen ich anpassen muss, habt ihr ein Beispiel in euerer Umgebung die mit der Anleitung hier zusammenpassen.
Herzlichen Dank, Heiko
Hat schon jemand versucht diese Anleitung auf Docker Swarm um zubauen ?
klappt diese Anleitung auch noch auf Debian13?
Ich fĂźhre alles nach Anleitung durch, jedoch kann ich nicht auf Traefik zugreifen.
Die von mir gewählte Domain in der .env – traefik.domain.de ist nicht erreichbar
GroĂartige Anleitung, danke dir vielmals!
Docker 29 habe ich als Anlass genommen, endlich von v2 auf v3 zu wechseln. Mit Traefik v3.6.1 ging dann auch alles wieder.
Dank der Ăźbersichtlichen, gut geschriebenen Anleitung, konnte ganz entspannt umziehen.
Ein einziger, klitzekleiner Verbesserungsvorschlag: In Abschnitt 7.3.4 wird
angegeben. Gerne im Kapitel 9 oder 10 noch unterbringen, dass das angepasst wird, dann vergisst das auch niemand. đ
Ich habe die neue Traefik Version 3.6.1 auf allen meinen Servern eingespielt. Bei einem einzigen habe ich das Problem das der Socket Proxy nicht hochfährt. Medlung: “dependency failed to start: container socket-proxy is unhealthy”. Kann mir jemand sagen welche abhängigkeiten beim Socket Proxy bestehen, das dieser Healthy ist?
Hallo,
Falls jemand unter dem selben Problem leidet.
Docker 29 funktioniert mit der aktuellen Traefik Version (in meinem Fall 3.6.) nicht da die Docker API 1.44 nicht unterstĂźtzt wird die zwingend von Docker 29 benĂśtigt wird.
Es gibt auch schon ein Issue
LĂśsung ist hier dafĂźr das man derweil sobald ein Update von Traefik kommt auf der version 28 bleibt per versionlock bei DNF z.b
Hallo in die Runde đ
Die Anleitung hat super funktioniert – ich habe traefik mit einer netcup-Domain ans laufen bekommen. Auch das Einbinden von Portainer hat funktioniert.
Traefik läuft bei mir auf einem Proxmox-Server in einem Debin 12 LXC mit Docker-Installation. Auf dem Server läuft noch ein weiterer LXC fßr meine pihole-Instanz.
Ich wĂźrde gerne pihole ebenfalls Ăźber traefik erreichbar machen, um die SSL-Fehler im HomeLab loszuwerden. Dazu habe ich in dem Ordner dynamic_conf eine pihole.yml mit folgendem Inhalt angelegt:
http:
routers:
router-pihole:
rule: “Host(
pihole.meinedomain.de)”service: pihole
tls:
certResolver: letsencrypt
services:
pihole:
loadBalancer:
servers:
– url: http://<localIP>:80
MeineDomain und <localIP> entsprechen selbstverständlich meinen Namen/Adressen.
Leider erhalte ich mit der Konfiguration nur den Fehler 404 Ăźber das traefik-Dashboard. KĂśnnte es sein, dass die Syntax falsch ist? Falsche Zeichen?
Was habe ich falsch gemacht? Wie verweise ich richtig auf Dienste, die auf einem anderen Host laufen? Ich freue mich sehr, wenn mir einer von euch helfen kĂśnnte!
EDIT: Habs selbst hinbekommen – der Entrypoint darf nicht drin stehen und ich hatte einen Syntaxfehler. Ich habe jetzt zwar noch immer den Dienst nicht erreichbar, scheint aber ein SSL-Fehler zu sein
Ich bin das jetzt 3x durchgegangen und habe 3x einen Server installiert aber am Ende ist CrowdSec immer unhealty und startet immer wieder neu.
Zunächst ein groĂes DankeschĂśn an Christian fĂźr goNeuland.de und an psycho0verload fĂźr die groĂartige und funktionierende Anleitung. Das war lange geplant bei mir und jetzt endlich verstanden und umgesetzt.
Ein Hinweis zu 11.1 TLS anstatt HTTP:
Hätte ich gerne gemacht. Ich verwende aber Buypass statt Let’s Encrypt (#european-alternatives). Diese bieten (zur Zeit) nur httpChallenge Ăźber acme.
Das herauszufinden hat mich ein bisschen Zeit gekostet, da es sich mir aus den Fehlermeldungen in der traefik.log nicht direkt erschlossen hat.
Wer ebenfalls Buypass nutzt/nutzen mĂśchte sollte folgende Ănderungen in der Konfiguration vornehmen:
Unter /etc/traefik habe ich die beiden Zertifikatsdateien tls_letsencrypt.json und acme_letsencrypt.json gelĂśscht und durch eine acme_buypass.json ersetzt.
In der data/traefik/traefik.yml ist nur noch ein Resolver nĂśtig. Ich habe ihn schlicht ‘buypass’ genannt:
Wichtig ist hier das geänderte Storage und der eingefßgte caServer von Buypass.
In der compose/traefik.yml ist ebenfalls der neue Resolver zu ändern, sowie die Volumes fßr httpChallenge anzupassen und fßr tlsChallenge auszukommentieren (oder zu lÜschen):
... traefik.http.routers.traefik-dashboard.tls.certresolver: buypass ... - ${ABSOLUTE_PATH}/data/traefik/certs/acme_buypass.json:/etc/traefik/acme_buypass.json # - ${ABSOLUTE_PATH}/data/traefik/certs/tls_letsencrypt.json:/etc/traefik/tls_letsencrypt.json ...Damit hat dann bei mir die Zertifizierung Ăźber Buypass funktioniert.
Ich lasse, wie oben beschrieben, Ăźber
Crowdsec alle 3 Tage neu starten. Im Anschluss erhalte ich folgenden Hinweis:
Was hat das zu bedeuten und korrigiere ich das?
Wäre es mÜglich mit dieser Anleitung auch Quick/http3 zu unterstßtzen was muss dafßr alles angepasst werden?
Das aktuelle System läuft bei mir gar nicht. Es kommt immer die Meldung :
ERROR: In file ‘./docker-compose.yml’, services ‘include’ must be a mapping not an array.
ďťż
Hallo,
grundsätzlich läuft das System bei mir auch. Heute musste ich allerdings Traefik intern in einer “.local” Domain aufsetzen. ACME ist natĂźrlich dann ohne Funktion, da es keine valide TLD ist. Gibts da eine MĂśglichkeit, dass trotzdem gangbar zu bekommen?
Traefik läuft bei mir mit der aktuellsten Version 3.4.1 ohne Probleme bisher. Hat jemand bereits auch aktualisiert von euch?
Ich bekomme seit ein paar Tagen die Meldung, dass Crowdsec nicht aktuell ist: âA new CrowdSec release is available (v1.6.9). Your version is ‘v1.6.8’. Please update it to use new parsers/scenarios/collections.â Zum updaten sollte doch, wie beschrieben, ein Neustart des Containers ausreichen? Funktioniert hat es bei mir allerdings nicht. Oder sind die Images einfach nur noch nicht auf dem aktuellen Stand?
Falls jemand Probleme nach einem Update hat und z.B. folgende Fehlermeldungen findet:
Ich habe Kapitel 10.3 wiederholt. Danach bekam ich folgende Fehler:
Das konnte ich beheben indem ich den API-Key “FIREWALL” gelĂśscht habe und den dann manuell eingetragen habe:
Der Key “XXXXXXX” ist der neue Key der im Schritt 10.3.3 erzeugt wurde.
lg,
Max
Ich wßrde gerne den Zugriff aus bestimmten Ländern blockieren, bzw. nur aus bestimmten Ländern erlauben. Wie mache ich das am geschicktesten? Wäre fßr einen Tipp sehr dankbar.
Hallo Zusammen.
Auch ich bin begeistert von dieser Anleitung und dem Aufwand, den sich @psycho0verload hier gemacht hat.
Um die Serverprovisionierung zu automatisieren (basierend auf einem “frischen” Debian 11/12 VPS) habe ich ein Ansible-Projekt geschrieben.
Auf eure Resonanz hierzu wĂźrde ich mich freuen:
https://github.com/oberator/ansible_goneuland_traefik_v3
Hi zusammen,
ich habe das Problem, dass ich nach dieser Anleitung alles gemacht habe funktioniert soweit auch alles.
Leider habe ich das Problem wenn ich mit meinem Handy mobil unterwegs bin ich mit der Nextcloud App nicht auf die Daten kommen.
Wenn ich aber mit dem selben Handy Ăźber den Browser gehe funktioniert es.
Wenn ich mich mit dem Handy in einem Wlan (nicht dagheim) befinde in dem es nur eine IPV4 gibt geht wieder beides.
Irgendwie habe ich die Vermutung, dass es an IPV6 liegt aber warum dann nur die App?
Ich mĂśchte den Zugriff auf bestimmte Container ausschliessich aus dem LAN (192.168.1.0/24) erlauben hierbei jedoch nicht auf die SSL VerschlĂźsselung verzichten.
So wie ich das verstanden habe muss man hierfĂźr die Regel des Routers bei dem der Host festgelegt wird um ClientIP erweitern.
Der entspr. Bereich in der docker-compose.yaml sieht bei mir dann folgendermassen aus
labels:
– “traefik.enable=true”
– “traefik.http.routers.spoolman.entrypoints=websecure”
– “traefik.http.routers.spoolman.rule=Host(
spoolman.mydomain.de) && ClientIP(192.168.1.0/24)”– “traefik.http.routers.spoolman.middlewares=default@file”
– “traefik.http.routers.spoolman.tls=true”
– “traefik.http.routers.spoolman.service=spoolman”
– “traefik.http.services.spoolman.loadbalancer.server.port=8000”
– “traefik.docker.network=proxy”
Leider bekomme ich aber egal, ob aus dem LAN oder Internet immer eine 404 Meldung.
Ich habe es jetzt, aus Mangel an TestmĂśglichkeiten, nicht mit einer reinen Traefik Umgebung getestet. MĂśglicherweise spielt hier CrowdSec noch mit rein, ich habe es aber nicht geschafft auch noch das 172.0.0.0/8er Netz frei zu geben.
Ohne den ClientIP Block läuft natßrlich alles ohne Probleme, aber eben auch mit Zugriff aus dem Internet. BasicAuth ist auch keine Option, da andere Dienste auf die Seite zugreiffen kÜnnen mßssen und die kÜnnen mit BasicAuth nicht umgehen.
Irgendwelche Ideen?
Hallo,
erstmal vielen Dank fĂźr die tolle Anleitung! Funktioniert wirklich hervorragend. đ
Einen Hinweis hab ich noch fĂźr Nextcloud-Nutzer. Beim Upload von groĂen Dateien schlägt bei mir nach dem Update auf Traefik3 dieser nach 60s fehl. Das liegt daran dass im Traefik der transport.respondingTimeouts.readTimeout Default-Wert von 0s auf 60s verändert wurde. Siehe https://doc.traefik.io/traefik/v2.0/routing/entrypoints/#respondingtimeouts vs https://doc.traefik.io/traefik/routing/entrypoints/#respondingtimeouts)
Ich hab diesen bei mir erstmal in der data/traefik/traefik.yml unter entryPoints – websecure auf 3601s, also gut ein Stunde angepasst, die eigentlich reichen sollte um den Default 100MB Chunk in die Nextcloud hochzuladen. Habs aber noch nicht endgĂźltig getestet, im Zweifel setzt man den Wert halt wieder auf das alte Default von 0s.
Meine data/traefik/dynamic_conf/nextcloud.yml sieht im Moment wie folgt aus. Eventuell kann man den respondingTimeout auch hier speziell nur fĂźr Nextcloud einbauen, hab ich aber bisher nicht weiter geschaut:
Viele GrĂźĂe othiman
Kleiner Hinweis zu 7.2 compose-Dateien: Bei der crowdsec.yml soll vermutlich statt SERVICES_TRAEFIK_NETWORKS_SOCKET_PROXY_IPV4 => SERVICES_CROWDSEC_NETWORKS_SOCKET_PROXY_IPV4 stehen. Kann zu einem Fehler fĂźhren, wenn man nicht mit mehreren .env Dateien arbeitet, da die gleiche Variable derzeit bei traefik.yml definiert ist und auf eine andere IP zeigen soll.
Bei mir gab es einige Probleme bei ipv6: Der Pi (Debian Bookworm) startete den Docker.Service nicht mehr. Folgende Konfiguration funktioniert bei mir:
{ "default-address-pools": [ { "base": "192.168.12.0/16", "size": 24 } ], "log-driver": "json-file", "log-opts": { "max-size": "29m", "max-file": "10" } }Hat schon jemand versucht unter traefik V3 (installiert gemäà der Anleitung hier) einen onlyoffice/documentserver zu installieren und mit Nextcloud zu verbinden? Bei meinem Versuch läuft der Onlyoffice Server und die Verbindung mit Nextcloud scheint zu klappen, aber bei der Erstellung eines neuen Dokuments oder dem Bearbeiten eines bestehenden Dokuments mit Nextcloud lehnt der Onlyoffice Server die Verbindung ab.
Hat jemand eine Idee?
Moin!
Ich habe gerade gesehen, dass bei meiner Installation das Zertifikat abgelaufen ist – hätte das nicht automatisch erneuert werden sollen?
Hi,
kann ich den ganzen Stack einfach so Updaten, ohne das alles im arsch ist ? đ
Ich habe die komplette Anleitung gelesen und denke auch, dass ich einiges verstanden habe, aber wenn ich dann bei 8.1.
docker compose up -d mache startet der docker-socket-proxy nicht.
Wo finde ich die logs was da schief läuft? Ich bin nicht der groĂe docker Held đ
Funktioniert die neue Anleitung auch mit Wildcard-Zertifikaten, wie es bei der alten Anleitung war?
Meine Services sind aktuell alle so aufgebaut und bekommen ein gĂźltiges Zertifikat:
app1.local.meinedomain.com
app2.local.meinedomain.com
etc.
certificatesResolvers:
cloudflare:
acme:
email: “x@y.com”
storage: “acme.json”
dnsChallenge:
provider: cloudflare
resolvers:
– “1.1.1.1:53”
– “1.0.0.1:53”
Rßhrt der Hinweis zu Debian 12 nicht einfach nur daher, dass es keine Log-Dateien im herkÜmmlichen Sinne mehr gibt, sondern nur nach Journald-Einträge, die man ßber journalctl abrufen kann? Wäre es da nicht viel sinnvoller, diese moderneren Varianten zu verwenden anstatt alte ZÜpfe nachträglich wieder anzubringen?
Es gibt ja bei CrowdSec auch MĂśglichkeiten dafĂźr, z. B. hier: https://docs.crowdsec.net/docs/data_sources/journald/
Leider kenne ich mich mit dieser Thematik nicht aus. Das ist mir als erstes in den Sinn gekommen, als ich den Hinweis gelesen habe. Falls ich vĂśllig daneben liegen sollte, bitte ich das zu entschuldigen.
Wenn sich jemand damit auskennen sollte, wĂźrde ich mich gerne Ăźber Aufklärung freuen ďťżđďťż
zur Anleitung auf Seite 8 / Git-Repository
—————————————————–
Nach meinem Verständnis wird in folgender Datei der HOST nicht gesetzt:
/compose/traefik.yml
Ich vermute, dass hier ‘traefik.yourdomain.com’ noch fĂźr den eigenen Host umgestellt (d.h. entsprechend ersetzt) werden muss.
Ansonsten funktioniert die Installation damit prima.
Danke dafĂźr!!!
Ich habe Theather mit dem crowdsec container. Ich bin auf meinem Server gebannt und wenn ich mich entbannen mĂśchte, bekomme ich folgende Meldung:
level=error msg=”error while performing request: dial tcp 0.0.0.0:8080: connect: connection refused; 4 retries left”
level=info msg=”retrying in 18 seconds (attempt 2 of 5)”
In den logs finde ich dann folgendes:
Local agent already registered
Check if lapi needs to register an additional agent
/etc/crowdsec was found in a volume
Running hub update
level=warning msg=”Unable to retrieve latest crowdsec version: unable to send request to https://version.crowdsec.net/latest: Get \”https://version.crowdsec.net/latest\”: dial tcp: lookup version.crowdsec.net on 127.0.0.11:53: server misbehaving, using hub branch ‘master'”
level=warning msg=”Failed to check last modified: failed to make HEAD request for https://cdn-hub.crowdsec.net/crowdsecurity/master/.index.json?with_content=true: Head \”https://cdn-hub.crowdsec.net/crowdsecurity/master/.index.json?with_content=true\”: dial tcp: lookup cdn-hub.crowdsec.net on 127.0.0.11:53: server misbehaving” url=”https://cdn-hub.crowdsec.net/crowdsecurity/master/.index.json?with_content=true”
Downloading /etc/crowdsec/hub/.index.json
Error: failed to update hub: failed http request for https://cdn-hub.crowdsec.net/crowdsecurity/master/.index.json?with_content=true: Get “https://cdn-hub.crowdsec.net/crowdsecurity/master/.index.json?with_content=true”: dial tcp: lookup cdn-hub.crowdsec.net on 127.0.0.11:53: server misbehaving
/var/lib/crowdsec/data was found in a volume
Running hub upgrade
level=warning msg=”Unable to retrieve latest crowdsec version: unable to send request to https://version.crowdsec.net/latest: Get \”https://version.crowdsec.net/latest\”: dial tcp: lookup version.crowdsec.net on 127.0.0.11:53: server misbehaving, using hub branch ‘master'”
downloading https://hub-data.crowdsec.net/mmdb_update/GeoLite2-City.mmdb
level=warning msg=”Failed to check last modified: failed to make HEAD request for https://hub-data.crowdsec.net/mmdb_update/GeoLite2-City.mmdb: Head \”https://hub-data.crowdsec.net/mmdb_update/GeoLite2-City.mmdb\”: dial tcp: lookup hub-data.crowdsec.net on 127.0.0.11:53: server misbehaving” url=”https://hub-data.crowdsec.net/mmdb_update/GeoLite2-City.mmdb”
Error: while downloading data for /etc/crowdsec/parsers/s02-enrich/geoip-enrich.yaml: while getting data: failed http request for https://hub-data.crowdsec.net/mmdb_update/GeoLite2-City.mmdb: Get “https://hub-data.crowdsec.net/mmdb_update/GeoLite2-City.mmdb”: dial tcp: lookup hub-data.crowdsec.net on 127.0.0.11:53: server misbehaving
Running: cscli parsers install “crowdsecurity/docker-logs”
Nothing to do.
level=warning msg=”Unable to retrieve latest crowdsec version: unable to send request to https://version.crowdsec.net/latest: Get \”https://version.crowdsec.net/latest\”: dial tcp: lookup version.crowdsec.net on 127.0.0.11:53: server misbehaving, using hub branch ‘master'”
Jemand ein Tipp wie ich das lĂśsen kann?
Vielen Dank fĂźr die groĂartige Anleitung,
psycho0verload! đ
Eine kleine Anmerkung: Das obige Setup fĂźhrt zu folgendem Fehler:
{"level":"error","entryPointName":"websecure","routerName":"traefik-dashboad@docker","error":"middleware \"traefik-bouncer@file\" does not exist","time":"2025-03-21T22:07:51+01:00"}Hintergund ist ein kleiner Tippfehler in der /data/traefik/dynamic_conf/http.middlewares.traefik-bouncer.yml:
FĂźgt man hier statt forwardauth = forwardAuth ein, funktioniert es. đ
Hallo,
ich habe folgende Fehlermeldung nach Aufruf von:
systemctl status crowdsec-firewall-bouncer
Process: 1911999 ExecStartPre=/usr/bin/crowdsec-firewall-bouncer -c /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml -t (code=exited, status=1/FAILURE)
Ein restart wird auch mit einer Fehlermedlung quittiert.
Hat jemand eine Idee. Vielen Dank. GruĂ Andreas
Der hier benutzte fbonalair/traefik-crowdsec-bouncer wird seit 3 Jahren nicht mehr geupdated und fĂźhrt bei mir zu 403 forbidden Problemen in einem Subprojekt.
Eine aktuell gepflegte Alternative wäre maxlerebourg/crowdsec-bouncer-traefik-plugin.
Ein Update wäre cool! ďťżđďťż
Hi,
danke fĂźr die super Anleitung und das tolle Skipt.
ich habe jetzt nur das Problem, dass ich meinen homeassisten Server Ăźber das Handy extern nicht mehr erreiche.
Nextclout welches als Docker läuft aber schon. Daher gehe ich irgendwie davon aus, dass es an der Weiterleitung an eine IP im zusammenhang von IPv4 und IPv6 zu tun haben kÜnnte.
Denn wenn ich wieder auĂerhalb in einem fremden Wlan mit IPv4 bin komme ich wieder auf den HA Server drauf.
Ich habe in der http.middlewares.default.yml
folgendes eingetragen:
routers:
homeassistent:
entryPoints:
– websecure
rule: “Host(
ha.test.de)”service: “homeassistent”
middlewares:
– default@file
– traefik-bouncer
tls:
certresolver: http_resolver
services:
homeassistent:
loadBalancer:
servers:
– url: “http://192.168.178.79:8123”
passHostHeader: true
damit hatte es unter Traefik 2 super funktioniert und hatte keine Probleme.
Was mache ich flasch?
GruĂ
Ich habe festgestellt, dass man bei den Traefik-Labels inzwischen auf fĂźnf Labels reduzieren kann.
traefik.docker.network: proxy: Das Netzwerk wird in der statischen Configproviders.docker.networkschon definiert und ist hier redundant. https://doc.traefik.io/traefik/providers/docker/#networktraefik.http.routers.wordpress.middlewares: default@file: Die Middleware wird auch schon in der statischen Config definiert inentryPoints.websecure.http.middlewares.traefik.http.routers.wordpress.service: wordpress: Ein Service wird automatisch erstellt oder automatisch assigned, wenn die Konfiguration durch Labels geschieht. https://doc.traefik.io/traefik/routing/providers/docker/#service-definitiontraefik.http.routers.wordpress.tls: true: Wenn ein TLS-Konfigurationslabel angegeben ist, also dencertresolver, dann wird TLS implizit auftruegesetzt. https://doc.traefik.io/traefik/routing/routers/#generalDamit bleiben am Ende die Labels fĂźrenable,entrypoint,rule,certresolverundport.Hallo zusammen,
zunächst einmal vielen Dank – dank dieser Anleitung habe ich den Umstieg auf eine selbstgehostete Nextcloud geschafft.
Allerdings habe ich ein Problem – nachdem die Installation fast 3 Wochen lang fehlerfrei lief, konnte ich heute nachmittag nicht mehr zugreifen. Wenn ich traefik aufrufe, kommt “forbidden”. Auch bei der Nextcloud.
Ich habe daraufhin Traefik nach der Anleitung nochmal komplett neu installiert, dann konnte ich wieder mit meiner Nexcloud arbeiten – und nach ca. 5 Minuten flog ich raus und es kam wieder “forbidden”.
Ich habe nach dem unten aufgefĂźhrten Post das data/crowdsec/data Verzeichnis gelĂśscht, danach läuft es auch wieder – fĂźr 10 Minuten. Dann tritt das Problem wieder auf.
Bin fĂźr jede Hilfe dankbar.
Dietmar
Hallo Zusammen
Ich habe ein Problem mit der Acquisition Metrics. Ich habe Traefik einmal Punkt fĂźr Punkt nach der Anleitung Installiert und einmal mit dem Shell Scripte auf einem Debian 12 gehostet von Netcup.
Beides Mal steht nach dem Befehl
docker exec crowdsec cscli metrics
nichts von Traefik.log oder access.log unter Acquisition Metrics.
Das komische ist, ich habe das ganze nur ein paar Stunden vorher auf einem Debian 12 Server eines anderen Hoster installiert und dort wurden mehr MenĂź Punkte angezeigt.
Folgendes fehlt bei Netcup
—————————————————————————————————————————-+
| Acquisition Metrics |
+———————————-+————+————–+—————-+————————+——————-+
| Source | Lines read | Lines parsed | Lines unparsed | Lines poured to bucket | Lines whitelisted |
+———————————-+————+————–+—————-+————————+——————-+
| file:/var/log/traefik/access.log | 714 | 714 | – | 1.09k | – |
+———————————-+————+————–+—————-+————————+——————-+
+—————————————————-+
| Local API Alerts |
+——————————————–+——-+
| Reason | Count |
+——————————————–+——-+
| crowdsecurity/http-admin-interface-probing | 2 |
| crowdsecurity/http-probing | 9 |
| crowdsecurity/http-sensitive-files | 13 |
| crowdsecurity/http-wordpress-scan | 1 |
| crowdsecurity/netgear_rce | 1 |
+——————————————–+——-+
+——————————————————————————————-+
| Bouncer Metrics (FIREWALL) since 2025-02-22 20:48:06 +0000 UTC |
+—————————-+——————+——————-+———————–+
| Origin | active_decisions | dropped | processed |
| | IPs | bytes | packets | bytes | packets |
+—————————-+——————+———+———+———–+———–+
| CAPI (community blocklist) | 46.98k | 810.46k | 17.35k | – | – |
| crowdsec (security engine) | 0 | 0 | 0 | – | – |
+—————————-+——————+———+———+———–+———–+
| Total | 46.98k | 810.46k | 17.35k | 1.32G | 442.26k |
Kann mir jemand da einen Tipp geben?
Hallo zusammen,
tja, das war wohl etwas voreilig (siehe hier drunter).
Die Container starten und laufen nun alle, doch mehrere Dinge liegen im Argen, weshalb ich sowohl beim Zugriff auf die Traefik-Management-Seite, als auch beim Zugriff auf meinen Immich-Dienst ausschlieĂlich ein ‘Forbidden’ bekommen.
Identifizierte Problemstellen:
Das Zertifikat fĂźr meinen Dienst hat Traefik gezogen, doch – wie beschrieben: Ich bekomme ausschlieĂlich ein ‘Forbidden’ in der linken, oberen Ecke, und dasselbe bekomme ich auch schon ohne den Dienst fĂźr die Traefik-Management-Seite (also keine HTTP-Authentifizierung).
Kann mir jemand weiterhelfen?
Viele GrĂźĂe
Matthias
ps Ach ja: In der docker-compose von Traefik habe ich “3.1” durch “3.3” ersetzt.
Hallo zusammen,
zunächst vielen Dank an psycho0verload fĂźr die fantastische Anleitung!ďťżđďťż
Nach bestem Wissen und Gewissen bin ich sie durch und habe auch ein paar Kleinigkeiten aus den Kommentaren ergänzt bzw. korrigiert.
Doch bei mir will der Traefik-Container nicht starten bzw. bleibt im ‘restarting’.
Meine Frage: Wie kann ich herausfinden, woran das liegt? /var/log/traefik bleibt leer.ďťżđďťż
Wer hat mir einen Tipp? Wo und wie kann ich schauen, was da los ist?
Viele GrĂźĂe aus Stuttgart
Matthias
Hallo
psycho0verload in der Versionierung 02.02.2025 schreibst du u.a. “Traefik-Version auf 3.3 angepasst” Ich sehe allerdings noch 3.1 im compose file, hast du dich da vertippt? Hast du die 3.3 getestet? Danke Gruss Marco
In meinem Setup habe ich einige Ănderungen vorgenommen, die es einerseits fĂźr mich noch weiter vereinfachen und andererseits meinen persĂśnlichen Vorstellungen und meinen anderen Projekten besser passen, was rein Geschmacksache ist.
Die Zeitzone mit der Variable
TZmuss nicht in jeder.env-Subdatei neu definiert werden. Wie man bei derABSOLUTE_PATH-Variable sieht, ist dies nicht notwendig, sondern reicht einmal zentral. Das Gleiche gilt fĂźrBOUNCER_KEY_TRAEFIK. Die muss in der.env-Datei fĂźr CrowdSec nicht neudefiniert werden.Beim EinfĂźgen von Werten in Dateien wie bei
BOUNCER_KEY_TRAEFIKin â7.3.6. API Key fĂźr den CrowdSec Bouncer fĂźr Traefik generierenâ bevorzuge ichsed-Editor stattechomit Umleitung. Es vermeidet Duplikate in der Datei und vermeidet, wenn man dochsudoverwendet, ein “Permission denied”.sed -i -e "/^BOUNCER_KEY_TRAEFIK=/c\BOUNCER_KEY_TRAEFIK=\"$BOUNCER_PASSWORD\"" \
-e "\$aBOUNCER_KEY_TRAEFIK=\"$BOUNCER_PASSWORD\"" \
/opt/containers/traefik-crowdsec-stack/.env
Ich habe auf Debian 12 Probleme mit
PWD-Variable. PWD ist auf dem Host-System vorhanden und in der Bash nutzbar. Jedoch ßbergibt Docker die Variable nicht an den Container weiter und ist damit dort nicht anwendbar. Eine mÜgliche LÜsung ist, den Pfad fest zu codieren. Eine andere LÜsung besteht darin, wieder zu relativen Pfaden zurßckzukehren, wie es bei älteren Anleitungen ßblich war. Beispielhaft antraefik.yml-Compose-Datei:volumes:
- /etc/localtime:/etc/localtime:ro
- ../data/traefik/traefik.yml:/etc/traefik/traefik.yml
- ../data/traefik/.htpasswd:/etc/traefik/.htpasswd
- ../data/traefik/certs/acme_letsencrypt.json:/etc/traefik/acme_letsencrypt.json
- ../data/traefik/certs/tls_letsencrypt.json:/etc/traefik/tls_letsencrypt.json
- ../data/traefik/dynamic_conf:/etc/traefik/dynamic_conf:ro
- /var/log/traefik/:/var/log/traefik/
Bei der oben genannten Variable
BOUNCER_KEY_TRAEFIKund ggf. unten angegebeneSERVICES_TRAEFIK_CERTIFICATESRESOLVERS_EMAILbevorzuge ich diese in der zentralen.env-Datei zu speichern. Da sie neben den anderen Variablen in dieser Datei in den meisten Fällen die einzigen Variablen sind, die fßr jeden Host spezifiziert werden mßssen. Bei derGIN_MODE-Variable kommt es darauf an, ob man beim allerersten Mal diesen Wert aufdebugsetzen will, oder dass man jedes Mal mit diesem Wert starten mÜchte. Auch bevorzuge ich, persÜnlich die.envDateien neben den Compose-Dateien zu legen und sie entsprechend zu benennen, z. B.traefik.env. Natßrlich mßssen dieenv_file-Pfade infolge angepasst werden.Was ich gerne noch anpassen wßrde, aber bisher nicht hinbekommen habe, ist die E-Mail-Adresse ßber die Compose-Datei bereitzustellen. Weder mit Label noch mit Command hat es bisher funktioniert.
services:
traefik:
labels:
traefik.certificatesResolvers.http_resolver.acme.email: ${SERVICES_TRAEFIK_CERTIFICATESRESOLVERS_EMAIL:-user@example.com}
traefik.certificatesResolvers.tls_resolver.acme.email: ${SERVICES_TRAEFIK_CERTIFICATESRESOLVERS_EMAIL:-user@example.com}
# Alternatsyntax
- "traefik.certificatesResolvers.http_resolver.acme.email=${SERVICES_TRAEFIK_CERTIFICATESRESOLVERS_EMAIL:-user@example.com}"
- "traefik.certificatesResolvers.tls_resolver.acme.email=${SERVICES_TRAEFIK_CERTIFICATESRESOLVERS_EMAIL:-user@example.com}"
# oder mit command
command:
- "--certificatesresolvers.http_resolver.acme.email=${SERVICES_TRAEFIK_CERTIFICATESRESOLVERS_EMAIL}"
- "--certificatesresolvers.tls_resolver.acme.email=${SERVICES_TRAEFIK_CERTIFICATESRESOLVERS_EMAIL}"
Danke erstmal fßr die detaillierte Anleitung, alles läuft super bis auf die Erreichbarkeit von home assistant ßber das web.
In der Vergangenheit musste man in HA einen trusted_proxy eintragen und Traefik einen extra Host geben
extra_hosts:
– host.docker.internal:172.17.0.1
oder ähnlich, danmit der Zugriff funktioniert hat, da HA im Host-Modus läuft. Allerdings funktioniert das bei mir nicht mehr. Weder meldet HA einen unbefugten Zugriff, wodurch ich dann die IP wßsste, noch klappen andere Ansätze, wie im Standard Network die Traefik domain raus suchen, da Traefik nur in seinen drei Netzwerken (crowdsec, proxy, socket_proxy) vertreten ist.
Eventuell weiĂ jemand nen guten Ansatz? Danke!
Hey mir ist bei einem Security Test aufgefallen das wir hier noch etwas verbessern sollten um das Sicherheitslevel hoch zu setzten, bei den Headern ist noch einiges zu tun :
Damit gibts ein A+ Rating bei https://securityheaders.com/
/opt/containers/traefik-crowdsec-stack/data/traefik/dynamic_conf/http.middlewares.default.yml
Bei den permissions kĂśnnt ihr anpassen wie ihr es braucht (Je nach App)
Blockiert wird mit =() , zugelassen wird es durch bsp.: permissionsPolicy: “camera=*, microphone=*”
Edit: fĂźr die meisten Anwendungen reicht auch als Standard:
contentSecurityPolicy: “default-src ‘self’; script-src ‘self’ ‘unsafe-inline’ ‘unsafe-eval’; style-src ‘self’ ‘unsafe-inline’; img-src ‘self’ data: blob: https:; font-src ‘self’ data:; connect-src ‘self’ wss: https:; frame-ancestors ‘self’; base-uri ‘self’; form-action ‘self'”
referrerPolicy: “strict-origin-when-cross-origin”
http:
middlewares:
default:
chain:
middlewares:
– default-security-headers
– gzip
default-security-headers:
headers:
browserXssFilter: true
contentTypeNosniff: true
forceSTSHeader: true
frameDeny: true
stsIncludeSubdomains: true
stsPreload: true
stsSeconds: 31536000
customFrameOptionsValue: “SAMEORIGIN”
# Sichere Content Security Policy ohne unsafe-inline/eval
contentSecurityPolicy: “default-src ‘self’; script-src ‘self’ ‘nonce-{RANDOM}’; style-src ‘self’; img-src ‘self’ data: https:; font-src ‘self’; frame-ancestors ‘self’; base-uri ‘self’; form-action ‘self'”
# Referrer Policy
referrerPolicy: “strict-origin-when-cross-origin”
# Permissions Policy
permissionsPolicy: “accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=(), interest-cohort=()”
gzip:
compress: {}
Läuft bei euch eigentlich der Socket Proxy? Bei mir hat er noch nie funktioniert. Ich habe gestern Abend nochmal rum probiert, aber kam nicht weiter. Im Log vom Socket Proxy kommt aktuell alle 10 Sekunden:
Ich werde nicht schlau draus. Habt ihr ne Idee?
AuĂerdem passt die Zeitzone nicht, aber dafĂźr hätte ich ne LĂśsungsidee. FĂźr das andere nicht.
Hat jemand bereits raus gefunden wie man es bewerkstelligen kann das wenn crowdsec eine IP Bannen tut das dort eine Custom Error pages angezeigt wird.
der Bouncer gibt normalerweise ein 403 zurĂźck
Bin bis Schritt 8.1 ohne Fehler gekommen. Wenn ich jedoch auf das Dashboard zugreifen mĂśchte, ist die Seite komplett leer bis auf “Account : w011d26a” das in der mitte steht. Hat Jemand eine Idee dazu? Danke