58 lines
2.6 KiB
Markdown
58 lines
2.6 KiB
Markdown
# WireGuard über die Fritzbox
|
|
|
|
## Gewählter Betriebsmodus
|
|
|
|
Athena verwendet die Fritzbox-Konfiguration für **einen einzelnen
|
|
WireGuard-Client**. Die unveränderte Exportdatei wird als root-only Secret nach
|
|
|
|
```text
|
|
/etc/mike-ai/wireguard/fritz-athena.conf
|
|
```
|
|
|
|
kopiert (`chmod 600`). Sie gehört weder ins Git-Repository noch in Backups ohne
|
|
Verschlüsselung. Eine LAN-zu-LAN-Konfiguration ist für diesen Host nicht nötig.
|
|
|
|
Der Tunnel endet im Container `mike-ai-wireguard-gateway`. Nur dieser Container
|
|
erhält `NET_ADMIN` und `/dev/net/tun`. Open WebUI und Router veröffentlichen
|
|
keine Ports auf der physischen Hostadresse. Der Gateway stellt OpenWebUI,
|
|
Router und die Werkzeugdienste auf der von der Fritzbox zugeteilten
|
|
VPN-Adresse bereit. Die vollständige Liste steht in
|
|
[VPN_SERVICE_PORTS.md](VPN_SERVICE_PORTS.md).
|
|
|
|
## Split der Verantwortlichkeiten
|
|
|
|
- Debian, Paketverwaltung und SSH benutzen die normale Standortverbindung.
|
|
- Die Docker-Netze `frontend` und `tools-egress` werden per Quellrouting zum
|
|
WireGuard-Gateway geschickt.
|
|
- Interner Docker-Verkehr bleibt lokal und durchquert den Tunnel nicht.
|
|
- Der Fritzbox-Export darf `0.0.0.0/0` und `::/0` enthalten. Das ändert **nicht**
|
|
die Default-Route des Debian-Hosts, sondern nur die des Gateway-Namespace.
|
|
- Fällt WireGuard aus, bleibt die Quellroute auf den dann unerreichbaren
|
|
Gateway zeigen: Anwendungscontainer fallen geschlossen aus.
|
|
|
|
## Kontrolle ohne Geheimnisse auszugeben
|
|
|
|
```bash
|
|
docker inspect -f '{{.State.Health.Status}}' mike-ai-wireguard-gateway
|
|
docker exec mike-ai-wireguard-gateway wg show wg0 latest-handshakes
|
|
systemctl status mike-ai-container-vpn-guard
|
|
```
|
|
|
|
Der Healthcheck verlangt einen Handshake, der jünger als drei Minuten ist.
|
|
Open WebUI liegt unter `http://<VPN-IP>:8080`, der Router unter
|
|
`http://<VPN-IP>:8081/v1`; die MCPs liegen auf 8201 bis 8208. An der
|
|
physischen Standortadresse dürfen diese Anwendungsports nicht antworten.
|
|
|
|
## Getestetes Verhalten am 22. August 2026
|
|
|
|
- Fritzbox-Handshake und Datenverkehr in beide Richtungen: erfolgreich
|
|
- Open WebUI, Router und direkte MCP-Endpunkte über die VPN-Adresse: erreichbar
|
|
- dieselben Ports über die physische Hostadresse: geschlossen
|
|
- VPN-Gateway gestoppt: ausgehender Open-WebUI-Test blockiert (fail-closed)
|
|
- Gateway erneut gestartet: automatischer aktueller Handshake
|
|
- vollständiger Hostneustart: SSH, Guard, Gateway, Open WebUI und Router kamen
|
|
automatisch gesund zurück; VPN-Ports erreichbar, Standortports geschlossen
|
|
|
|
Die Exportdatei muss Bestandteil des verschlüsselten Disaster-Recovery-Satzes
|
|
sein. Ohne sie kann ein neuer Host den Heimtunnel nicht rekonstruieren.
|