GNAI-006: Fritzbox ok; DNS-Korrektur (A-Record beim Domain-DNS-Anbieter, nicht NPM); WAN-IP verifiziert

This commit is contained in:
2026-09-19 15:54:04 +02:00
parent 8a81f92ac1
commit 75a470f74a
2 changed files with 17 additions and 12 deletions
+14 -9
View File
@@ -4,7 +4,7 @@
**Titel:** Homelab / Infrastructure – WireGuard VPN Gateway (LXC) Setup & Access Control
**Version:** 1.2
**Version:** 1.3
**Status:** In Umsetzung (Schritt 1–4 & 7 fertig, Step 5/6/9 offen)
@@ -32,7 +32,7 @@ Dieses Dokument beschreibt die verbindliche Einrichtung, Härtung und Verifikati
| IP-Adresse LXC | `10.0.0.15/24` (Gateway: `10.0.0.1`) |
| VPN Subnetz | `10.8.0.0/24` |
| Listening Port | `51820/UDP` (Portweiterleitung auf Fritzbox 7530 an `10.0.0.15`) |
| DynDNS | `ghostnet.selfhost.eu` → Subdomain `vpn.ghostnet.selfhost.eu` als `WG_HOST` |
| DNS | Subdomain `vpn.ghostnet.selfhost.eu` (A-Record beim Domain-DNS-Anbieter → WAN-IP) als `WG_HOST` |
| Container Engine | Podman 5.4.2, Quadlet (`/etc/containers/systemd/wg-easy.container`) |
| VPN Management | wg-easy (`ghcr.io/wg-easy/wg-easy:latest`), UI auf `http://10.0.0.15:51821` (LAN-only) |
| Firewall | nftables, strikte INPUT policy `drop` |
@@ -182,19 +182,23 @@ WantedBy=multi-user.target
Verifikation: ✅ `podman ps` zeigt `wg-easy` mit host-Netzwerk; `wg0` up mit `10.8.0.1/24`, `ListenPort 51820`; UI `http://10.0.0.15:51821` HTTP 200 (localhost & LAN-IP).
### 5. Perimeter-Portweiterleitung Fritzbox 7530 👤 (User)
### 5. Perimeter-Portweiterleitung Fritzbox 7530 👤 (User) ✅
Portweiterleitung **UDP `51820` → `10.0.0.15`** auf der Fritzbox 7530 einrichten.
Verifikation: `tcpdump -i eth0 udp port 51820` auf dem LXC während Handshake-Versuch aus dem WAN.
**Status: offen**
**Status: ✅ erledigt (2026-09-09, User); End-to-End-Verifikation offen (Step 8/9).**
### 6. DynDNS-Subdomain 👤 (User)
### 6. DNS-Subdomain 👤 (User)
In NPM (10.0.0.10) die Subdomain `vpn.ghostnet.selfhost.eu` anlegen, die auf die WAN-IP zeigt (bzw. bestehendes Ghost-Record-Verfahren verwenden).
**Korrektur 2026-09-09:** Der A-Record gehört **nicht** in den Nginx Proxy Manager (NPM 10.0.0.10 – der verwaltet nur HTTP(S)-Proxy-Hosts, für UDP 51820 nutzlos) und nicht ins selfhost.eu-Web-Portal (Instanzen-Hosting, keine DNS-Zone). Die Zone `ghostnet.selfhost.eu` wird beim **DNS-Anbieter/Registrar der Domain** gepflegt – dort, wo `jellyfin./nextcloud./…` bereits existieren.
**Status: offen**
Eintrag anlegen: `vpn` → Typ **A – IPv4** → Ziel **WAN-IP** (`93.208.161.126` laut `getent` am 2026-09-09). DNS kann keine Ports tragen – der Port steht in der Client-Config (`Endpoint = vpn.ghostnet.selfhost.eu:51820`).
> ⚠️ **WAN-IP-Check offen:** Falls die WAN-IP dynamisch ist (Fritzbox-Übersicht → „statische IP“ prüfen), veraltet der A-Record bei IP-Wechsel → DynDNS nötig. Bestehende Subdomains laufen bereits auf `93.208.161.126`.
**Status: offen (User) – A-Record anlegen + Statisch-Check**
### 7. Peers erzeugen ✅
@@ -253,8 +257,8 @@ Deaktiviere WLAN auf beiden Testgeräten (reiner 4G/5G-Pfad), VPN aktivieren:
| 2 | nftables + ip_forward | ✅ |
| 3 | SSH-Härtung / admin-User | ✅ |
| 4 | wg-easy Quadlet + wg0 | ✅ |
| 5 | Fritzbox Portforward | ⏳ User |
| 6 | NPM-Subdomain `vpn.ghostnet.selfhost.eu` | ⏳ User |
| 5 | Fritzbox Portforward UDP 51820 | ✅ User (2026-09-09; E2E-Check offen) |
| 6 | A-Record `vpn.ghostnet.selfhost.eu` beim Domain-DNS-Anbieter | ⏳ User |
| 7 | Peers Laptop-FullAdmin / Android-LLMAdmin | ✅ |
| 8 | Split-Tunnel-Konfig (`WG_ALLOWED_IPS`) | ✅ (End-to-End-Verifikation ⏳ mit Step 9) |
| 9 | Penetrationstest Mobilfunk | ⏳ |
@@ -270,3 +274,4 @@ Details & Entscheidungen: siehe `GNAI-006-SEC_VPN_Implementation-Log.md`.
| 1.0 | – | Erster Draft |
| 1.1 | 2026-09-09 | Umsetzung dokumentiert: Hostname `wireguard` (nicht `wireguard-gateway`); Testmatrix auf „Ausstehend“ (keine Tests über Mobilfunk gelaufen); `PASSWORD_HASH` = bcrypt (wg-easy/bcryptjs), nicht Argon2; Quadlet mit `EnvironmentFile=`; nftables-Konfig & ip_forward dokumentiert; wg-easy-allowedIPs-Limitation vermerkt; Umsetzungszustand-Tabellen & Implementation-Log ergänzt |
| 1.2 | 2026-09-09 | Split-Tunneling konkretisiert: clientseitige AllowedIPs kommen aus Env-Variable `WG_ALLOWED_IPS` (Default `0.0.0.0/0` = Full-Tunnel!); `WG_ALLOWED_IPS` in `/opt/wg-easy/environment` gesetzt, Container neu gestartet, Env im Container verifiziert; Android-/24-Limitierung dokumentiert (nur `/32`-Einträge); Schritt 8 in „Konfig gesetzt / End-to-End offen“ zerlegt; `WG_PERSISTENT_KEEPALIVE`-Hinweis ergänzt |
| 1.3 | 2026-09-09 | DNS-Korrektur: A-Record gehört beim **Domain-DNS-Anbieter** (nicht NPM/selfhost.eu-Portal – NPM ist nur HTTP-Proxy); Fritzbox-Portforward ✅ erledigt; WAN-IP `93.208.161.126` per `getent` verifiziert; Statisch/DynDNS-Check als offen vermerkt |
+3 -3
View File
@@ -2,7 +2,7 @@
**Bezug:** GNAI-006-SEC_VPN.md
**Session:** 2026-09-09 (Agent-Session, Arbeit per SSH auf LXC 105)
**Letzte Aktualisierung:** 2026-09-09 16:50 – `WG_ALLOWED_IPS`-Befund (Sektion 3.3), Split-Tunnel-Konfig auf LXC gesetzt, O3/O4 aktualisiert
**Letzte Aktualisierung:** 2026-09-09 17:15 – Fritzbox-Portforward ✅; DNS-Korrektur (A-Record beim Domain-DNS-Anbieter, nicht NPM); WAN-IP `93.208.161.126` verifiziert; O1/O2 aktualisiert
**Zweck:** Nachvollziehbare Dokumentation der Umsetzungsschritte, Abweichungen vom Draft, technischen Befunde und Fehlerbehebungen.
---
@@ -117,8 +117,8 @@ Client-UUIDs (LXC): `Laptop-FullAdmin` = `2e9ed910-36dc-4fbd-8694-8d904670ea19`,
| # | Punkt | Typ | Blockiert durch |
| --- | --- | --- | --- |
| O1 | Fritzbox 7530: Portforward **UDP 51820 → 10.0.0.15** | 👤 User | – |
| O2 | NPM (10.0.0.10): Subdomain `vpn.ghostnet.selfhost.eu` anlegen | 👤 User | – |
| O1 | Fritzbox 7530: Portforward **UDP 51820 → 10.0.0.15** | ✅ erledigt (2026-09-09) | E2E-Check mit O4/O5 |
| O2 | **A-Record** `vpn` → WAN-IP `93.208.161.126` beim **Domain-DNS-Anbieter** anlegen (Korrektur: **nicht** NPM – der ist nur HTTP-Proxy; **nicht** selfhost.eu-Portal – das verwaltet keine DNS-Zone) + Statisch-Check der WAN-IP | 👤 User | – |
| O3 | Client-Profile herunterladen (Laptop + Android), `AllowedIPs` (aus `WG_ALLOWED_IPS`) + `Endpoint vpn.ghostnet.selfhost.eu:51820` prüfen | Agent + User | O1, O2 |
| O4 | Split-Tunnel-Routing end-zu-end verifizieren (Step 8 SOP; Konfig steht, s. 3.3) | Agent + User | O3 |
| O5 | Penetrationstest Mobilfunk (Testmatrix Sektion 4 SOP) | gemeinsam | O1, O2, O3 |