Avarinis išjungimas ar LAN prieiga? Du atsakymai WireGuard
„Windows“ klientas blokuoja ne tuneliu einantį srautą, kai profilis nurodo 0.0.0.0/0. Nuspręskite, kurios savybės jums reikia, ir atitinkamai išreikškite numatytąją reikšmę.
Rankos paspaudimas baigiasi, naršymas veikia, o spausdintuvas, NAS ir vietiniai SSH mazgai dingsta. „Windows“ kliente tai paprastai visai ne maršrutizavimo gedimas: lygiavertis mazgas, kurio leidžiami priešdėliai apima pažodinę numatytąją reikšmę, įjungia Blokuoti ne tuneliu einantį srautą, o ši parinktis įgyvendinta kaip ugniasienės taisyklės, kurios išmeta paketus, išeinančius per bet kurią kitą sąsają. Maršrutų lentelė vis dar rodo vietinį potinklį kaip tiesioginę jungtį, todėl simptomas atrodo kaip melas. Ką daryti, sprendžia trys sąlygos, ir tik viena jų susijusi su maršrutizavimu.
Du gedimai nešioja tą patį simptomą
Pirmasis gedimas – kliento fail-closed režimas, o jo požymis yra tai, kad viskas už tunelio sustoja, nors pats tunelis veikia nepriekaištingai. Antrasis – tikra pasiekiamumo problema: trūkstamas maršrutas, trūkstamas įrašas serveryje potinkliui už kliento arba du tinklai, turintys tą patį adresų diapazoną. Abiem atvejais gaunama mašina, kuri gali naršyti ir negali spausdinti, o jų sprendimai priešingi, todėl diagnozė turi būti prieš konfigūraciją.
Skiriamasis stebėjimas – ar vietinis potinklis dar yra maršrutų lentelėje, kai srautas į jį išmetamas.
Trys sąlygos lemia atsakymą
Pirma, ar šiai mašinai reikia fail-closed? Jei atsakymas „taip“, nutrūkęs tunelis turi sustabdyti srautą, o ne leisti jam grįžti į fizinę sąsają, ir šis reikalavimas svarbesnis už vietinį patogumą. Antra, ar vietiniai įrenginiai turi likti pasiekiami, kol tunelis veikia? Spausdinimas, tinklo saugykla ir vietinės valdymo konsolės yra įprastos priežastys, ir tai teisėti reikalavimai, o ne išimtys, už kurias reikia atsiprašinėti. Trečia, ar profilis numatytąją reikšmę išreiškia kaip pažodinį 0.0.0.0/0? Būtent ši detalė suaktyvina kliento taisykles, ir ją galima redaguoti.
Atsakykite į šiuos tris raštu prieš liesdami profilį, nes kiekvienas atsakymas nurodo kitą konfigūraciją.
Pasirinkite fail-closed ir atsisakykite LAN
Jei nuotėkis svarbesnis už vietinį pasiekiamumą, palikite pažodinę numatytąją reikšmę ir įjunkite Blokuoti ne tuneliu einantį srautą. Tai nuosekli pozicija: mašina laikoma įrenginiu, kuris yra arba tunelio viduje, arba neprisijungęs, o vietinės paslaugos pasiekiamos iš kito įrenginio arba per tunelį, jei serveris jas maršrutizuoja. Kaina reali ir ją reikėtų nurodyti diegimo pastabose, o ne palikti tai atrasti žmogui, kuriam reikia spausdinti.
Tai teisingas pasirinkimas mašinoms, kurios atlieka darbą, neturintį pasirodyti kavinės tinkle, kai tunelis nutrūksta. Tai bloga numatytoji reikšmė naminiam nešiojamajam kompiuteriui, kuriam taip pat reikia skaitytuvo.
Pasirinkite LAN prieigą ir išreikškite numatytąją reikšmę kitaip
Jei vietiniai įrenginiai turi likti pasiekiami, išreikškite tą pačią aprėptį be pažodinio numatytojo priešdėlio. Du pusiniai priešdėliai apima kiekvieną IPv4 adresą, atitinkama pora apima IPv6, o klientas nebeįterpia blokuojančių taisyklių, nes ieškomos eilutės nėra.
[Peer]
AllowedIPs = 0.0.0.0/1
AllowedIPs = 128.0.0.0/1
AllowedIPs = ::/1
AllowedIPs = 8000::/1
Endpoint = vpn.example.net:51820
Nuėmus tą varnelę klientas įrašo tas pačias dvi poras į profilį, todėl sugeneruoto failo palyginimas su aukščiau pateiktu bloku yra greitas būdas patvirtinti mechanizmą, o ne jį spėlioti. Iš to kyla dvi pasekmės. Aprėptis identiška, todėl niekas kitas tunelyje nesikeičia. Apsauga neidentiška: kai taisyklių nebelieka, nutrūkęs tunelis palieka mašiną su fizine sąsaja, ir būtent to fail-closed ir siekė išvengti.
Patikrinkite abu kitus įtariamuosius bet kokiu atveju
Išsiaiškinus ugniasienės klausimą, patvirtinkite, kad vietinis potinklis tikrai maršrutizuojamas ir kad tolimasis galas žino apie viską už šio kliento. Serveriui, kuris turi pasiekti LAN už kliento, to priešdėlio reikia kliento leidžiamajame sąraše prie koncentratoriaus; praleiskite jį, ir koncentratorius negalės parinkti lygiaverčio mazgo tiems adresams, ir jokia kliento konfigūracija jo nesukurs.
Get-NetConnectionProfile | Select-Object Name, InterfaceAlias, NetworkCategory
Get-NetFirewallProfile | Select-Object Name, Enabled, DefaultOutboundAction
route print 0.0.0.0
Tinklo kategorija svarbesnė, nei žmonės tikisi: naujai sukurtas tunelio adapteris, klasifikuotas kaip viešas, pakeičia, kurios taisyklės jam taikomos, ir rezultatas gali atrodyti kaip ugniasienės blokavimas tolimajame gale. Maršrutų išvestis parodo, ar numatytoji reikšmė apskritai yra, o tai atskiria politikos problemą nuo trūkstamo maršruto.
Tada vienoje sesijoje išbandykite tris dalykus: internetą, vieną vietinį mazgą pagal adresą ir vieną mazgą per tunelį. Rankos paspaudimas įrodo tik tai, kad raktai sutampa, todėl politiką parodo būtent trys testai. Jei vietinis mazgas vis dar atsisako nuėmus parinktį, likę įtariamieji yra maršrutas, tolimojo galo leidžiamasis sąrašas ir pasikartojantis potinklis, tokia tvarka.