
Traefik V3: Installation, Konfiguration und CrowdSec-Security
6. Stack vorbereiten
Zuerst erstellen wir das Hauptverzeichnis traefik-crowdsec-stack unter /opt/containers/ und wechseln in dieses Verzeichnis. Danach erzeugen wir die erforderlichen Unterverzeichnisse und Dateien, um den Stack mit crowdsec, socket-proxy und traefik zu konfigurieren. Schließlich setzen wir die korrekten Berechtigungen für sensible Zertifikatsdateien.
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
6.1. Hauptverzeichnis erstellen und in das Verzeichnis wechseln
Wir beginnen mit der Erstellung des Hauptverzeichnisses und den Unterverzeichnissen für Konfigurations- und Datenhaltung. Diese umfassen Verzeichnisse für crowdsec, socket-proxy, traefik sowie Unterordner für Zertifikate und dynamische Konfigurationsdateien.
mkdir -p /opt/containers/traefik-crowdsec-stack && cd /opt/containers/traefik-crowdsec-stack mkdir -p compose data/{crowdsec/{config,data},socket-proxy,traefik/{certs,dynamic_conf},traefik-crowdsec-bouncer}
6.2. Dateien erstellen und Berechtigungen setzen
Anschließend erstellen wir die benötigten Konfigurations- und Umgebungsdateien sowie Zertifikatsdateien. Speziell für die Zertifikate setzen wir restriktive Zugriffsrechte, um deren Sicherheit zu gewährleisten.
touch .env docker-compose.yml \ compose/{crowdsec.yml,networks.yml,socket-proxy.yml,traefik-crowdsec-bouncer.yml,traefik.yml} \ data/{crowdsec/.env,socket-proxy/.env,traefik/{.env,.htpasswd,traefik.yml,certs/{acme_letsencrypt.json,tls_letsencrypt.json},dynamic_conf/{http.middlewares.default.yml,http.middlewares.traefik-bouncer.yml,http.middlewares.traefik-dashboard-auth.yml,tls.yml}},traefik-crowdsec-bouncer/.env} chmod 600 data/traefik/certs/{acme_letsencrypt.json,tls_letsencrypt.json}
6.3. Überprüfung
Als nächstes möchten wir sicherstellen, dass alles korrekt angelegt wurde. Hierfür verwenden wir den tree
Befehl. Falls das tree
Programm noch nicht installiert ist, können wir es wie folgt installieren:
apt install tree
Jetzt können wir mit dem Befehl tree
uns die erstellte Struktur anzeigen lassen und die Ausgabe vergleichen:
tree -L 4 -a /opt/containers/traefik-crowdsec-stack/
root@arm-01:/opt/containers/traefik-crowdsec-stack# tree -L 4 -a /opt/containers/traefik-crowdsec-stack/ /opt/containers/traefik-crowdsec-stack/ ├── compose │ ├── crowdsec.yml │ ├── networks.yml │ ├── socket-proxy.yml │ ├── traefik-crowdsec-bouncer.yml │ └── traefik.yml ├── data │ ├── crowdsec │ │ ├── config │ │ ├── data │ │ └── .env │ ├── socket-proxy │ │ └── .env │ ├── traefik │ │ ├── certs │ │ │ ├── acme_letsencrypt.json │ │ │ └── tls_letsencrypt.json │ │ ├── dynamic_conf │ │ │ ├── http.middlewares.default.yml │ │ │ ├── http.middlewares.traefik-bouncer.yml │ │ │ ├── http.middlewares.traefik-dashboard-auth.yml │ │ │ └── tls.yml │ │ ├── .env │ │ ├── .htpasswd │ │ └── traefik.yml │ └── traefik-crowdsec-bouncer │ └── .env ├── docker-compose.yml └── .env 11 directories, 19 files root@arm-01:/opt/containers/traefik-crowdsec-stack#
Wenn unsere Ausgabe genau so aussieht, haben wir alles richtig gemacht und wir können weitermachen. Wenn nicht, überprüft bitte die vorherigen Schritte.
No Comment! Be the first one.