Tuneli koji se podignu dok SSH na javnu adresu servera prestane raditi izgledaju kao da server odbija vezu. Na Windowsu je vjerojatniji uzrok lokalni: AllowedIPs punog tunela od /0 uključuje restriktivna firewall pravila koja dopuštaju vlastiti transport tunela i vrlo malo toga drugog. Šifrirani paketi koji stižu 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 dirate popis peerova. Gotovo svaki pokušaj da se to popravi uređivanjem AllowedIPs-a čini politiku slabijom, a ne rutu ispravnom.

Dozvola za rutiranje i dozvola firewall-a nisu ista stvar

Ruta odlučuje kamo će paket biti poslan, a firewall pravilo odlučuje smije li uopće biti poslan. Dodavanje rute za javnu IP adresu endpointa zato stvara put koji filter još uvijek može blokirati, i upravo tu zbrku stvara ovaj simptom. Na Windowsu je filter dio implementacije, a ne dodatak, pa ga nijedan zapis rute ne mijenja. Te dvije odluke odvojene su 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 izuzetak, 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 firewall držanje koje blokira promet koji bi inače izašao izvan tunela. Vlastiti transport 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 izuzetak pripada transportu, a ne adresi. Napomene o Windows umrežavanju opisuju to ponašanje i povezanu kontrolu u uređivaču.

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

Izuzeci mijenjaju model zaštite

Zamjena /0 s dva poluzadana prefiksa dokumentirani je način da se zadrži široko rutiranje bez restriktivne semantike, i to je drugač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 firewall dopuštenje 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. Zapovijedi 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 firewall servera prihvaća taj promet iz raspona peerova. Neuspjeh na oba cilja problem je na strani servera ili s ključem, a ne Windows rutiranja. Ako unutarnja adresa radi, a vanjska ne, lokalno firewall držanje č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