TL; DR: Jeg installerer Wireguard på en VPS, kobler til den fra hjemmeruteren på OpenWRT og får tilgang til hjemmenettverket fra telefonen.
Hvis du holder din personlige infrastruktur på en hjemmeserver eller har mange IP-kontrollerte enheter hjemme, så vil du sannsynligvis ha tilgang til dem fra jobb, fra buss, tog og t-bane. Oftest, for lignende oppgaver, kjøpes IP fra leverandøren, hvoretter portene til hver tjeneste videresendes til utsiden.
I stedet setter jeg opp en VPN med tilgang til hjemme-LAN. Fordelene med denne løsningen:
- åpenhet: Jeg føler meg hjemme under alle omstendigheter.
- lette: still den og glem den, du trenger ikke tenke på å videresende hver port.
- Pris: Jeg har allerede en VPS; for slike oppgaver er en moderne VPN nesten gratis når det gjelder ressurser.
- Безопасность: ingenting stikker ut, du kan forlate MongoDB uten passord og ingen vil stjele dataene dine.
Som alltid er det ulemper. For det første må du konfigurere hver klient separat, inkludert på serversiden. Det kan være upraktisk hvis du har et stort antall enheter du ønsker å få tilgang til tjenester fra. For det andre kan du ha et LAN med samme rekkevidde på jobben - du må løse dette problemet.
Vi trenger:
- VPS (i mitt tilfelle på Debian 10).
- OpenWRT-ruter.
- Telefonnummer.
- Hjemmeserver med en eller annen nettjeneste for testing.
- Rette armer.
VPN-teknologien jeg skal bruke er Wireguard. Denne løsningen har også styrker og svakheter, jeg skal ikke beskrive dem. For VPN bruker jeg et subnett 192.168.99.0/24
, og hjemme hos meg 192.168.0.0/24
.
VPS-konfigurasjon
Selv den mest elendige VPS for 30 rubler i måneden er nok for forretninger, hvis du er heldig nok til å ha en
Jeg utfører alle operasjoner på serveren som root på en ren maskin; om nødvendig, legg til `sudo` og tilpass instruksjonene.
Wireguard hadde ikke tid til å bli brakt inn i stallen, så jeg kjører "apt edit-sources" og legger til backporter på to linjer på slutten av filen:
deb http://deb.debian.org/debian/ buster-backports main
# deb-src http://deb.debian.org/debian/ buster-backports main
Pakken installeres på vanlig måte: apt update && apt install wireguard
.
Deretter genererer vi et nøkkelpar: wg genkey | tee /etc/wireguard/vps.private | wg pubkey | tee /etc/wireguard/vps.public
. Gjenta denne operasjonen to ganger til for hver enhet som deltar i kretsen. Endre banen til nøkkelfilene for en annen enhet og ikke glem sikkerheten til private nøkler.
Nå forbereder vi konfigurasjonen. Å lagre /etc/wireguard/wg0.conf
config er plassert:
[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
I seksjonen [Interface]
innstillingene til selve maskinen er angitt, og i [Peer]
— innstillinger for de som skal koble til den. I AllowedIPs
atskilt med kommaer, spesifiseres subnettene som vil bli rutet til den tilsvarende peer. På grunn av dette må jevnaldrende til "klient"-enheter i VPN-undernettverket ha en maske /32
, vil alt annet bli rutet av serveren. Siden hjemmenettverket vil bli rutet gjennom OpenWRT, i AllowedIPs
Vi legger til hjemmeundernettet til den tilsvarende peeren. I PrivateKey
и PublicKey
dekomponere den private nøkkelen som er generert for VPS og de offentlige nøklene til jevnaldrende tilsvarende.
På VPS gjenstår det bare å kjøre kommandoen som vil få opp grensesnittet og legge det til autorun: systemctl enable --now wg-quick@wg0
. Gjeldende tilkoblingsstatus kan kontrolleres med kommandoen wg
.
OpenWRT-konfigurasjon
Alt du trenger for dette stadiet er i luci-modulen (OpenWRT webgrensesnitt). Logg på og åpne Programvare-fanen i System-menyen. OpenWRT lagrer ikke en cache på maskinen, så du må oppdatere listen over tilgjengelige pakker ved å klikke på den grønne knappen Oppdater lister. Etter ferdigstillelse, kjør inn i filteret luci-app-wireguard
og, ser på vinduet med et vakkert avhengighetstre, installer denne pakken.
I Nettverk-menyen velger du Grensesnitt og klikker på den grønne knappen Legg til nytt grensesnitt under listen over eksisterende. Etter å ha skrevet inn navnet (også wg0
i mitt tilfelle) og velger WireGuard VPN-protokollen, åpnes et innstillingsskjema med fire faner.
På fanen Generelle innstillinger må du skrive inn den private nøkkelen og IP-adressen som er forberedt for OpenWRT sammen med undernettet.
På kategorien Brannmurinnstillinger kobler du grensesnittet til det lokale nettverket. På denne måten vil tilkoblinger fra VPN fritt komme inn i lokalområdet.
På Peers-fanen klikker du på den eneste knappen, hvoretter du fyller ut VPS-serverdataene i det oppdaterte skjemaet: offentlig nøkkel, tillatte IP-er (du må rute hele VPN-undernettet til serveren). I Endpoint Host og Endpoint Port skriver du inn IP-adressen til VPS-en med porten som tidligere er spesifisert i henholdsvis ListenPort-direktivet. Sjekk rutetillatte IP-er for ruter som skal opprettes. Og pass på å fylle ut Persistent Keep Alive, ellers vil tunnelen fra VPS til ruteren bli ødelagt hvis sistnevnte står bak NAT.
Etter dette kan du lagre innstillingene, og klikk deretter på Lagre og bruk på siden med listen over grensesnitt. Om nødvendig, start grensesnittet eksplisitt med Restart-knappen.
Sette opp en smarttelefon
Du trenger Wireguard-klienten, den er tilgjengelig i
Fet skjermbilde fra telefonen
Klikk på disketten i hjørnet, slå den på og...
Finish
Nå kan du få tilgang til hjemmeovervåking, endre ruterinnstillinger eller gjøre hva som helst på IP-nivå.
Skjermbilder fra lokalområdet
Kilde: www.habr.com