Zašto se RDP smrzne kada se udaljeno računar 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 zaštitnog zida.
Nalazite se u RDP prozoru, radna površina je na zaslonu i pritišćete Connect u VPN klijentu koji radi na tom udaljenom računaru. 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čunar 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čunar odgovara. NAT, RD Gateway ili balanser opterećenja ispred hosta mogu je prepisati, a povratni put definira izvorna adresa koju udaljeno 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 tablice. 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 taj put na miru. Ako je javna adresa, odgovor mora izaći kroz isto interfejs koje je dovelo zahtjev unutra.
Pročitajte rutu koja odgovara toj krajnjoj točki
Windows bira interfejs 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 interfejsa i sljedeći skok u dva odgovora. Promjena interfejsa 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 interfejs koje je dovelo sesiju unutra?
Ako ne, ispravak pripada profilu ili eksplicitnoj izuzetnoj ruti koju odobri vlasnik VPN politike. Ručno uređivanje tablice rutiranja na produkcijskom hostu tokom incidenta je način na koji privremeno rješenje postaje nedokumentirana konfiguracija.
Pratite promjenu profila zaštitnog zida
Novo interfejs se klasificira kada se pojavi, a klasifikacija odlučuje prema kojem se profilu zaštitnog zida ocjenjuje njegov saobraćaj. Tunelski adapter koji završi u kategoriji Public može tiho zaustaviti dolazni RDP iako tablica 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
Usporedite profil vezan uz tunelsko interfejs s profilima na koje su usmerena pravila Remote Desktop. Pravilo omogućeno samo za Domain i Private ne čini ništa za interfejs 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 interfejs. 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.