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.
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}}
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.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.crowdsec.plugin.yml,http.middlewares.default-security-headers.yml,http.middlewares.gzip.yml,http.middlewares.traefik-dashboard-auth.yml,http.routers.traefik-dashboard.yml,tls.yml}}}
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@test-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.yml ├── data │ ├── crowdsec │ │ ├── config │ │ ├── data │ │ └── .env │ ├── socket-proxy │ │ └── .env │ └── traefik │ ├── certs │ │ ├── acme_letsencrypt.json │ │ └── tls_letsencrypt.json │ ├── dynamic_conf │ │ ├── http.middlewares.crowdsec.plugin.yml │ │ ├── http.middlewares.default-security-headers.yml │ │ ├── http.middlewares.default.yml │ │ ├── http.middlewares.gzip.yml │ │ ├── http.middlewares.traefik-dashboard-auth.yml │ │ ├── http.routers.traefik-dashboard.yml │ │ └── tls.yml │ ├── .env │ ├── .htpasswd │ └── traefik.yml ├── docker-compose.yml └── .env 10 directories, 20 files root@test-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.
