5. Überblick über die Systeme
Bevor wir in die Konfigurationen eintauchen, ist es wichtig zu verstehen, welche Rolle jedes der eingesetzten Systeme in unserem Stack übernimmt:
5.1. Traefik
Traefik ist ein moderner Reverse-Proxy und Load Balancer, der speziell für dynamische und containerisierte Umgebungen wie Docker entwickelt wurde. In dieser Anleitung setzen wir Traefik als Reverse-Proxy ein, um den HTTP-Traffic zwischen Clients und Anwendungen zu steuern und Anfragen basierend auf Domains weiterzuleiten.
Zusätzlich zu seiner Rolle als Reverse-Proxy bietet Traefik jedoch noch weitere leistungsstarke Funktionen:
- Netzwerk-Routing: Traefik kann auf Basis von Regeln (wie z.B. Headern oder Pfaden) Netzwerk-Routen zu den entsprechenden Diensten dynamisch konfigurieren.
- Automatische SSL-Zertifikate: Durch die Integration von Let’s Encrypt können SSL-Zertifikate automatisch verwaltet und erneuert werden.
- Lastverteilung: Traefik bietet Load Balancing zwischen mehreren Instanzen eines Services und sorgt so für eine optimierte Verteilung der Anfragen.
- Monitoring und Metriken: Traefik lässt sich leicht in Monitoring-Systeme wie Prometheus integrieren, um die Performance der Services zu überwachen.
Durch diese Funktionen ermöglicht Traefik die einfache Verwaltung von Netzwerk-Traffic in verteilten Anwendungen und erhöht gleichzeitig die Sicherheit und Verfügbarkeit der bereitgestellten Services.
5.2. Docker-Socket-Proxy
Der Docker-Socket-Proxy agiert als Schutz für den Docker-Socket. Ohne diesen Schutz könnte der Docker-Socket direkt von anderen Anwendungen genutzt werden, was ein Sicherheitsrisiko darstellt (siehe Docker-Dokumentation). Der Proxy sorgt dafür, dass nur ausgewählter und kontrollierter Zugriff auf Docker-APIs möglich ist, um die Angriffsfläche zu minimieren.
5.3. CrowdSec
CrowdSec ist ein Tool zur Erkennung und Reaktion auf Bedrohungen. Es analysiert das Verhalten von Besuchern und erkennt verdächtige Aktivitäten wie Brute-Force-Angriffe oder Port-Scans. CrowdSec überwacht IP-Adressen und entscheidet darüber, welche als bösartig gelten und blockiert werden sollten – ähnlich einer judikativen Instanz, die über Schuld oder Unschuld entscheidet.
5.4. CrowdSec Bouncer
CrowdSec Bouncer sind Module, die auf erkannte Bedrohungen reagieren, indem sie potenziell gefährliche IP-Adressen blockieren. Sie fungieren wie eine exekutive Instanz, die Maßnahmen ergreift, um den Zugriff auf Dienste zu verhindern. Es gibt verschiedene Bouncer, die für unterschiedliche Umgebungen entwickelt wurden, wie z.B.:
- crowdsec-firewall-bouncer: Für die Blockierung auf der Firewall-Ebene.
- traefik-crowdsec-bouncer: Für die direkte Integration mit Traefik.
Hallo nochmal,
nehmt mir auch folgende Frage nicht übel, ich lerne mich noch in das ganze Thema ein. Kann ich eigentlich auch eine Traefik-Instanz für mehrere Webserver nutzen, oder muss ich auf jedem Server eine eigene Instanz aufsetzen?
Danke und viele Grüße
Moin,
mal eine Frage zu Crowdsec in diesem Stack. Im Moment trudeln bei mir ständig Nachrichten ein, das jemand aus dem bösen Internet meinen mailcow Server inspiziert. Das ist ja nichts ungewöhnliches. Dafür gibt es ja den den Crowdsec. mittels
werden die bösen IPs auch angezeigt, jedoch bekomme ich zur Zeit gerade wirklich viele Wiederholungstäter mit der gleichen IP (klar, die werden wahrscheinlich verschleiert) jetzt wollte ich mittels iptables -L -v -n mal nachsehen, ob die auch wirklich auf dem System gesperrt sind. Leider zeigt mir diese keinen einzige von den gesperrten IP im System an? Es werden mir nur die manuell gesperrten IP in der mailcow Konfiguration angezeigt (Chain MAILCOW). Wie kann ich nun feststellen ob das System richtig arbeiten und meine Installation wirklich durch Crowdsec geschützt ist?
docker logs socket-proxy:
::1 – – [16/Oct/2024:04:05:39 +0000] “GET / HTTP/1.1” 403 146 “-” “curl/8.10.1”
Wenn ich mich nicht täusche resultiert diese Meldung aus dem Healthcheck des Containers, der speziell dafür konfiguriert ist, eine HTTP 403-Antwort zu erhalten, oder?
Vielen Dank psycho0verload für die geile Anleitung 😀 Du hast dich echt nochmals selbst übertroffen 😃
Erhalte in ‘Portainer Business Edition 2.21.3’ folgende Fehelermeldung:
Guten Morgen,
entschuldigt bitte die doofe Frage, aber ich komme einfach nicht weiter. Ich bekomme mit der neuen Anleitung weder Traefik noch Mailcow zum Laufen. Muss ich die IPV6 an meinen Server anpassen, oder kann ich diese so wie in der Anleitung übernehmen?
psycho0verload
Mein Feedback.
Bin heute umgestiegen. Backup alter Server. Neuinstallation Ubuntu 24.X.
Nach Anleitung vorgegangen. Anschl. Mailcow neu installiert und restore der Daten.
Danach aus dem Borgbackup alle Container wieder hergestellt.
System läuft nun einwandfrei. Mir fiel nur die hohe Anzahl der Bans auf.
39 aktive Bans hatte ich noch nie. 🙂 Port 22 war aber auch lange offen 🙂
Vielen Dank für die gute Anleitung.
steje
Die Entscheidung, welche Domain du verwendest, liegt ganz bei dir und deinem individuellen Setup. Ob du dich für eine Second-Level-Domain oder eine Third-Level-Domain entscheidest, bleibt dabei dir überlassen. 😊
Lass uns gerne im Mailcow-Beitrag genauer anschauen, wo das Problem liegt bzw. an welcher Stelle das Zertifikat fehlt. Das gehört primär nicht zu diesem Thema hier.
Vielen Dank für die Anleitung! Hat seitens der Anleitung problemlos Funktioniert.
Zwei Anmerkungen.
Kapitel 7.5.1 (@all)
Ich hab beim ausführen von “docker compose up crowdsec -d && docker compose down” folgende Fehlermeldung erhalten.
WARN[0000] The “PWD” variable is not set. Defaulting to a blank string.
Danach ist crowdsec nicht gestartet.
Das lag bei mir am Terminal. Eine Möglichkeit das Problem zu umgehen ist den Befehl mit “-E” zu modifizieren.
Neuer Befehl: -E docker compose up crowdsec -d && docker compose down
Zusatz: Ich arbeite mit Sudo, da ich nicht root bin. Weiß nicht inwiefern das damit zusammenhängt.
Kapitel 8.1. ( psycho0verload )
Bei der Referenzierung auf die URL vom Traefik Dashboard bitte den Kaptielschritt referenzieren in dem wir die URL festlegen.
Ich hatte die URL als allgemein URL im Kopf abgespeichert und war kurz verwirrt als wir plötzlich von der spezifischen Traefik Dashbord URL gesprochen haben.
Auch von mir ein ganze großes Dankeschön! Super geschrieben und richtig informativ. Alleine die ersten 5 Seiten enthalten so viele wichtige Informationen, dass es alleine das schon Wert ist zu lesen. Da werde ich mich in nächster Zeit mal dran machen 😀
Super die Anleitung vielen Dank für deine Arbeit. Da ist es wirklich zu überlegen Traefik neu aufzusetzen.
Wow, da hast du wirklich ein gigantisches Meisterwerk erstellt.
Ich überlege, ob ich meine alte Traefik config kille und diese neu aufsetzte oder auf deine Migrationsanleitung warte.
Ein großes Kompliment und Dankeschön für die neue Anleitung. Freue mich auf die Migrationsanleitung, da ich mein System gerne auf den aktuellen Stand bringen möchte. 🙂