VPN w domowej lokalnej sieci

VPN w domowej lokalnej sieci

TL;DR: Instaluję Wireguard na VPS, łączę się z nim z domowego routera na OpenWRT i uzyskuję dostęp do domowej podsieci z telefonu.

Jeśli posiadasz osobistą infrastrukturę na domowym serwerze lub masz wiele urządzeń zarządzanych przez IP, na pewno chcesz mieć do nich dostęp z pracy, z autobusu, pociągu lub metra. Najczęściej do takich zadań kupuje się IP od dostawcy, a następnie przekierowuje się porty każdego z usług na zewnątrz.

Zamiast tego skonfigurowałem VPN z dostępem do domowej lokalnej sieci. Zalety tego rozwiązania:

  • Przejrzystość: czuję się jak w domu w każdej sytuacji.
  • Prostota: skonfigurowane i zapomniane, nie trzeba myśleć o przekierowywaniu każdego portu.
  • Cena: mam już VPS, dla takich zadań nowoczesny VPN jest prawie darmowy pod względem zasobów.
  • Bezpieczeństwo: nic nie jest wystawione na zewnątrz, można zostawić MongoDB bez hasła i nikt nie ukradnie danych.

Jak zawsze, są też minusy. Po pierwsze, będziesz musiał skonfigurować każdego klienta z osobna, w tym po stronie serwera. Może być to niewygodne, gdy masz dużą liczbę urządzeń, z których chcesz mieć dostęp do usług. Po drugie, w pracy możesz mieć lokalną sieć, która pokrywa się z twoją — będziesz musiał rozwiązać ten problem.

Będziemy potrzebować:

  1. VPS (w moim przypadku na Debianie 10).
  2. Router na OpenWRT.
  3. Telefon.
  4. Domowy serwer z jakimś serwisem webowym do testów.
  5. Sprawne ręce.

Jako technologię VPN będę używać Wireguard. To rozwiązanie ma również swoje mocne i słabe strony, ale ich nie opiszę. Dla VPN używam podsieci 192.168.99.0/24, a w domu mam 192.168.0.0/24.

Konfiguracja VPS

Do sprawy wystarczy nawet najtańszy VPS za 30 złotych miesięcznie, jeśli uda ci się taki zdobyć.

Wszystkie operacje na serwerze wykonuję jako root na czystej maszynie, w razie potrzeby dodaj `sudo` i dostosuj instrukcje.

Wireguard nie został jeszcze wprowadzony do stabilnej wersji, więc wykonuję `apt edit-sources` i dodaję backporty dwiema liniami na koniec pliku:

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

Pakiet instalowany jest w znany sposób: apt update && apt install wireguard.

Następnie generujemy parę kluczy: wg genkey | tee /etc/wireguard/vps.private | wg pubkey | tee /etc/wireguard/vps.public. Powtórz tę operację jeszcze dwa razy dla każdego urządzenia biorącego udział w schemacie. Zmień ścieżki do plików z kluczami dla innego urządzenia i nie zapomnij o bezpieczeństwie prywatnych kluczy.

Teraz przygotowujemy konfigurację. W pliku /etc/wireguard/wg0.conf umieszczamy konfigurację:

[Interface]
Adres = 192.168.99.1/24
PortSłuchania = 57953
KluczPrywatny = 0JxJPUHz879NenyujROVK0YTzfpmzNtbXmFwItRKdHs=

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

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

W sekcji [Interface] są ustawienia samej maszyny, a w [Peer] — ustawienia dla tych, którzy będą się do niej łączyć. W AllowedIPs przez przecinek wpisuje się podsieci, które będą routowane do odpowiedniego pira. Z tego powodu piry urządzeń-„klientów” w podsieci VPN powinny mieć maskę /32, wszystko inne będzie routowane przez serwer. Ponieważ domowa sieć będzie routowana przez OpenWRT, w AllowedIPs odpowiedniego pira dopisujemy domową podsieć. W PrivateKey i PublicKey rozdzielcie prywatny klucz wygenerowany dla VPS oraz publiczne klucze pirów odpowiednio.

Na VPS wystarczy uruchomić polecenie, które podniesie interfejs i doda go do autostartu: systemctl enable --now wg-quick@wg0. Aktualny status połączeń można sprawdzić poleceniem wg.

Konfiguracja OpenWRT

Wszystko, co potrzeba na tym etapie, znajduje się w module luci (interfejs webowy OpenWRT). Zaloguj się do niego i w menu System otwórz zakładkę Software. OpenWRT nie przechowuje pamięci podręcznej na maszynie, dlatego należy zaktualizować listę dostępnych pakietów, klikając zielony przycisk Update lists. Po zakończeniu w filtrze wpisz luci-app-wireguard i, patrząc na okno z ładnym drzewem zależności, instalujesz ten pakiet.

W menu Networks wybierz Interfaces i kliknij zielony przycisk Add New Interface pod listą już istniejących. Po wpisaniu nazwy (tak jak w moim przypadku) oraz wyborze protokołu WireGuard VPN otworzy się formularz ustawień z czterema zakładkami. wg0 W zakładce General Settings należy wpisać prywatny klucz oraz adres IP przygotowany dla OpenWRT wraz z podsiecią.

VPN w domowej lokalnej sieci

W zakładce Firewall Settings dodaj interfejs do lokalnej sieci. Dzięki temu połączenia z VPN będą mogły swobodnie docierać do lokalnej sieci.

VPN w domowej lokalnej sieci

W zakładce Peers kliknij jedyną przycisk, po czym w zaktualizowanej formie uzupełnij dane VPS-serwera: publiczny klucz, Allowed IPs (należy zamrutować całą podsieć VPN do serwera). W Endpoint Host i Endpoint Port wprowadź odpowiednio adres IP VPS z portem podanym wcześniej w dyrektywie ListenPort. Zaznacz Route Allowed IPs, aby utworzyć trasy. I koniecznie wypełnij Persistent Keep Alive, w przeciwnym razie tunel od VPS do routera będzie przerywany, jeśli ten ostatni będzie za NAT.

VPN w domowej lokalnej sieci

Po tym można zapisać ustawienia, a następnie na stronie ze ściągiem interfejsów kliknąć Save and apply. W razie potrzeby uruchom interfejs ponownie przyciskiem Restart.

VPN w domowej lokalnej sieci

VPN w domowej lokalnej sieci

Po tym można zapisać ustawienia, a następnie na stronie z listą interfejsów kliknąć Zapisz i zastosuj. W razie potrzeby uruchom interfejs ponownie przyciskiem Uruchom ponownie.

Konfiguracja smartfona

Będziesz potrzebować klienta Wireguard, który jest dostępny w F-Droid, Google Play i App Store. Otwierając aplikację, kliknij plusik i w sekcji Interfejs wpisz nazwę połączenia, klucz prywatny (klucz publiczny zostanie wygenerowany automatycznie) oraz adres telefonu z maską /32. W sekcji Peer wprowadź publiczny klucz VPS, parę adres: port serwera VPN jako Punkt końcowy oraz trasy do sieci VPN i domowej.

Zrzut ekranu z telefonu
VPN w domowej lokalnej sieci

Kliknij na dyskietkę w rogu, włącz i…

Gotowe

Teraz możesz uzyskać dostęp do zdalnego monitoringu, zmieniać ustawienia routera lub robić cokolwiek na poziomie IP.

Zrzuty ekranu z lokalnej sieci
VPN w domowej lokalnej sieci

VPN w domowej lokalnej sieci

VPN w domowej lokalnej sieci

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster