WireGuard-VPN
Verbinde deinen Roller mit deinem eigenen WireGuard-VPN für SSH-Fernzugriff über mobile Daten. Diese Anleitung ergänzt ein bestehendes VPN und enthält eine Serverkonfiguration für ein neues.
Voraussetzungen
- Prüfe, dass der Roller über seine SIM-Karte Internetzugang hat.
- Wähle einen WireGuard-Server, den du selbst verwaltest, etwa einen VPS oder deinen Heimrouter. Sein UDP-Endpunkt muss aus dem Internet erreichbar sein.
- Wähle eine freie Tunneladresse für den Roller. Die Beispiele verwenden
10.77.0.1für den Server und10.77.0.2für den Roller.
Auf einem Computer mit den WireGuard-Werkzeugen erzeugst du ein Schlüsselpaar so:
umask 077 wg genkey | tee scooter-private.key | wg pubkey > scooter-public.key
Verwende pro Gerät ein Schlüsselpaar. Der Inhalt von scooter-private.key gehört in die Rollerkonfiguration, scooter-public.key in seinen Peer-Eintrag auf dem Server. Für einen neuen Server erzeugst du mit demselben Befehl ein weiteres Paar unter den Dateinamen server-private.key und server-public.key. Hast du schon eine Client-Konfiguration für den Roller, kannst du deren Schlüssel und Adresse verwenden.
Konfiguration auf dem Roller
Erstelle eine reine Textdatei namens wg-scooter.conf im üblichen WireGuard-INI-Format. [Interface] beschreibt den Roller, [Peer] den VPN-Server. Ersetze alle Platzhalter und passe die Beispieladressen an dein VPN an:
[Interface] PrivateKey = <SCOOTER_PRIVATE_KEY> Address = 10.77.0.2/32 [Peer] PublicKey = <SERVER_PUBLIC_KEY> Endpoint = vpn.example.net:51820 AllowedIPs = 10.77.0.0/24 PersistentKeepalive = 25
| Feld | Inhalt |
|---|---|
PrivateKey | Der Inhalt von scooter-private.key. |
Address | Die gewählte Tunneladresse des Rollers mit Präfixlänge. |
PublicKey | Der öffentliche Base64-Schlüssel des VPN-Servers. |
Endpoint | Erreichbarer Hostname oder öffentliche IP des Servers mit UDP-Port. |
AllowedIPs | Zielnetze, die über diesen Peer geroutet werden, und von ihm erlaubte Quelladressen. Das Beispiel leitet nur das VPN-Subnetz in den Tunnel; normaler Internetverkehr bleibt auf der Mobilfunkverbindung. |
PersistentKeepalive | 25 Sekunden halten die NAT-Zuordnung im Mobilfunknetz offen, solange der Roller wach ist. So kann der Server Daten zurücksenden. |
Falls der Server einen zusätzlichen gemeinsamen Schlüssel verwendet, ergänze PresharedKey = <SHARED_KEY> unter [Peer] und hinterlege denselben Wert beim Roller-Peer auf dem Server. DNS und MTU sind optional; ergänze sie nur, wenn dein VPN sie braucht.
Speichere jeden Tunnel direkt unter wireguard/ mit der kleingeschriebenen Endung .conf. Der Dateistamm wird zum Verbindungs-/Schnittstellennamen in NetworkManager: Verwende höchstens 15 Buchstaben, Ziffern, Bindestriche oder Unterstriche, etwa wg-scooter.
NetworkManager importiert das Rollerprofil. Beschränke es auf Schnittstellen- und Peer-Einstellungen; lass wg-quick-Optionen wie PostUp, PostDown und SaveConfig weg.
Für Fernzugriff genügt unter AllowedIPs das VPN-Subnetz. Mit 0.0.0.0/0 oder ::/0 leitest du zusätzlich Internetverkehr über den Server. Wähle ein VPN-Subnetz ohne Überschneidung mit den internen Rollernetzen, darunter 192.168.7.0/24 und 192.168.8.0/24.
Server einrichten
Bei einem bestehenden VPN ergänzt du den Abschnitt [Peer] unten mit dem öffentlichen Rollerschlüssel und der gewählten Adresse. Für ein neues VPN passt dieses minimale Serverprofil zum Rollerbeispiel:
[Interface] PrivateKey = <SERVER_PRIVATE_KEY> Address = 10.77.0.1/24 ListenPort = 51820 [Peer] PublicKey = <SCOOTER_PUBLIC_KEY> AllowedIPs = 10.77.0.2/32
Lade das Profil mit den WireGuard-Werkzeugen deines Servers und erlaube UDP-Port 51820 in seiner Firewall. Steht der Server hinter deinem Heimrouter, leite diesen UDP-Port an ihn weiter. Trage unter Endpoint auf dem Roller den öffentlichen Hostnamen oder die IP des Servers mit Port ein.
Für Zugriff vom Laptop oder Handy fügst du dieses Gerät als weiteren VPN-Peer hinzu. Aktiviere IP-Forwarding auf dem Server und erlaube in seiner Firewall die Weiterleitung zwischen VPN-Peers. Ergänze 10.77.0.2/32 unter AllowedIPs dieses Clients, damit er Rollerverkehr ins VPN routet.
Installation im Updatemodus
- Aktiviere den Updatemodus und verbinde das USB-Laufwerk mit deinem Computer.
- Öffne
wireguard/im Stammverzeichnis des Laufwerks. Bestehende Konfigurationen werden hier exportiert. Behalte alle Tunnel, die du weiter nutzen willst. - Kopiere
wg-scooter.confin den Ordner oder bearbeite eine vorhandene.conf-Datei direkt. - Wirf das Laufwerk sicher aus und verlasse den Updatemodus. UMS kopiert die Dateien nach
/data/wireguard/auf dem MDB und startet bei Änderungenlibrescoot-settingsneu. - Settings-service importiert die Profile in NetworkManager und aktiviert die automatische Verbindung. Ein Roller-Neustart ist nicht nötig.
Vorhandene Dateien nur zum Entfernen eines Tunnels löschen
Der USB-Ordner wireguard/ ist maßgeblich. Löschst du eine .conf-Datei, wird dieser Tunnel beim Import entfernt. Ein leerer Ordner entfernt alle verwalteten WireGuard-Tunnel. Fehlt der Ordner ganz, bleiben sie unverändert.
Die exportierten Dateien enthalten private Schlüssel. Bewahre Sicherungen geschützt auf und hänge die Dateien nicht an öffentliche Supportanfragen an.
Alternativ per SSH installieren
Wenn du bereits SSH-Zugriff auf das MDB hast, kannst du dieselbe Datei direkt kopieren. Ersetze MDB_ADDRESS durch seine erreichbare Adresse. Unterbrich keinen Tunnel, der deine einzige Verbindung ist:
ssh root@MDB_ADDRESS 'mkdir -p /data/wireguard' scp wg-scooter.conf root@MDB_ADDRESS:/data/wireguard/wg-scooter.conf ssh root@MDB_ADDRESS 'chmod 600 /data/wireguard/wg-scooter.conf && systemctl restart librescoot-settings'
Zum Entfernen eines Tunnels per SSH löschst du dessen Datei unter /data/wireguard/*.conf und startest librescoot-settings neu. Die zugehörigen .sha256-Dateien aktualisiert der Dienst automatisch.
Verbindung prüfen
Prüfe auf dem MDB Importfehler, das aktive Profil und den letzten Handshake:
journalctl -u librescoot-settings -b --no-pager nmcli connection show --active wg show
Versuche von einem Computer im VPN aus ssh root@10.77.0.2 mit deinen eingerichteten SSH-Zugangsdaten. Damit verbindest du dich mit dem MDB unter seiner VPN-Adresse.
- Schlägt der Import fehl, prüfe den genauen Dateinamen, Abschnittsnamen, Base64-Schlüssel und Adresspräfixe. UMS kopiert die Datei; NetworkManager liest die WireGuard-Konfiguration ein.
- Ist die Schnittstelle aktiv, aber nach gesendetem Verkehr kein Handshake zu sehen, prüfe mobile Daten, DNS-/UDP-Erreichbarkeit des Endpunkts, beide öffentlichen Schlüssel und gegebenenfalls den gemeinsamen Schlüssel.
- Funktioniert der Handshake, aber SSH nicht, prüfe Adresse,
AllowedIPsauf beiden Seiten, Weiterleitung/Firewall-Regeln und SSH-Zugangsdaten. - Ein schlafender Roller ist nicht durchgehend erreichbar. Keepalive hält den Roller nicht wach und weckt ihn nicht aus dem Ruhezustand.
Protokollgrundlagen: WireGuard Quick Start.