- 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>
147 lines
5.2 KiB
Markdown
147 lines
5.2 KiB
Markdown
# 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/24
|
|
- `LAN__NETWORK`: 10.10.0.0/24
|
|
- `WebGateways`: 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:**
|
|
```nginx
|
|
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:
|
|
```nginx
|
|
#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:
|
|
```nginx
|
|
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:**
|
|
```bash
|
|
cd /home/vinosadmin/n8n-reverse-proxy && docker compose restart
|
|
```
|
|
|
|
### Schritt 3: Testen
|
|
|
|
```bash
|
|
# 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) |
|