SSH na javnu IP adresu WireGuard servera ne radi na Windowsu
Ruta i pravilo firewall-a su dve odvojene odluke. Na Windowsu peer sa /0 uključuje restriktivna pravila, a sopstveni transport tunela je izuzetak.
Tuneli koji se podignu dok SSH na javnu adresu servera prestane da radi izgledaju kao server koji odbija vezu. Na Windowsu je verovatniji uzrok lokalni: AllowedIPs punog tunela od /0 uključuje restriktivna firewall pravila koja dozvoljavaju sopstveni transport tunela i vrlo malo toga drugog. Šifrovani paketi koji stignu na tu adresu ne govore ništa o tome sme li zasebna TCP veza na istu adresu da izađe.
Odvojite javnu adresu endpointa od njegove unutrašnje adrese tunela pre nego što dirnete listu 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 kuda će paket biti poslat, a firewall pravilo odlučuje sme li uopšte biti poslat. Dodavanje rute za javnu IP adresu endpointa zato stvara put koji filter još uvek može blokirati, i upravo tu zbrku stvara ovaj simptom. Na Windowsu je filter deo implementacije, a ne dodatak, pa ga nijedan zapis rute ne menja. Te dve odluke su odvojene i drugde, iako se podrazumevane vrednosti razlikuju.
Zato traceroute do endpointa može uspeti dok SSH pokušaj ne uspe. Prvi nosi servis koji poseduje izuzetak, a drugi ne.
Šta /0 radi na Windowsu
Kad jedan peer ima dozvoljene adrese koje pokrivaju ceo IPv4 prostor, WireGuard for Windows primenjuje restriktivno firewall držanje koje blokira saobraćaj koji bi inače izašao izvan tunela. Sopstveni transport tunelskog servisa je dozvoljen jer VPN inače ne bi mogao da radi. Druga aplikacija na istu javnu adresu ne dobija takvu dozvolu, 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 poljem sa tim nazivom.
Izuzeci menjaju model zaštite
Zamena /0 sa dva poluzadata prefiksa dokumentovani 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 dozvoljenih prefiksa drugi je uobičajeni zaobilazni put, koji produžava listu i menja koja se pravila aktiviraju. Nijedno nije lokalna izmena sa lokalnim efektom. Svako pomera granicu za svaki tok na mašini, ne samo za vezu koju ste popravljali.
Tamo gde je direktan javni SSH zaista potreban, vlasnik profila mora osmisliti i spoljnu rutu i njeno firewall dozvolu, i odlučiti šta se dešava sa nepovezanim saobraćajem kad tunel padne. Zaseban pregled IPv4 i IPv6 takođe tome pripada, jer se pravila izražavaju po familiji. Široki zaobilazni put dodat da spase jednu upravljačku sesiju obično izlaže više od te sesije.
Testirajte izabrani upravljački put
Prvo odlučite treba li upravljanje da putuje unutar tunela ili izvan njega, a zatim testirajte taj izbor, a ne oboje odjednom. Naredbe u nastavku proveravaju adrese klijenta, stanje peera i vezu na svaki cilj. Pokrenite ih sa 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
Uspešan SSH na unutrašnju adresu dokazuje da tunel nosi upravljački saobraćaj i da sopstveni firewall servera prihvata taj saobraćaj iz opsega peerova. Neuspeh na oba cilja problem je na strani servera ili sa ključem, a ne Windows rutiranja. Ako unutrašnja adresa radi, a spoljna ne, lokalno firewall držanje čini upravo ono za šta je osmišljeno. Pročitajte tri rezultata tim redom pre uređivanja profila.
Zabeležite upravljački put, korišćenu adresu i ponašanje kad tunel padne. Ta beleška je ono što sledeću osobu sprečava da proširi zaobilazni put kako bi uštedela pet minuta.