- Neuer Abschnitt "Karten erstellen (Aufgaben-Workflow)" mit Workflow A/B - Bekannte Struktur erweitert: Workflows, Columns, Lanes für Board 1 - Pitfalls ergänzt: Arrival Rule, Parent-Link API, linkedCards read-only - Settings und Plans aktualisiert Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
5.2 KiB
Plan: flow.wvits.de intern erreichbar machen
Ziel
flow.wvits.de soll aus ausgewählten internen Netzen voll erreichbar sein (inkl. Formulare, Signup). Externe Zugriffe bleiben auf Webhooks beschränkt.
| Netz | Subnet | Zugriff |
|---|---|---|
| Admin-Netz | 10.10.254.0/24 | Voller Zugriff |
| Bodega Client | 10.20.20.0/24 | Voller Zugriff |
| Admin-VPN | 10.250.0.0/24 | Voller Zugriff |
| WuV VPN | 10.250.1.0/24 | Voller Zugriff |
| gw-web02 | 10.10.81.12 | Voller Zugriff |
| Extern | alles andere | Nur Webhooks |
Verifizierte Diagnose
Problem 1: Firewall gw-nu-dmz02 blockiert
Getestet:
- srv-docker01 (10.10.10.24) → DMZ: durchkommt (EasyRule für diesen einzelnen Host)
- srv-docker02 (10.10.10.81) → DMZ: TIMEOUT (kein Firewall-Eintrag für Subnet)
Aktuelle Firewall-Regeln zu srv-revproxy01 (10.10.81.4):
| Quelle | Alias | Port | Status |
|---|---|---|---|
| 10.10.254.0/24 | NET_NU_ADMIN | SSH, 80, 81, 443, 8443 | ✅ vorhanden |
| 10.250.1.0/24 | WuV_VPN_Client | 443 | ✅ vorhanden |
| 10.250.0.0/24 | WuV_VPN_Admin | 443 | ✅ vorhanden |
| 10.20.20.0/24 | NET_BD_CLIENT | 443 | ✅ vorhanden |
| 10.10.10.24 | (EasyRule) | alle | ✅ nur einzelner Host |
| 10.10.10.0/24 | — | — | Nicht benötigt |
| 10.10.0.0/24 | LAN__NETWORK | — | Nicht benötigt |
| 10.20.0.0/24 | — | — | Nicht benötigt |
Existierende Aliases (relevant):
WebGatewayNets: 10.10.10.0/24, 10.10.12.0/27, 10.10.20.0/24, 10.10.40.0/24, 10.10.254.0/24LAN__NETWORK: 10.10.0.0/24WebGateways: 10.10.81.10, 10.10.81.11, 10.10.81.12
Problem 2: nginx allow/deny blockiert
Getestet:
- srv-docker01 (10.10.10.24) → Webhook-Pfad: funktioniert (n8n antwortet)
- srv-docker01 (10.10.10.24) → Signup-Pfad: 403 Forbidden
- nginx-Log bestätigt:
client: 10.10.10.24, access forbidden by rule
Aktuelle allow/deny im non-webhook Location-Block:
allow 10.10.81.12; # gw-web02
deny all;
# Auskommentiert: 10.10.254.0/24, 10.20.20.0/24, 10.250.1.0/24
Lösung
Schritt 1: Firewall gw-nu-dmz02 — Regeln hinzufügen (User macht das)
Auf pfsense Web-UI von gw-nu-dmz02: Firewall-Regeln auf em1 (LAN) prüfen/ergänzen.
Benötigte Regeln zu srv_revproxy01 (10.10.81.4) Port 443:
| Quelle | Alias vorhanden? | Regel vorhanden? | Aktion |
|---|---|---|---|
| 10.10.254.0/24 | NET_NU_ADMIN ✅ |
✅ HTTPS erlaubt | Keine Änderung |
| 10.20.20.0/24 | NET_BD_CLIENT ✅ |
✅ HTTPS erlaubt | Keine Änderung |
| 10.250.0.0/24 | WuV_VPN_Admin ✅ |
✅ HTTPS erlaubt | Keine Änderung |
| 10.250.1.0/24 | WuV_VPN_Client ✅ |
✅ HTTPS erlaubt | Keine Änderung |
Alle benötigten Netze haben bereits Firewall-Regeln. Keine Firewall-Änderung nötig.
Die EasyRule für 10.10.10.24 (srv-docker01) bleibt bestehen (wird für NPM → DMZ benötigt).
Schritt 2: nginx.conf anpassen
Datei: /home/vinosadmin/n8n-reverse-proxy/nginx.conf auf srv-revproxy01
Zugang: ssh -J sshtest@10.10.254.201 vinosadmin@srv-revproxy01
Änderung im Location-Block location /77ba0b14e9ccd5521a0ec1867332378c/:
Ersetze:
#allow 10.10.254.0/24; # Admin-Netz
#allow 10.20.20.0/24; # Bodega Client Netz
#allow 10.250.1.0/24; # VPN Client Netz
allow 10.10.81.12; # gw-web02
deny all;
Durch:
allow 10.10.254.0/24; # Admin-Netz
allow 10.20.20.0/24; # Bodega Client Netz
allow 10.250.0.0/24; # Admin-VPN
allow 10.250.1.0/24; # WuV VPN Client Netz
allow 10.10.81.12; # gw-web02
deny all;
Nur Bodega-Clients + Admin/VPN. Keine breiten Netz-Freigaben (10.10.0.0/24, 10.20.0.0/24, 10.10.10.0/24).
Container neu starten:
cd /home/vinosadmin/n8n-reverse-proxy && docker compose restart
Schritt 3: Testen
# Von srv-docker02 (10.10.10.81) — derzeit geblockt durch Firewall:
ssh vinosadmin@srv-docker02 "curl -sk --connect-timeout 5 -w 'HTTP %{http_code}\n' \
'https://flow.wvits.de/77ba0b14e9ccd5521a0ec1867332378c/signup'"
# Erwartet: HTTP 200 oder 302 (statt Timeout)
# Von srv-docker01 (10.10.10.24) — derzeit geblockt durch nginx:
ssh vinosadmin@srv-docker01 "curl -sk --connect-timeout 5 -w 'HTTP %{http_code}\n' \
'https://flow.wvits.de/77ba0b14e9ccd5521a0ec1867332378c/signup'"
# Erwartet: HTTP 200 oder 302 (statt 403)
# Webhook weiterhin funktionsfähig:
ssh vinosadmin@srv-docker01 "curl -sk --connect-timeout 5 -w 'HTTP %{http_code}\n' \
'https://flow.wvits.de/77ba0b14e9ccd5521a0ec1867332378c/webhook-test/test'"
# Erwartet: HTTP 404 (n8n: webhook nicht aktiv — ok)
Betroffene Systeme
| System | Zugang | Änderung |
|---|---|---|
| gw-nu-dmz02 | pfsense Web-UI | Keine Änderung nötig (Regeln existieren bereits) |
| srv-revproxy01 | SSH via cli-rwe02 | nginx.conf: allow-Regeln erweitern |
Verifiziert (keine Änderung nötig)
| Prüfpunkt | Status |
|---|---|
| DNS Split (flow.wvits.de → 10.10.81.4) | ✅ funktioniert (srv-docker01, srv-docker02) |
| real_ip Modul (nginx sieht echte Client-IP) | ✅ bestätigt in nginx-Logs |
| Webhook-Pfade (allow all) | ✅ funktioniert von srv-docker01 |
| NPM-Routing zu nginx Container | ✅ funktioniert |
| Route vom Servernetz zur DMZ | ✅ Route existiert (via 10.10.10.1 → 10.10.0.81) |