TL; DR: Instaluję Wireguard na VPS, łączę się z nim z mojego domowego routera na OpenWRT i uzyskuję dostęp do mojej podsieci domowej z mojego telefonu.
Jeżeli utrzymujesz swoją infrastrukturę osobistą na domowym serwerze lub masz w domu wiele urządzeń sterowanych IP, to prawdopodobnie chcesz mieć do nich dostęp z pracy, z autobusu, pociągu czy metra. Najczęściej do podobnych zadań wykupuje się IP od dostawcy, po czym porty każdej usługi są przekazywane na zewnątrz.
Zamiast tego skonfigurowałem VPN z dostępem do mojej domowej sieci LAN. Zalety tego rozwiązania:
- przezroczystość: W każdych okolicznościach czuję się jak w domu.
- Łatwość: ustaw i zapomnij, nie musisz myśleć o przekierowaniu każdego portu.
- Cena: Mam już VPS, do takich zadań nowoczesny VPN jest prawie darmowy pod względem zasobów.
- bezpieczeństwo: nic nie odstaje, możesz opuścić MongoDB bez hasła i nikt nie ukradnie Twoich danych.
Jak zawsze są wady. Po pierwsze, będziesz musiał skonfigurować każdego klienta osobno, w tym po stronie serwera. Może to być niewygodne, jeśli masz dużą liczbę urządzeń, z których chcesz uzyskać dostęp do usług. Po drugie, możesz mieć w pracy sieć LAN o tym samym zasięgu - będziesz musiał rozwiązać ten problem.
Potrzebujemy:
- VPS (w moim przypadku na Debianie 10).
- routera OpenWRT.
- Telefon.
- Serwer domowy z usługą internetową do testów.
- Proste ramiona.
Technologia VPN, której będę używać, to Wireguard. To rozwiązanie ma też mocne i słabe strony, nie będę ich opisywał. W przypadku VPN używam podsieci 192.168.99.0/24
i u mnie w domu 192.168.0.0/24
.
Konfiguracja VPS-a
Nawet najbardziej nędzny VPS za 30 rubli miesięcznie wystarczy do biznesu, jeśli masz szczęście, że go masz
Wszystkie operacje wykonuję na serwerze jako root na czystej maszynie, w razie potrzeby dodaję `sudo` i dostosowuję instrukcję.
Wireguard nie miał czasu na wprowadzenie go do stajni, więc uruchamiam `apt edit-sources` i dodaję backporty w dwóch liniach na końcu pliku:
deb http://deb.debian.org/debian/ buster-backports main
# deb-src http://deb.debian.org/debian/ buster-backports main
Pakiet instaluje się w zwykły 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 dwukrotnie dla każdego urządzenia uczestniczącego w obwodzie. Zmień ścieżkę do plików kluczy dla innego urządzenia i nie zapomnij o bezpieczeństwie kluczy prywatnych.
Teraz przygotowujemy konfigurację. Do pliku /etc/wireguard/wg0.conf
konfiguracja jest umieszczona:
[Interface]
Address = 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
W dziale [Interface]
wskazane są ustawienia samego urządzenia i in [Peer]
— ustawienia dla tych, którzy będą się z nim łączyć. W AllowedIPs
oddzielone przecinkami określają podsieci, które zostaną przekierowane do odpowiedniego partnera. Z tego powodu urządzenia równorzędne urządzeń „klienckich” w podsieci VPN muszą mieć maskę /32
, wszystko inne będzie kierowane przez serwer. Ponieważ sieć domowa będzie kierowana przez OpenWRT, w AllowedIPs
Dodajemy podsieć domową odpowiedniego partnera. W PrivateKey
и PublicKey
odpowiednio rozłóż klucz prywatny wygenerowany dla VPS i klucze publiczne partnerów.
Na VPS pozostaje tylko uruchomić polecenie, które wyświetli interfejs i doda go do autorun: systemctl enable --now wg-quick@wg0
. Aktualny stan połączenia można sprawdzić za pomocą polecenia wg
.
Konfiguracja OpenWRT
Wszystko, czego potrzebujesz na tym etapie, znajduje się w module luci (interfejs sieciowy OpenWRT). Zaloguj się i otwórz zakładkę Oprogramowanie w menu System. OpenWRT nie przechowuje pamięci podręcznej na komputerze, dlatego należy zaktualizować listę dostępnych pakietów, klikając zielony przycisk Aktualizuj listy. Po zakończeniu wjedź do filtra luci-app-wireguard
i patrząc na okno z pięknym drzewem zależności, zainstaluj ten pakiet.
W menu Sieci wybierz Interfejsy i kliknij zielony przycisk Dodaj nowy interfejs znajdujący się pod listą istniejących. Po wpisaniu nazwy (również wg0
w moim przypadku) i wybraniu protokołu WireGuard VPN otwiera się formularz ustawień z czterema zakładkami.
W zakładce Ustawienia ogólne należy wpisać klucz prywatny i adres IP przygotowany dla OpenWRT wraz z podsiecią.
Na karcie Ustawienia zapory podłącz interfejs do sieci lokalnej. W ten sposób połączenia z VPN będą swobodnie wchodzić na obszar lokalny.
Na zakładce Peers klikamy jedyny przycisk, po czym uzupełniamy dane serwera VPS w zaktualizowanej formie: klucz publiczny, Dozwolone adresy IP (trzeba przekierować całą podsieć VPN na serwer). W polach Endpoint Host i Endpoint Port wprowadź odpowiednio adres IP VPS z portem określonym wcześniej w dyrektywie ListenPort. Sprawdź dozwolone adresy IP tras dla tras, które mają zostać utworzone. I pamiętaj o wypełnieniu opcji Persistent Keep Alive, w przeciwnym razie tunel od VPS do routera zostanie uszkodzony, jeśli ten ostatni będzie za NAT.
Następnie możesz zapisać ustawienia, a następnie na stronie z listą interfejsów kliknij Zapisz i zastosuj. Jeśli to konieczne, jawnie uruchom interfejs za pomocą przycisku Uruchom ponownie.
Konfigurowanie smartfona
Będziesz potrzebował klienta Wireguard, jest on dostępny w
Pogrubiony zrzut ekranu z telefonu
Kliknij na dyskietkę w rogu, włącz ją i...
Ukończone
Teraz możesz uzyskać dostęp do monitorowania domu, zmienić ustawienia routera lub zrobić cokolwiek na poziomie IP.
Zrzuty ekranu z okolicy
Źródło: www.habr.com