TL; DR: Jag installerar Wireguard på en VPS, ansluter till den från min hemmarouter på OpenWRT och får åtkomst till mitt hemundernät från min telefon.
Om du har din personliga infrastruktur på en hemmaserver eller har många IP-kontrollerade enheter hemma, då vill du förmodligen ha tillgång till dem från jobbet, från bussen, tåget och tunnelbanan. Oftast, för liknande uppgifter, köps IP från leverantören, varefter portarna för varje tjänst vidarebefordras till utsidan.
Istället sätter jag upp ett VPN med åtkomst till mitt hemnätverk. Fördelarna med denna lösning:
- öppenhet: Jag känner mig hemma under alla omständigheter.
- Enkelhet: ställ in det och glöm det, du behöver inte tänka på att vidarebefordra varje port.
- Pris: Jag har redan en VPS; för sådana uppgifter är en modern VPN nästan gratis när det gäller resurser.
- Безопасность: ingenting sticker ut, du kan lämna MongoDB utan lösenord och ingen kommer att stjäla din data.
Som alltid finns det nackdelar. För det första måste du konfigurera varje klient separat, inklusive på serversidan. Det kan vara obekvämt om du har ett stort antal enheter som du vill komma åt tjänster från. För det andra kan du ha ett LAN med samma räckvidd på jobbet - du måste lösa det här problemet.
Vi behöver:
- VPS (i mitt fall på Debian 10).
- OpenWRT-router.
- Телефон.
- Hemmaserver med någon webbtjänst för testning.
- Raka armar.
VPN-tekniken jag kommer att använda är Wireguard. Denna lösning har också styrkor och svagheter, jag kommer inte att beskriva dem. För VPN använder jag ett subnät 192.168.99.0/24
och hemma hos mig 192.168.0.0/24
.
VPS-konfiguration
Även den mest eländiga VPS för 30 rubel i månaden räcker för affärer, om du har turen att ha en
Jag utför alla operationer på servern som root på en ren maskin; lägg till "sudo" om det behövs och anpassa instruktionerna.
Wireguard hade inte tid att föras in i stallet, så jag kör "apt edit-sources" och lägger till backports på två rader i slutet av filen:
deb http://deb.debian.org/debian/ buster-backports main
# deb-src http://deb.debian.org/debian/ buster-backports main
Paketet installeras på vanligt sätt: apt update && apt install wireguard
.
Därefter genererar vi ett nyckelpar: wg genkey | tee /etc/wireguard/vps.private | wg pubkey | tee /etc/wireguard/vps.public
. Upprepa denna operation två gånger till för varje enhet som deltar i kretsen. Ändra sökvägen till nyckelfilerna för en annan enhet och glöm inte säkerheten för privata nycklar.
Nu förbereder vi konfigurationen. Att fila /etc/wireguard/wg0.conf
config är placerad:
[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 avsnittet [Interface]
inställningarna för själva maskinen indikeras, och i [Peer]
— inställningar för dem som ska ansluta till den. I AllowedIPs
separerade med kommatecken specificeras subnäten som kommer att dirigeras till motsvarande peer. På grund av detta måste kamrater till "klient"-enheter i VPN-undernätet ha en mask /32
, kommer allt annat att dirigeras av servern. Eftersom hemnätverket kommer att dirigeras genom OpenWRT, in AllowedIPs
Vi lägger till hemundernätet för motsvarande peer. I PrivateKey
и PublicKey
dekomponera den privata nyckeln som genereras för VPS:n och de publika nycklarna för peers i enlighet därmed.
På VPS återstår bara att köra kommandot som kommer att ta fram gränssnittet och lägga till det till autorun: systemctl enable --now wg-quick@wg0
. Den aktuella anslutningsstatusen kan kontrolleras med kommandot wg
.
OpenWRT-konfiguration
Allt du behöver för detta steg finns i luci-modulen (OpenWRT webbgränssnitt). Logga in och öppna fliken Programvara i menyn System. OpenWRT lagrar ingen cache på maskinen, så du måste uppdatera listan över tillgängliga paket genom att klicka på den gröna knappen Uppdatera listor. Efter avslutad körning in i filtret luci-app-wireguard
och, titta på fönstret med ett vackert beroendeträd, installera det här paketet.
I menyn Nätverk väljer du Gränssnitt och klickar på den gröna knappen Lägg till nytt gränssnitt under listan över befintliga. Efter att ha angett namnet (även wg0
i mitt fall) och väljer WireGuard VPN-protokollet öppnas ett inställningsformulär med fyra flikar.
På fliken Allmänna inställningar måste du ange den privata nyckeln och IP-adressen förberedd för OpenWRT tillsammans med undernätet.
På fliken Brandväggsinställningar ansluter du gränssnittet till det lokala nätverket. På så sätt kommer anslutningar från VPN fritt in i det lokala området.
På fliken Peers klickar du på den enda knappen, varefter du fyller i VPS-serverdata i det uppdaterade formuläret: offentlig nyckel, Tillåtna IP-adresser (du måste dirigera hela VPN-undernätet till servern). I Endpoint Host och Endpoint Port anger du IP-adressen för VPS med den port som tidigare specificerats i ListenPort-direktivet. Kontrollera Rutt-tillåtna IP-adresser för rutter som ska skapas. Och se till att fylla i Persistent Keep Alive, annars kommer tunneln från VPS till routern att gå sönder om den senare ligger bakom NAT.
Efter detta kan du spara inställningarna och sedan på sidan med listan över gränssnitt klicka på Spara och tillämpa. Om det behövs, starta explicit gränssnittet med knappen Starta om.
Konfigurera en smartphone
Du behöver Wireguard-klienten, den är tillgänglig i
Fet skärmdump från telefonen
Klicka på disketten i hörnet, slå på den och...
Mål
Nu kan du komma åt hemövervakning, ändra routerinställningar eller göra vad som helst på IP-nivå.
Skärmdumpar från närområdet
Källa: will.com