TL; DR: Jeg installerer Wireguard på en VPS, opretter forbindelse til den fra min hjemmerouter på OpenWRT og får adgang til mit hjemmeundernet fra min telefon.
Hvis du beholder din personlige infrastruktur på en hjemmeserver eller har mange IP-kontrollerede enheder derhjemme, så vil du sikkert gerne have adgang til dem fra arbejde, fra bus, tog og metro. Oftest købes IP til lignende opgaver hos udbyderen, hvorefter hver tjenestes porte videresendes til ydersiden.
I stedet opsætter jeg en VPN med adgang til mit hjemme-LAN. Fordelene ved denne løsning:
- gennemsigtighed: Jeg føler mig hjemme under alle omstændigheder.
- Ease: Indstil det og glem det, ingen grund til at tænke på at videresende hver port.
- Pris: Jeg har allerede en VPS; til sådanne opgaver er en moderne VPN næsten gratis med hensyn til ressourcer.
- Безопасность: intet stikker ud, du kan forlade MongoDB uden en adgangskode, og ingen vil stjæle dine data.
Som altid er der ulemper. For det første skal du konfigurere hver klient separat, inklusive på serversiden. Det kan være ubelejligt, hvis du har et stort antal enheder, hvorfra du vil have adgang til tjenester. For det andet kan du have et LAN med samme rækkevidde på arbejde - du bliver nødt til at løse dette problem.
Vi har brug for:
- VPS (i mit tilfælde på Debian 10).
- OpenWRT router.
- Telefonnummer.
- Hjemmeserver med en eller anden webservice til test.
- Lige arme.
Den VPN-teknologi, jeg vil bruge, er Wireguard. Denne løsning har også styrker og svagheder, dem vil jeg ikke beskrive. Til VPN bruger jeg et undernet 192.168.99.0/24
og hjemme hos mig 192.168.0.0/24
.
VPS konfiguration
Selv den mest elendige VPS til 30 rubler om måneden er nok til forretning, hvis du er så heldig at have en
Jeg udfører alle operationer på serveren som root på en ren maskine; hvis det er nødvendigt, tilføj `sudo` og tilpas instruktionerne.
Wireguard havde ikke tid til at blive bragt ind i stalden, så jeg kører 'apt edit-sources' og tilføjer backports på to linjer i slutningen af filen:
deb http://deb.debian.org/debian/ buster-backports main
# deb-src http://deb.debian.org/debian/ buster-backports main
Pakken installeres på den sædvanlige måde: apt update && apt install wireguard
.
Dernæst genererer vi et nøglepar: wg genkey | tee /etc/wireguard/vps.private | wg pubkey | tee /etc/wireguard/vps.public
. Gentag denne handling to gange mere for hver enhed, der deltager i kredsløbet. Skift stien til nøglefilerne for en anden enhed, og glem ikke sikkerheden ved private nøgler.
Nu forbereder vi konfigurationen. Til at arkivere /etc/wireguard/wg0.conf
config er placeret:
[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 afsnittet [Interface]
selve maskinens indstillinger er angivet, og i [Peer]
— indstillinger for dem, der vil oprette forbindelse til det. I AllowedIPs
adskilt af kommaer angives de undernet, der vil blive dirigeret til den tilsvarende peer. På grund af dette skal peers af "klient"-enheder i VPN-undernettet have en maske /32
, vil alt andet blive dirigeret af serveren. Da hjemmenetværket vil blive dirigeret gennem OpenWRT, i AllowedIPs
Vi tilføjer hjemmeundernettet for den tilsvarende peer. I PrivateKey
и PublicKey
nedbryde den private nøgle, der er genereret til VPS'en, og de offentlige nøgler for peers i overensstemmelse hermed.
På VPS'en er der kun tilbage at køre kommandoen, der åbner grænsefladen og tilføjer den til autorun: systemctl enable --now wg-quick@wg0
. Den aktuelle forbindelsesstatus kan kontrolleres med kommandoen wg
.
OpenWRT-konfiguration
Alt hvad du behøver til dette trin er i luci-modulet (OpenWRT-webgrænseflade). Log på og åbn fanen Software i menuen System. OpenWRT gemmer ikke en cache på maskinen, så du skal opdatere listen over tilgængelige pakker ved at klikke på den grønne knap Opdater lister. Efter færdiggørelse køres ind i filteret luci-app-wireguard
og se på vinduet med et smukt afhængighedstræ, installer denne pakke.
I menuen Netværk skal du vælge Interfaces og klikke på den grønne Tilføj ny grænseflade-knap under listen over eksisterende. Efter indtastning af navnet (også wg0
i mit tilfælde) og vælger WireGuard VPN-protokollen, åbnes en indstillingsformular med fire faner.
På fanen Generelle indstillinger skal du indtaste den private nøgle og IP-adressen, der er forberedt til OpenWRT, sammen med undernettet.
På fanen Firewall-indstillinger skal du slutte grænsefladen til det lokale netværk. På denne måde vil forbindelser fra VPN frit komme ind i lokalområdet.
På Peers-fanen skal du klikke på den eneste knap, hvorefter du udfylder VPS-serverdataene i den opdaterede form: offentlig nøgle, Tilladte IP'er (du skal dirigere hele VPN-undernettet til serveren). I Endpoint Host og Endpoint Port skal du indtaste IP-adressen på VPS'en med den port, der tidligere er angivet i henholdsvis ListenPort-direktivet. Tjek rute tilladte IP'er for ruter, der skal oprettes. Og sørg for at udfylde Persistent Keep Alive, ellers vil tunnelen fra VPS'en til routeren blive ødelagt, hvis sidstnævnte står bag NAT.
Herefter kan du gemme indstillingerne, og derefter på siden med listen over grænseflader klikke på Gem og anvend. Om nødvendigt skal du eksplicit starte grænsefladen med knappen Genstart.
Opsætning af en smartphone
Du skal bruge Wireguard-klienten, den er tilgængelig i
Fed skærmbillede fra telefonen
Klik på disketten i hjørnet, tænd den og...
Afslut
Nu kan du få adgang til hjemmeovervågning, ændre routerindstillinger eller gøre hvad som helst på IP-niveau.
Skærmbilleder fra lokalområdet
Kilde: www.habr.com