Zašto se RDP smrzne kada se udaljeno računalo spoji na VPN
VPN uspije, a radna površina se smrzne: tunel je promijenio povratni put vaše sesije. Najprije zabilježite adresu partnera, rutu i profil vatrozida.
Nalazite se u RDP prozoru, radna površina je na zaslonu i pritišćete Connect u VPN klijentu koji radi na tom udaljenom računalu. Nekoliko sekundi kasnije prozor se smrzne i zatim se zatvori. Tunel se podigao, što je upravo ono što će VPN dnevnik prijaviti, i to je najmanje korisna činjenica u cijelom incidentu. Sesija je prekinuta jer je računalo s kojim ste razgovarali promijenilo način na koji vam odgovara, zato provjerite povratni put 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 udaljeno računalo odgovara. NAT, RD Gateway ili balanser opterećenja ispred hosta mogu je prepisati, a povratni put definira izvorna adresa koju udaljeno računalo vidi na uspostavljenoj vezi. Ako to pogriješite, tražit ćete rutu koja nikada nije bila uključena.
Na udaljenom računalu, prije nego što je VPN povezan, izlistajte uspostavljene sesije i pročitajte adresu partnera iz tablice. Zatim je zapišite negdje izvan tog računala, 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 taj put 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 ponovno s podignutim tunelom, i usporedite indeks sučelja i sljedeći skok u dva odgovora. Promjena sučelja je cijeli bug u jednom retku 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 usmjeravanje, pa svaki odgovor sada izlazi kroz VPN i ovisi o tome usmjerava li suprotna strana natrag prema vašem klijentu. 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, razrješava li se adresa partnera još uvijek na sučelje koje je dovelo sesiju unutra?
Ako ne, ispravak pripada profilu ili eksplicitnoj izuzetnoj ruti koju odobri vlasnik VPN politike. Ručno uređivanje tablice usmjeravanja na produkcijskom hostu tijekom incidenta je način na koji privremeno rješenje postaje nedokumentirana konfiguracija.
Pratite promjenu profila vatrozida
Novo sučelje se klasificira kada se pojavi, a klasifikacija odlučuje prema kojem se profilu vatrozida ocjenjuje njegov promet. Tunelski adapter koji završi u kategoriji Public može tiho zaustaviti dolazni RDP iako tablica usmjeravanja 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
Usporedite profil vezan uz 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 klasificirano 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
Provedite 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 petminutni prekid umjesto posjeta lokaciji, i to je najjeftinije osiguranje u cijelom postupku.
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 naredbe Find-NetRoute i Get-NetConnectionProfile, kako bi dokazi preživjeli oporavak.
Zatim odlučite trajni raspored, a ne najbrži. Ili je upravljački put izričito sačuvan VPN profilom, ili se upravljanje seli na kanal koji ne ovisi o zadanoj ruti 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.