feat(vpn): VPN-Satelliten — WireGuard-Clients als Satelliten ohne Installation beim Kunden

Einstellungen → VPN → WireGuard → Clients: WireGuard-Datei des Kunden
hochladen/einfuegen (editierbar), je Verbindung Schalter (an = auch nach
Neustart, aus = bleibt aus), bearbeiten, Download, ℹ-Verlauf, loeschen;
Log-Aufbewahrung im Reiter Einstellungen. Server-Reiter mit Anleitung fuer
UDP 443 (NPM-Stream bzw. ohne Nginx), Server selbst folgt.

Jede Verbindung ist ein eigener Container (aria-vpn-<id>, Image aus
satellite/Dockerfile.vpn) mit eigenem Netz-Namensraum: WireGuard + normaler
satellite.py (kind=vpn). Firewall im Container: Tunnel nur ausgehend, keine
Verbindung Kundennetz → ARIA; ins ARIA-Netz nur RVS + Endpunkt. Routen ohne
wg-quick, RVS-Weg nie durch den Tunnel (auch bei 0.0.0.0/0). Scan ueber den
Tunnel aktiv per TCP (kein mDNS/ARP), FritzBox an Port 49000 erkannt.
Satelliten-Ansicht: eigene Gruppe VPN-Satelliten.

Lokal Ende-zu-Ende getestet (Kunde mit WG-Server + LAN, Fake-RVS):
Tunnel, Verlauf, Scan, Sperren in beide Richtungen, Volltunnel.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-01 13:30:10 +01:00
co-authored by Claude Opus 5.5
parent ca35f5f1e0
commit 627b826226
9 changed files with 1155 additions and 12 deletions
+16
View File
@@ -164,6 +164,22 @@ services:
- RVS_TOKEN=${RVS_TOKEN:-}
restart: unless-stopped
# ─── VPN-Satelliten: nur das Image bauen ───────────────
# Die eigentlichen Container (einer pro WireGuard-Verbindung, aria-vpn-<id>)
# legt die Diagnostic an (Einstellungen → VPN). Dieser Eintrag sorgt nur
# dafuer, dass `docker compose up -d --build` das Image mitbaut; der
# Container selbst beendet sich sofort wieder.
# Voraussetzung auf dem Host: WireGuard-Kernelmodul (modprobe wireguard).
vpn-satellite-image:
build:
context: ./satellite
dockerfile: Dockerfile.vpn
image: aria-vpn-satellite:latest
container_name: aria-vpn-satellite-image
entrypoint: ["true"]
network_mode: none
restart: "no"
networks:
aria-net:
driver: bridge