
Traefik V3: Installation, Konfiguration und CrowdSec-Security
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:
Table Of Content
- Versionierung
- WICHTIG!
- 0. Testing
- 1. Zielsetzung
- 2. Voraussetzung
- 2.1. Hinweis
- 3. Grundlage: Netzwerke in Docker
- 3.1. Private Adressbereiche in IPv4
- 3.2. Adressbereiche in Docker
- 3.3. Verständnis der Netzwerkproblematik
- 3.4. Lösung
- 4. Netzwerke konfigurieren
- 4.1. Vorbereitung
- 4.2. Docker Konfigurieren anpassen
- 4.3. Ergebnis
- 4.3.1. IPv6-Konfiguration
- 5. Überblick über die Systeme
- 5.1. Traefik
- 5.2. Docker-Socket-Proxy
- 5.3. CrowdSec
- 5.4. CrowdSec Bouncer
- 6. Stack vorbereiten
- 6.1. Hauptverzeichnis erstellen und in das Verzeichnis wechseln
- 6.2. Dateien erstellen und Berechtigungen setzen
- 6.3. Überprüfung
- 7. Stack konfigurieren
- 7.1. docker-compose.yml-Datei
- 7.2. compose-Dateien
- 7.3. DOTENV anpassen
- 7.3.1. Allgemeine .env-Datei
- 7.3.2. .env-Datei für CrowdSec
- 7.3.3. .env-Datei für den Socket-Proxy
- 7.3.4. .env-Datei für den CrowdSec Bouncer für Traefik
- 7.3.5. .env-Datei für Traefik
- 7.3.6. API Key für den CrowdSec Bouncer für Traefik generieren
- 7.4. Traefik konfigurieren
- 7.4.1. Konfiguration der traefik.yml
- 7.4.2. Konfiguration von TLS
- 7.4.3. Konfiguration von http.middlewares.default.yml
- 7.4.4. Konfiguration von http.middlewares.traefik-dashboard-auth.yml
- 7.4.5. Passwort für Traefik-Dashboard festlegen
- 7.4.6. Konfiguration von http.middlewares.traefik-bouncer.yml
- 7.4.7. Integration des Bouncers in traefik.yml
- 7.5. CrowdSec konfigurieren
- 7.5.1. Acquisition anpassen
- 8. Dienst starten
- 8.1. Checkliste
- 9. Traefik-CrowdSec-Stack überprüfung
- 10. Optional
- 10.1. CrowdSec aktuell halten
- 10.2. Traefik-CrowdSec-Stack Update
- 10.3. Erweiterung der Firewall (UFW bzw. IPTables und NFTables) mit CrowdSec
- 10.3.1. Repository für CrowdSec Firewall Bouncer
- 10.3.2. Installation des Firewall Bouncers
- 10.3.3. Access Token generieren
- 10.3.4. Bouncer konfigurieren
- 10.3.5. CrowdSec Firewall Bouncer starten
- 10.3.6. Anzeigen der CrowdSec Bouncer-Liste
- 10.4. Logrotate für Traefik
- 10.5. Mailcow anpassen
- 11. Neuen Container hinzufügen
- 11.1. TLS anstelle von HTTP
- 99. Anleitung in 2 Minuten
- Hinweis zu Kommentaren
- Author: Psycho0verload
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.
No Comment! Be the first one.