Tuneli koji se podignu dok SSH na javnu adresu poslužitelja prestane raditi izgledaju kao poslužitelj koji odbija vezu. Na Windowsu je vjerojatniji uzrok lokalni: AllowedIPs punog tunela od /0 uključuje restriktivna pravila vatrozida koja dopuštaju vlastiti prijenos tunela i vrlo malo toga drugoga. Šifrirani paketi koji stignu na tu adresu ne govore ništa o tome smije li zasebna TCP veza na istu adresu izaći.

Odvojite javnu adresu endpointa od njegove unutarnje adrese tunela prije nego dirnete popis peerova. Gotovo svaki pokušaj da se to popravi uređivanjem AllowedIPs-a čini politiku slabijom, a ne rutu ispravnom.

Dozvola za usmjeravanje i dozvola vatrozida nisu ista stvar

Ruta odlučuje kamo će paket biti poslan, a pravilo vatrozida odlučuje smije li uopće biti poslan. Dodavanje rute za javnu IP adresu endpointa zato stvara put koji filtar još uvijek može blokirati, i upravo tu zbrku stvara ovaj simptom. Na Windowsu je filtar dio implementacije, a ne dodatak, pa ga nijedan zapis rute ne mijenja. Te su dvije odluke odvojene i drugdje, iako se zadane vrijednosti razlikuju.

Zato traceroute do endpointa može uspjeti dok SSH pokušaj ne uspije. Prvi nosi servis koji posjeduje iznimku, a drugi ne.

Što /0 radi na Windowsu

Kad jedan peer ima dopuštene adrese koje pokrivaju cijeli IPv4 prostor, WireGuard for Windows primjenjuje restriktivno držanje vatrozida koje blokira promet koji bi inače izašao izvan tunela. Vlastiti prijenos tunelskog servisa je dopušten jer VPN inače ne bi mogao raditi. Druga aplikacija na istu javnu adresu ne dobiva takvo dopuštenje, jer iznimka pripada prijenosu, a ne adresi. Napomene o Windows umrežavanju opisuju to ponašanje i povezanu kontrolu u uređivaču.

Ta su pravila mehanizam iza izraza kill switch. Aktiviraju se oblikom konfiguracije, a ne potvrdnim okvirom s tim nazivom.

Iznimke mijenjaju model zaštite

Zamjena /0 s dva poluzadana prefiksa dokumentirani je način da se zadrži široko usmjeravanje bez restriktivne semantike, i to je drukčiji model zaštite, a ne kraći zapis. Oduzimanje adrese endpointa od dopuštenih prefiksa drugi je uobičajeni zaobilazni put, koji produljuje popis i mijenja koja se pravila aktiviraju. Nijedno nije lokalna izmjena s lokalnim učinkom. Svako pomiče granicu za svaki tok na stroju, ne samo za vezu koju ste popravljali.

Tamo gdje je izravni javni SSH doista potreban, vlasnik profila mora osmisliti i vanjsku rutu i njezino dopuštenje vatrozida te odlučiti što se događa s nepovezanim prometom kad tunel padne. Zaseban pregled IPv4 i IPv6 također tome pripada, jer se pravila izražavaju po obitelji. Široki zaobilazni put dodan da spasi jednu upravljačku sesiju obično izlaže više od te sesije.

Testirajte odabrani upravljački put

Prvo odlučite treba li upravljanje putovati unutar tunela ili izvan njega, a zatim testirajte taj izbor, a ne oboje odjednom. Naredbe u nastavku provjeravaju adrese klijenta, stanje peera i vezu na svaki cilj. Pokrenite ih s Windows klijenta dok je tunel podignut.

ipconfig | findstr /i "WireGuard IPv4"
wg show
ssh -v [email protected]
Test-NetConnection 203.0.113.9 -Port 22

Uspješan SSH na unutarnju adresu dokazuje da tunel nosi upravljački promet i da vlastiti vatrozid poslužitelja prihvaća taj promet iz raspona peerova. Neuspjeh na oba cilja problem je na strani poslužitelja ili s ključem, a ne Windows usmjeravanja. Ako unutarnja adresa radi, a vanjska ne, lokalno držanje vatrozida čini upravo ono za što je osmišljeno. Pročitajte tri rezultata tim redom prije uređivanja profila.

Zabilježite upravljački put, korištenu adresu i ponašanje kad tunel padne. Ta bilješka je ono što sljedeću osobu sprječava da proširi zaobilazni put kako bi uštedjela pet minuta.

Povezani članci