VPN do domácí lokální sítě

VPN do domácí lokální sítě

TL;DR: Nainstaluji Wireguard na VPS, připojím se k němu z domácího routeru na OpenWRT a získám přístup k domácí podsíti z telefonu.

Pokud máte na domácím serveru osobní infrastrukturu nebo doma spoustu zařízení řízených přes IP, jistě chcete mít k nim přístup z práce, z autobusu, vlaku a metra. Nejčastěji se pro takové úkoly pořizuje IP adresa od poskytovatele, po které se porty každé služby přesměrovávají ven.

Místo toho jsem nastavil VPN s přístupem do domácí lokální sítě. Výhody tohoto řešení:

  • Průhlednost: Cítím se jako doma za jakýchkoli okolností.
  • Jednoduchost: Nastavil jsem a zapomněl, není potřeba myslet na přesměrování každého portu.
  • Cena: Již mám VPS, pro takové úkoly je moderní VPN téměř zdarma na zdrojích.
  • Bezpečnost: Nic není vystaveno ven, mohu nechat MongoDB bez hesla a nikdo neukradne data.

Jak již to bývá, existují také nevýhody. Za prvé, budete muset nastavit každého klienta zvlášť, včetně strany serveru. Může to být nepohodlné při velkém počtu zařízení, z nichž chcete mít přístup k službám. Za druhé, na vaší práci může být lokální síť, která se rozsahově překrývá – budete muset tento problém vyřešit.

Budeme potřebovat:

  1. VPS (v mém případě na Debianu 10).
  2. Router na OpenWRT.
  3. Telefon.
  4. Domácí server s nějakou webovou službou pro testování.
  5. Přímé ruce.

Jako technologii VPN budu používat Wireguard. Toto řešení má také silné a slabé stránky, nebudu je popisovat. Pro VPN používám podsíť 192.168.99.0/24, a doma mám 192.168.0.0/24.

Konfigurace VPS

Pro účel stačí i ten nejchudší VPS za 30 korun měsíčně, pokud máte štěstí a podaří se vám takový ulovit.

Všechny operace na serveru provádím jako root na čistém zařízení, při potřebě přidejte `sudo` a upravte pokyny.

Wireguard ještě nebyl zařazen do stabilní verze, takže provádím `apt edit-sources` a přidávám backporty dvěma řádky na konec souboru:

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

Balíček se instaluje běžným způsobem: apt update && apt install wireguard.

Dále generujeme pár klíčů: wg genkey | tee /etc/wireguard/vps.private | wg pubkey | tee /etc/wireguard/vps.public. Tento úkon zopakujte ještě dvakrát pro každé zařízení účastníka schématu. Změňte cesty k souborům s klíči pro jiné zařízení a nezapomeňte na bezpečnost soukromých klíčů.

Nyní připravíme konfiguraci. Do souboru /etc/wireguard/wg0.conf se umísťuje konfigurace:

[Interface]
Adresa = 192.168.99.1/24
Poslouchací port = 57953
Soukromý klíč = 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

V sekci [Interface] jsou nastavení samotného stroje, a v [Peer] — nastavení pro ty, kteří se k němu budou připojovat. V AllowedIPs se přes čárku zapisují podsítě, které budou směrovány na příslušného peera. Z toho důvodu musí mít peery zařízení 'klientů' v podsíti VPN masku /32, vše ostatní bude směrováno serverem. Jelikož domácí síť bude směrována přes OpenWRT, v AllowedIPs přidáme příslušnou domácí podsíť. V PrivateKey a PublicKey uložte privátní klíč vygenerovaný pro VPS a veřejné klíče peerů odpovídajícím způsobem.

Na VPS stačí spustit příkaz, který aktivuje rozhraní a přidá ho do automatického spuštění: systemctl enable --now wg-quick@wg0. Aktuální stav připojení můžete zkontrolovat příkazem wg.

Konfigurace OpenWRT

Vše, co potřebujete pro tuto fázi, je v modulu luci (webové rozhraní OpenWRT). Přihlaste se do něj a v menu System otevřete záložku Software. OpenWRT neuchovává cache na stroji, proto musíte aktualizovat seznam dostupných balíčků stisknutím zeleného tlačítka Update lists. Po dokončení do filtru zadejte luci-app-wireguard a, podíváte-li se na okno s krásným stromem závislostí, nainstalujte tento balíček.

V menu Networks vyberete Interfaces a kliknete na zelené tlačítko Add New Interface pod seznamem již existujících. Po zadání jména (také wg0 v mém případě) a výběru protokolu WireGuard VPN se otevře formulář nastavení se čtyřmi záložkami.

VPN do domácí lokální sítě

Na záložce General Settings musíte zadat privátní klíč a IP adresu připravenou pro OpenWRT spolu s podsítí.

VPN do domácí lokální sítě

Na záložce Firewall Settings přidejte rozhraní do lokální sítě. Tak budou připojení z VPN svobodně vstupovat do lokální sítě.

VPN do domácí lokální sítě

Na záložce Peers kliknete na jediné tlačítko, poté v aktualizovaném formuláři vyplníte údaje VPS serveru: veřejný klíč, Allowed IPs (je třeba směrovat celou VPN podsíť na server). Do Endpoint Host a Endpoint Port zadejte odpovídající IP adresu VPS s portem uvedeným dříve v direktivě ListenPort. Zaškrtněte Route Allowed IPs, aby byly vytvořeny trasy. A nezapomeňte vyplnit Persistent Keep Alive, jinak bude tunel z VPS k routeru přerušen, pokud ten bude za NAT.

VPN do domácí lokální sítě

VPN do domácí lokální sítě

Poté můžete uložit nastavení a na stránce se seznamem rozhraní kliknout na Save and apply. V případě potřeby jasně spusťte rozhraní tlačítkem Restart.

Nastavit smartphone

Budete potřebovat klienta Wireguard, který je dostupný v F-Droid, Google Play a App Store. Po otevření aplikace stiskněte plus a v sekci Interface zadejte název připojení, privátní klíč (veřejný bude vygenerován automaticky) a adresu telefonu s maskou /32. V sekci Peer zadejte veřejný klíč VPS, pár adresa: port VPN serveru jako Endpoint a trasy do VPN a domácí podsítě.

Hrubý snímek obrazovky z telefonu
VPN do domácí lokální sítě

Stiskněte disketu v rohu, zapněte a…

Hotovo

Nyní můžete získat přístup k domácímu monitorování, měnit nastavení routeru nebo dělat cokoliv na úrovni IP.

Snímky obrazovky z lokální sítě
VPN do domácí lokální sítě

VPN do domácí lokální sítě

VPN do domácí lokální sítě

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster