Gradnja tunela znotraj gosta in gradnja na gostitelju oboje spremenita naslov, ki ga poroča brskalnik, in tam se podobnost konča. Tunel v lasti gosta hrani svoje ključe, svojo privzeto pot in svoj razreševalnik v jedru gosta, medtem ko gostitelj posreduje šifrirane pakete na en oddaljen naslov. Tunel v lasti gostitelja je zrcalna slika: odjemalec gostitelja drži sejo in uporablja poti ter politiko, gost pa si izposodi, kar pride ven. Če izberete napačnega lastnika, vas vsak poznejši simptom pošlje na napačen stroj. Dva ukaza razrešita vprašanje v približno minuti, preostanek tega priročnika pa je, kaj storiti z odgovorom.

Določite lastnika, preden se dotaknete odjemalca

Pravilo govori o tem, kje nastane šifrirano besedilo, ne o tem, kateri stroj prikazuje ikono VPN. Če ga ustvari gost, gost potrebuje delujočo pot do strežnika VPN in nič drugega od gostitelja. Če ga ustvari gostitelj, mora gostova pot skozi gostitelja preživeti vsako politiko, ki jo odjemalec gostitelja vsili lokalnemu prometu.

Tri vprašanja običajno izberejo namestitev namesto vas. Mora promet gosta preživeti poslovnega odjemalca na gostitelju? Potem tunel pripada gostu. Potrebuje več gostov ene poverilnice in en izhodni naslov? Potem pripada gostitelju, s posredovanjem, ki je namerno nastavljeno. Mora promet gosta ostati povsem zunaj VPN gostitelja? Potem je tunel v gostu edina ureditev, ki to da že po zgradbi.

Odgovor zapišite v eno vrstico ob imenu VM: guest-owned ali host-owned. V laboratoriju s šestimi stroji ta zapisek prihrani več časa kot kateri koli korak spodaj, ker vam prepreči iskanje napake v tunelu, ki ga nikoli ni bilo v stroju, v katerega ste se prijavili.

WSL1 in WSL2 sta nasprotna primera

WSL1 ni navidezni stroj, zato vprašanje namestitve večinoma izhlapi. Njegove Linux binarne datoteke tečejo proti omrežnemu skladu Windows skozi prevajalno plast, Linux odjemalec VPN pa nima neodvisnih vmesnikov za nastavljanje. Deluje ureditev s tunelom na strani Windows, pri kateri distribucija uporabi rezultat, ne da bi karkoli imela.

WSL2 je obratno. Poganja pravo jedro v lahki pomožni VM za virtualnim stikalom Hyper-V, njegov naslovni prostor pa se prevede z NAT prek vmesnika na strani gostitelja. Zato se Linux odjemalec v distribuciji obnaša kot na fizičnem Linux zaboju: ustvari tun0 ali wg0, namesti svoje poti in deluje. Napaka živi na strani gostitelja. Ko se odjemalec VPN za Windows poveže s politiko, ki blokira promet v lokalnih omrežjih, obravnava podomrežje WSL2 kot nezanesljivo lokalno omrežje in prereže pot NAT. Distribucija nato izgubi DNS in izhodni dostop, medtem ko je njen lastni tunel še zdrav: wg show poroča o rokovanju, ip route izgleda pravilno in curl obvisi.

Katero popravilo lahko uporabite, je odvisno od gradnje Windows. Starejše je izjema v odjemalcu gostitelja za podomrežje WSL, dodana pod nastavitvami za lokalno omrežje ali razdeljen tunel odjemalca. Novejše, v gradnjah Windows 11, ki ga podpirajo, je zrcalno omreženje: vstavite networkingMode=mirrored v razdelek [wsl2] datoteke %UserProfile%\.wslconfig, zaženite wsl --shutdown in distribucija bo delila vmesnike gostitelja namesto zasebnega podomrežja NAT. Zrcalni način spremeni tudi vedenje localhosta in vhodnih vrat, zato ga obravnavajte kot selitev in ne kot stikalo.

NAT, most in kaj lahko gostitelj vidi

Pod NAT so paketi tunela gosta naslovljeni na javni naslov strežnika VPN in zapustijo vmesnik gostitelja kot šifriran UDP ali TCP. Gostitelj vidi en tok in njegovo število bajtov, ničesar o ciljih znotraj njega. Pod mostovnim vmesnikom ima gost svojo identiteto sloja 2 v fizičnem LAN, vzame svoj najem DHCP in za vsako politiko, ki temelji na MAC, izgleda kot druga naprava. Noben način ne dovoli gostitelju brati tovora tunela; mostovni gost je preprosto veliko bolj viden za omrežje okoli sebe.

Tudi izolacija ima spodnjo mejo. Gost se ne more skriti pred strojem, ki ima v lasti njegov pomnilnik, in kdor nadzira gostitelja, lahko bere ključe iz RAM gosta. Tunel v gostu vam da mejo usmerjanja in mejo proti zlonamerni programski opremi, ne zaščite pred osebo, ki drži prenosnik. Dokumentirane načine vmesnika velja imeti odprte med izbiranjem, saj način spremeni tako to, kar vidi gostitelj, kot to, kar vidi LAN.

Priročnik: namestite, nastavite, dokažite

Zaženite te štiri kontrole po vrsti v sveži gostovi lupini in se ustavite pri prvi, ki se ne ujema z zapisanim lastnikom.

  1. ip route get 1.1.1.1, ki vrne tun0 ali wg0, pomeni last gosta, eth0 z zasebnim naslednjim skokom pa last gostitelja.
  2. resolvectl query example.com, ali preberite /etc/resolv.conf tam, kjer gost ne poganja storitve razreševalnika. Tunel, ki nosi promet, a ne DNS, je najpogostejše na pol nastavljeno stanje.
  3. Primerjajte izhode: curl -4 -s https://ifconfig.me v gostu proti curl.exe -4 -s https://ifconfig.me na gostitelju. Različni naslovi pomenijo, da ima tunel v lasti gost, gostitelj v VPN z gostom, ki kaže domačega ponudnika, pa je primer, ko ni bilo podedovanega ničesar.
  4. Ponovite oboje s -6. Tunel samo za v4 pušča v6, razen če ga odjemalec blokira ali usmerja, in veliko odjemalcev privzeto pusti v6 na fizičnem vmesniku.

Pri zasnovi s prehodom na gostitelju, kjer si več gostov deli en tunel, mora gostitelj posredovati in prevajati. Na Linux gostitelju so to trije deli in gost se tiho vrne na svojo običajno pot, ko katerega od njih ni:

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE
iptables -A FORWARD -i virbr0 -o wg0 -j ACCEPT
iptables -A FORWARD -i wg0 -o virbr0 -m state --state RELATED,ESTABLISHED -j ACCEPT

Na strani WireGuard mora AllowedIPs partnerja gostitelja vsebovati podomrežje gostov, na primer 192.168.122.0/24, sicer povratni paketi nikoli ne prispejo in nastavitev izgleda kot težava požarnega zidu. Gostitelj Windows doseže enak rezultat s souporabo internetne povezave ali pravilom NAT na stikalu Hyper-V in potrebuje enako preverjanje povratne poti.

Ko je postavitev še odprta, ta tabela pokriva najpogostejše ureditve:

SituationOwnerCheck first
One VM, host also on a corporate VPNGuestDoes the host client block local networks?
Six lab VMs, one exit addressHost plus forwardingip_forward, NAT rule, server AllowedIPs
Malware or research VMGuest, NATSnapshot age and resolver state
Bridged VM on an office LANGuestDHCP lease and port security

Dva tunela, dva gosta in spori med njima

Ko potrebujete dva izhoda hkrati, je vzorec, ki zdrži, en tunel na gosta. Vsaka VM obdrži svojo privzeto pot in razreševalnik, gostitelj ostane v običajnem omrežju in tunela se nikoli ne prepirata za isto usmerjevalno tabelo. Povezava dveh gostov z mostom tudi ne združi njunih poti: navidezno omrežje ponuja pot in vsakemu odjemalcu je treba še vedno povedati, da lahko ta lokalni promet obide tunel.

Poganjanje tunela gostitelja in tunela gosta skupaj je zakonito in namerno gnezdenje je včasih prav to, kar želite, pri čemer gost izstopi skozi svoj tunel in ta tunel skozi gostiteljevega. V izpad to spremeni dejstvo, da nihče ni zapisal, katera končna točka se doseže skozi kateri sloj. Vodite seznam z dvema stolpcema s ciljem in lastnikom in spor poti postane iskanje namesto popoldneva odkrivanja.

Preverite in nato pustite obnovitev pri lastniku

Preizkusite od znotraj gosta s svežim procesom aplikacije: promet, razreševanje imen, obe družini naslovov in kaj se zgodi, ko tunel pade. Ikona VPN na gostitelju ne pove ničesar o pokritosti gosta in to je najpogostejša lažna potrditev na celem tem področju.

Obnovitev pripada tudi lastniku. Tunel v lasti gosta obnovi lastni odjemalec gosta in poti, ki jih je zapisal. Zasnova v lasti gostitelja se obnovi z zagonskim zaporedjem gostitelja, pravila posredovanja pa ne preživijo ponovnega zagona, razen če jih znova uporabi enota ali zagonska opravilo. Obnovljena posnetek je uvajanje, ne razveljavitev, ker vrne stare poverilnice in stare poti skupaj z diskom. Preden delo razglasite za končano, potrdite, da lastnik še vedno ustreza zapisani vrstici, da se DNS in obe družini naslovov razrešita znotraj gosta, da mrtev tunel pusti uporabno omrežje namesto črne luknje in da ponovni zagon ali obnovitev posnetka ponovi isto stanje.

Sorodni članki