VPN zum Heimnetzwerk

VPN zum Heimnetzwerk

TL;DR: Ich installiere Wireguard auf einem VPS, verbinde mich damit von meinem Heimrouter auf OpenWRT und erhalte Zugriff auf das Heimnetzwerk von meinem Telefon aus.

Wenn Sie auf einem Heimserver eine persönliche Infrastruktur betreiben oder zu Hause viele IP-gesteuerte Geräte haben, möchten Sie wahrscheinlich von der Arbeit, aus dem Bus, dem Zug oder der U-Bahn auf sie zugreifen. Oft wird für ähnliche Aufgaben eine IP vom Anbieter erworben, danach werden die Ports jedes Dienstes nach außen freigegeben.

Stattdessen habe ich ein VPN mit Zugriff auf das Heimnetzwerk eingerichtet. Die Vorteile dieser Lösung sind:

  • Transparenz: Ich fühle mich in jeder Situation wie zu Hause.
  • Einfachheit: einmal eingerichtet, kann man es vergessen, man muss nicht über das Freigeben jedes Ports nachdenken.
  • Preis: Ich habe bereits einen VPS, für solche Aufgaben ist ein moderner VPN in Bezug auf Ressourcen fast kostenlos.
  • Sicherheit: es steht nichts nach außen offen, man kann MongoDB ohne Passwort lassen und niemand wird die Daten stehlen.

Wie immer gibt es auch Nachteile. Erstens müssen Sie jeden Client einzeln konfigurieren, auch auf der Serverseite. Das kann unpraktisch sein, wenn man viele Geräte hat, von denen man auf Dienste zugreifen möchte. Zweitens kann es an Ihrem Arbeitsplatz ein lokales Netzwerk im gleichen Bereich geben – dieses Problem muss gelöst werden.

Wir benötigen:

  1. VPS (in meinem Fall auf Debian 10).
  2. Router auf OpenWRT.
  3. Telefon.
  4. Heimserver mit irgendeinem Webdienst zur Überprüfung.
  5. Hände mit Geschick.

Als VPN-Technologie werde ich Wireguard verwenden. Diese Lösung hat auch Stärken und Schwächen, ich werde sie nicht beschreiben. Für das VPN verwende ich das Subnetz 192.168.99.0/24, und zu Hause habe ich 192.168.0.0/24.

Konfiguration des VPS

Für die Aufgabe reicht auch der schwächste VPS für 30 Rubel pro Monat, wenn Sie Glück haben, einen solchen ergattern.

Alle Operationen auf dem Server führe ich als Root auf einer reinen Maschine aus, falls nötig, fügen Sie `sudo` hinzu und passen Sie die Anweisungen an.

Wireguard wurde noch nicht in die stabile Version integriert, daher führe ich `apt edit-sources` aus und füge die Backports mit zwei Zeilen am Ende der Datei hinzu:

deb http://deb.debian.org/debian/ buster-backports main
# deb-src http://deb.debian.org/debian/ buster-backports main

Das Paket wird auf die übliche Weise installiert: apt update && apt install wireguard.

Danach generieren wir ein Schlüsselpaar: wg genkey | tee /etc/wireguard/vps.private | wg pubkey | tee /etc/wireguard/vps.public. Diese Operation wiederholen Sie noch zweimal für jedes teilnehmende Gerät im Schema. Ändern Sie die Pfade zu den Schlüsseln für das andere Gerät und vergessen Sie nicht, die privaten Schlüssel sicher zu halten.

Jetzt bereiten wir die Konfiguration vor. In die Datei /etc/wireguard/wg0.conf kommt die Konfiguration:

[Schnittstelle]
Adresse = 192.168.99.1/24
ListenPort = 57953
PrivateKey = 0JxJPUHz879NenyujROVK0YTzfpmzNtbXmFwItRKdHs=

[Peer] # OpenWRT
PublicKey = 36MMksSoKVsPYv9eyWUKPGMkEs3HS+8yIUqMV8F+JGw=
AllowedIPs = 192.168.99.2/32,192.168.0.0/24

[Peer] # Smartphone
PublicKey = /vMiDxeUHqs40BbMfusB6fZhd+i5CIPHnfirr5m3TTI=
AllowedIPs = 192.168.99.3/32

Im Abschnitt [Schnittstelle] die Einstellungen des Geräts selbst angeben, und in [Peer] — die Einstellungen für diejenigen, die sich damit verbinden werden. In AllowedIPs werden die Subnetze, die zum entsprechenden Peer geroutet werden, durch Kommas getrennt angegeben. Aus diesem Grund müssen die Peers von "Client"-Geräten im VPN-Subnetz eine Maske haben, /32, alles andere wird vom Server geroutet. Da das Heimnetzwerk über OpenWRT geroutet wird, in AllowedIPs dem entsprechenden Peer fügen wir das Heim-Subnetz hinzu. In PrivateKey und PublicKey legen Sie den für VPS generierten privaten Schlüssel und die öffentlichen Schlüssel der Peers entsprechend ab.

Auf dem VPS bleibt nur noch der Befehl auszuführen, der die Schnittstelle hochfährt und sie zum Autostart hinzufügt: systemctl enable --now wg-quick@wg0. Den aktuellen Status der Verbindungen können Sie mit dem Befehl wg.

OpenWRT-Konfiguration

Alles, was für diesen Schritt benötigt wird, ist im Modul luci (Web-Oberfläche von OpenWRT) enthalten. Melden Sie sich dort an und öffnen Sie im Menü System den Tab Software. OpenWRT speichert keinen Cache auf dem Gerät, daher müssen Sie die Liste der verfügbaren Pakete aktualisieren, indem Sie auf die grüne Schaltfläche Update lists klicken. Nach Abschluss geben Sie im Filter ein, luci-app-wireguard und nachdem Sie auf das Fenster mit dem schönen Abhängigkeitsbaum geschaut haben, installieren Sie dieses Paket.

Im Menü Netzwerke wählen Sie Schnittstellen aus und klicken auf die grüne Schaltfläche Add New Interface unter der Liste der bereits vorhandenen. Nach Eingabe des Namens (auch wg0 in meinem Fall) und Auswahl des WireGuard VPN-Protokolls öffnet sich ein Einstellungsformular mit vier Tabs.

VPN zum Heimnetzwerk

Im Tab Allgemeine Einstellungen müssen Sie den privaten Schlüssel und die für OpenWRT vorgesehene IP-Adresse zusammen mit dem Subnetz eingeben.

VPN zum Heimnetzwerk

Im Tab Firewall-Einstellungen bringen Sie die Schnittstelle ins lokale Netzwerk. So gelangen die Verbindungen aus dem VPN problemlos ins lokale Netzwerk.

VPN zum Heimnetzwerk

Im Tab Peers klicken Sie auf die einzige Schaltfläche, danach füllen Sie im aktualisierten Formular die Daten des VPS-Servers aus: öffentlichen Schlüssel, Allowed IPs (das gesamte VPN-Subnetz muss zum Server geroutet werden). In Endpoint Host und Endpoint Port geben Sie entsprechend die VPS-IP mit dem zuvor in der Direktive ListenPort angegebenen Port ein. Aktivieren Sie Route Allowed IPs, damit Routen erstellt werden. Und füllen Sie unbedingt Persistent Keep Alive aus, andernfalls wird das Tunnel von VPS zum Router unterbrochen, wenn letzterer hinter NAT ist.

VPN zum Heimnetzwerk

VPN zum Heimnetzwerk

Nach diesem Schritt können Sie die Einstellungen speichern und anschließend auf der Seite mit der Liste der Schnittstellen auf Save and apply klicken. Bei Bedarf starten Sie die Schnittstelle explizit mit der Schaltfläche Restart.

Konfigurieren Sie das Smartphone

Sie benötigen den Wireguard-Client, der verfügbar ist in F-Droid, Google Play und im App Store. Öffnen Sie die App, klicken Sie auf das Pluszeichen und geben Sie im Abschnitt Interface den Verbindungsnamen, den privaten Schlüssel (der öffentliche wird automatisch generiert) und die Telefonnummer im Format /32 ein. Im Abschnitt Peer geben Sie den öffentlichen Schlüssel des VPS an, die Adresse: den Port des VPN-Servers als Endpoint und die Routen zum VPN- und Heimnetzwerk.

Fett gedruckter Screenshot vom Telefon
VPN zum Heimnetzwerk

Klicken Sie auf das Diskettensymbol in der Ecke, aktivieren Sie es und…

Fertig

Jetzt können Sie auf die Heimüberwachung zugreifen, die Routereinstellungen ändern oder alles, was auf IP-Ebene erforderlich ist, tun.

Screenshots aus dem lokalen Netzwerk
VPN zum Heimnetzwerk

VPN zum Heimnetzwerk

VPN zum Heimnetzwerk

Quelle: habr.com

60GB SSD 8Gb DDR4