Zum Inhalt springen
Engineering/Notes

Traefik mit Crowdsec als Docker-Reverse-Proxy

Markus Schemp
Markus Schemp
26. Januar 2025 · 3 Min. Lesezeit
DockerInfrastrukturSecurity

Fast alle meine Dienste stelle ich über Docker bereit. Auch dieser Blog läuft über Docker-Container. Das erlaubt mir einerseits eine einfache Verwaltung meiner Dienste – insbesondere was die Bereitstellung und Updates angeht – gleichzeitig aber auch einen Server für mehrere Dienste zu nutzen. Genau für Letzteres nutze ich Traefik als Reverse-Proxy.

Warum ein Reverse-Proxy?

Wenn ich auf einem (physischen oder virtualisierten) Host (Server) mehrere Dienste betreiben möchte, die den gleichen Port nutzen, ist das in der Regel eine Herausforderung. Das ist zum Beispiel dann der Fall, wenn ich mehrere Webseiten oder Web-Dienste auf demselben Host betreiben möchte.

Eine mögliche Lösung für dieses Dilemma ist die Nutzung eines Reverse-Proxy. Dabei wird nach außen (ins Internet) nur der Reverse-Proxy als Dienst bereitgestellt – d. h. in dem Beispiel reagiert nur der Reverse-Proxy auf Anfragen auf dem Port 80 (HTTP) oder 443 (HTTPS). Je nach Anfrage leitet der Reverse-Proxy dann intern an den eigentlichen Dienst weiter. So können auf einem Host oder sogar unter einer Domain problemlos mehrere Dienste erreichbar sein.

Ein weiterer Nutzen ergibt sich dabei dadurch, dass es einfacher wird, zentrale Sicherheitsfunktionen einzubauen – wenn diese in den Reverse-Proxy integriert werden, werden diese faktisch für alle Anwendungen genutzt, die über den Reverse-Proxy bereitgestellt werden.

Und was sind Traefik und Crowdsec?

Es gibt viele Reverse-Proxies, die man einsetzen kann. Ich nutze Traefik als „Cloud Native“ Reverse-Proxy – vor allem wegen der für mich persönlich einfachen Integration in meinen Docker-Stack. Sobald Traefik einmal eingerichtet ist, kann ich sehr einfach neue Docker-Container über Labels mit in den Reverse-Proxy aufnehmen.

Crowdsec wiederum ist eine Community-getriebene Security-Plattform und für mich so etwas wie „das neue Fail2Ban“. Vereinfacht gesagt analysiert Crowdsec in Echtzeit die Logs der konfigurierten Dienste, schätzt jeden Zugriff auf diese Dienste ein und entscheidet dann, ob der Zugriff valide ist oder ob der Zugriff besser an einen sog. Bouncer weitergeleitet und in der Regel geblockt wird. Die Crowdsec Community (und das Unternehmen dahinter) pflegt und erweitert täglich Listen und Entscheidungskriterien, die darauf einzahlen, dass du den Content hier problemlos lesen kannst, während die bösen Jungs hoffentlich ausgesperrt bleiben.

Und wie hast du das jetzt aufgesetzt?

Mein Setup als „meine Arbeit“ zu bezeichnen, wäre hier falsch – es geht ein großer Dank an goneuland.de für die hervorragende Anleitung und die Pflege der dazugehörigen Docker-Compose-Files. Das kann ich aktuell bedingungslos weiterempfehlen: Traefik V3 Installation, Konfiguration und CrowdSec-Security

Markus Schemp
Markus Schemp
Softwareentwickler mit mehr als 15 Jahren Erfahrung in Softwareentwicklung und Engineering und mehr als 10 Jahren technischer Führung. Schwerpunkte: Softwarearchitektur, Modernisierung, DevOps und KI-gestützte Softwareentwicklung.
Profil ansehen
Woran ich sonst arbeiteLeistungen im ÜberblickEngineering Notes entstehen im eigenen Betrieb. Beruflich berate ich Unternehmen, deren Geschäft Software ist oder wird.

Inhalt