Nalazite se u RDP prozoru, radna površina je na ekranu i pritiskate Connect u VPN klijentu koji radi na tom udaljenom računaru. Nekoliko sekundi kasnije prozor se zamrzne i zatim se zatvori. Tunel je podignut, što je upravo ono što će VPN dnevnik prijaviti, i to je najmanje korisna činjenica u cijelom incidentu. Sesija je prekinuta jer je računar s kojim ste razgovarali promijenio način na koji vam odgovara, zato provjerite povratnu putanju prije nego što dirnete tunel.

Zabilježite krajnju točku koju vaša sesija zaista koristi

Adresa upisana u vaš RDP klijent nije nužno adresa na koju udaljeni računar odgovara. NAT, RD Gateway ili balanser opterećenja ispred hosta mogu je prepisati, a povratnu putanju definiše izvorna adresa koju udaljeni računar vidi na uspostavljenoj vezi. Ako to pogriješite, tražit ćete rutu koja nikada nije bila uključena.

Na udaljenom računaru, prije nego što je VPN povezan, izlistajte uspostavljene sesije i pročitajte adresu partnera iz tabele. Zatim je zapišite negdje izvan tog računara, jer je nećete moći pročitati nakon što sesija padne.

Get-NetTCPConnection -LocalPort 3389 -State Established |
  Select-Object LocalAddress, RemoteAddress, RemotePort

Tretirajte tu adresu kao ono što mora ostati dostupno. Ako je to privatna adresa na upravljačkom VLAN-u, tunel mora ostaviti tu putanju na miru. Ako je javna adresa, odgovor mora izaći kroz isto sučelje koje je dovelo zahtjev unutra.

Pročitajte rutu koja odgovara toj krajnjoj točki

Windows bira sučelje za svako odredište, a Find-NetRoute pokazuje odluku koju bi sada donio. Pokrenite ga na adresi partnera prije povezivanja, zatim ponovo s podignutim tunelom, i uporedite indeks sučelja i sljedeći hop u dva odgovora. Promjena sučelja je cijeli bug u jednom redu izlaza.

Find-NetRoute -RemoteIPAddress 203.0.113.24
Get-NetRoute -DestinationPrefix 0.0.0.0/0 | Sort-Object RouteMetric
Get-VpnConnection -Name "Work VPN" | Select-Object SplitTunneling, Routes

Profil punog tunela instalira zadanu rutu kroz tunel, kako opisuje Windows vodič za VPN rutiranje, pa svaki odgovor sada izlazi kroz VPN i zavisi od toga da li suprotna strana rutira natrag do vašeg klijenta. Profil podijeljenog tunela sigurniji je po defaultu, ali nije imun, jer specifična ruta koja pokriva adresu partnera i dalje može pobijediti fizičku zadanu rutu. U svakom slučaju pitanje je isto: nakon što se tunel podigne, da li se adresa partnera još uvijek razrješava na sučelje koje je dovelo sesiju unutra?

Ako ne, ispravka pripada profilu ili eksplicitnoj izuzetnoj ruti koju odobri vlasnik VPN politike. Ručno uređivanje tabele rutiranja na produkcijskom hostu tokom incidenta je način na koji privremeno rješenje postaje nedokumentovana konfiguracija.

Pratite promjenu profila vatrozida

Novo sučelje se klasifikuje kada se pojavi, a klasifikacija odlučuje prema kojem profilu vatrozida se ocjenjuje njegov promet. Tunelski adapter koji završi u kategoriji Public može tiho zaustaviti dolazni RDP iako tabela rutiranja izgleda savršeno. To je drugi način otkaza i daje drugačiji simptom: ruta je ispravna, paketi stižu, a host odbija vezu.

Get-NetConnectionProfile
Get-NetFirewallProfile | Select-Object Name, Enabled
Get-NetFirewallRule -DisplayGroup "Remote Desktop" | Select-Object Name, Enabled, Profile

Uporedite profil vezan za tunelsko sučelje s profilima na koje su usmjerena pravila Remote Desktop. Pravilo omogućeno samo za Domain i Private ne čini ništa za sučelje klasifikovano kao Public, i nikakva korekcija rute to ne mijenja. Neki VPN klijenti također dizajnom ograničavaju pristup lokalnoj podmreži, što proizvodi isti oblik otkaza iz drugog mehanizma.

Testirajte prijelaz s mjesta s kojeg se možete oporaviti

Izvedite cijeli slijed s izvanpojasne konzole ili drugog upravljačkog puta, ovim redom: potvrdite postojeću sesiju, povežite VPN, otvorite novu sesiju, zatim prekinite VPN i otvorite još jednu. Svaki korak testira drugi prijelaz, a prvi koji ne uspije kaže vam koji je mehanizam odgovoran.

Zakažite vraćanje prije početka, na primjer zakazani zadatak koji izvršava rasdial "Work VPN" /disconnect nakon zadanog intervala. To pretvara izgubljenu sesiju u petominutni prekid umjesto posjete lokaciji, i to je najjeftinije osiguranje u cijeloj proceduri.

Vratite se unutra kada je sesija već nestala

Ako je host već nedostupan, prestanite isprobavati nove RDP veze s istog klijenta i upotrijebite kanal za oporavak koji okruženje već ima: RD Gateway, konzolu hipervizora ili izvanpojasno upravljačko sučelje. Zamolite osobu s pristupom konzoli da pokrene iste komande Find-NetRoute i Get-NetConnectionProfile, kako bi dokazi preživjeli oporavak.

Zatim odlučite trajni aranžman, a ne najbrži. Ili je upravljački put izričito sačuvan VPN profilom, ili se upravljanje seli na kanal koji ne zavisi od zadane rute hosta. Oba su održiva; ruta hosta s nagađanim gatewayem nije. Zapišite koji ste odabrali i zabilježite adresu partnera koja je morala preživjeti.

Povezani članci