diff --git a/README.md b/README.md new file mode 100644 index 0000000..7a89d3f --- /dev/null +++ b/README.md @@ -0,0 +1,66 @@ +# Traefik-Stack (pi5-1) + +Compose-Stack fuer den Reverse Proxy und die davor haengende CrowdSec-Abwehr. + +| Service | Image | Aufgabe | +|---|---|---| +| `traefik` | `traefik:v3.7` | Reverse Proxy, TLS-Terminierung, ACME | +| `crowdsec` | `crowdsecurity/crowdsec:v1.7.8` | Erkennung aus Traefik-Access-Log + Synology-Syslog | +| `crowdsec-mikrotik-bouncer` | `ghcr.io/funkolab/cs-mikrotik-bouncer` | spiegelt Decisions als Drop-Regel auf die AX3 (Edge) | + +Zusaetzlich haengt der **Traefik-Bouncer-Plugin** (`crowdsec@file`-Middleware) +direkt im Request-Pfad; die MikroTik-Seite blockt zusaetzlich auf Firewall-Ebene, +also auch VPN und SSH. + +## Zwei Repos + +Die **statische und dynamische Traefik-Konfiguration liegt NICHT hier**, sondern +unter `/srv/TRAEFIK/etc/traefik` (root-owned, in den Container als `/etc/traefik` +gemountet) und wird von einem eigenen Repo versioniert: + +> **[`~/Projects/TraefikConfig`](http://192.168.0.234:8765/lutz/TraefikConfig)** +> – `traefik.yml`, `traefik.d/*`, TLS-Inventar, Sync-/Deploy-Skripte, Disaster Recovery + +Hier im Repo liegt alles, was den *Stack* beschreibt: + +``` +docker-compose.yml Services, Ports, Volumes +crowdsec/acquis.yaml Acquisition: Traefik-Access-Log +crowdsec/acquis-synology.yaml Acquisition: Syslog-Listener (fids/fids2) +crowdsec/parsers/famfihome-synology-connection.yaml lokaler Parser: DSM-7-Anmeldefehler +crowdsec/profiles.yaml eskalierende Ban-Dauer (count+1)*12h, max 168h +crowdsec/famfi-ca-bundle.pem OpenBAO-CA (fuer RouterOS api-ssl) +scripts/sync-synology-certs.sh holt die Synology-LE-Certs nach Traefik +``` + +Alles unter `crowdsec/` wird per Bind-Mount ins Image gelegt, damit es ein +Zuruecksetzen der Named Volumes ueberlebt – die Dateien lagen frueher nur im +`crowdsec-config`-Volume und waren damit nicht gesichert. + +## Bedienung + +```bash +docker compose up -d # Stack starten +docker compose up -d crowdsec # nur CrowdSec neu erzeugen (nach Config-Aenderung) + +docker exec crowdsec cscli metrics show acquisition # kommen Logs an? +docker exec crowdsec cscli decisions list # aktuelle Bans +docker exec crowdsec cscli bouncers list # ziehen die Bouncer? +``` + +Datenquellen pruefen: Traefik schreibt sein Access-Log ins geteilte Volume +`traefik-logs`, CrowdSec liest es read-only. Die Synologies senden per +DSM *Log Center → Log Sending* an `192.168.0.142:5514/udp`. + +## Secrets + +`.mikrotik.env` (RouterOS-Passwort + Bouncer-API-Key) ist git-ignoriert und +root-only. Der LAPI-Key der Traefik-Middleware liegt in +`/srv/TRAEFIK/etc/traefik/traefik.d/crowdsec.yml` und ist ebenfalls bewusst +nicht versioniert – siehe TraefikConfig-README. + +## Verwandt + +- `~/Projects/TraefikConfig` – Traefik-Konfiguration (`/srv`), Restore-Prozedur +- `~/Projects/OpenBAO` – PKI und Credential-Helper +- `~/Projects/ClaudeAdmin` – 4-stuendlicher Healthcheck ueber den Stack