Du behöver se en Macs skärm från din egen maskin, Macen sitter bakom en värd som du redan kan SSH:a till, och frågan är om det förtjänar ett VPN. Oftast inte. En enda lokal vidarebefordran bär en TCP-port genom SSH-sessionen du redan har, och för en skärm på en värd är det en mindre och mer granskningsbar ordning än att routa ett helt nätverk.

Tre villkor avgör det, och vilket som helst av dem kan knuffa dig mot det hanterade VPN:et.

Tre villkor avgör det

Det första är omfattning: en tjänst på en värd, eller flera värdar och flera portar. Det andra är om varje hopp mellan bastionen och målet redan är betrott, eftersom SSH bara skyddar det segment det avslutar. Det tredje är vem som måste stötta ordningen efter att du byggt den, eftersom en handbyggd tunnel tenderar att överleva personen som förstod den. Namnge den personen innan du börjar, och skriv kommandot på en plats där hen kan hitta det. En odokumenterad vidarebefordran är en framtida incident med uppskjutet startdatum.

Om svaren är ”en”, ”ja” och ”jag, tills vidare” är vidarebefordran rätt verktyg. Om något svar ändras är en stödd fjärråtkomstdesign billigare över ett år än incidentgenomgången som följer en odokumenterad tunnel.

Vidarebefordra en port, inte nätverket

En lokal vidarebefordran öppnar en lyssnare på din maskin och slussar varje anslutning genom SSH-servern till ett mål som den servern kan nå. För en Mac vars skärmdelningstjänst lyssnar på TCP 5900, och en bastion som kan slå upp mac.corp.example, är kommandot kort och medvetet smalt. Varje val i det finns för att hålla ordningen liten: ingen shell, ingen lyssnare på alla gränssnitt, ingen daemon. Läs det som en omfattningsdeklaration, inte som ett recept.

ssh -N -o ExitOnForwardFailure=yes -L 127.0.0.1:15900:mac.corp.example:5900 [email protected]

Att binda lyssnaren till 127.0.0.1 håller den borta från alla andra gränssnitt. Det är ingen formalitet: en vidarebefordran bunden till alla gränssnitt gör din laptop till en öppen relä in i företagsnätet för alla på samma kafé-Wi-Fi. Om porten redan används, välj en annan hög port och uppdatera visaren; stoppa inte en orelaterad tjänst för att exemplet ska passa.

Kontot på bastionen behöver också tillstånd att vidarebefordra till det målet. Vissa härdade SSH-konfigurationer stänger av portvidarebefordran helt, och vissa begränsar den med ett permit-listen- eller permit-open-direktiv. Läs serverns policy innan du antar att en avvisad kanal betyder att lösenordet var fel.

Vad SSH krypterar, och var det stannar

SSH-sessionen skyddar trafik från din Mac till bastionen, och vidarebefordran bär VNC-protokollet inne i den sessionen utan att förstå det. När anslutningen lämnar bastionen mot målet är den inte längre inne i din SSH-session. Vilket skydd som än finns på det sista hoppet tillhör målprotokollet och det privata nätets egna kontroller.

Därför bör ett vanligt sista VNC-hopp inte beskrivas som ändpunkt-till-ändpunkt-krypterat bara för att det första hoppet använde SSH. Beskriv segmenten ärligt: starkt från klient till bastion, och sedan vad målet stöder. Om kravet är att hela vägen ska krypteras av en enda mekanism uppfyller vidarebefordran inte det.

Autentisering på målet är återigen en egen sak. SSH-kontot ger ingen macOS-inloggning, och skärmdelningstjänsten ber fortfarande om sina egna uppgifter och tillämpar fortfarande sin egen åtkomstlista. En lokal lyssnare som accepterar en anslutning bevisar inget om huruvida tjänsten på distans släpper in sessionen.

När det fulla VPN:et är rätt val

Välj VPN när uppgiften kräver mer än en port: Apple Remote Desktops hanterings- och rapporteringsfunktioner använder extra TCP- och UDP-trafik som en enda TCP-vidarebefordran inte bär. En vidarebefordran är inte en partiell implementering av hela produkten; det är ett annat, mindre verktyg.

Välj den när flera administratörer ansluter från skiftande platser, eftersom en hanterad profil distribuerar rutter, uppgifter och policy utan att varje person hittar på en kommandorad. Välj den när granskningsspåret måste visa vem som anslöt till vad, eftersom en SSH-session per användare och en delad lokal vidarebefordran lämnar mycket olika poster.

Välj den, till sist, när målnätverket inte alls ska gå att nå från en laptop utan organisationens egen port. En personlig vidarebefordran kringgår den porten av design, och det är just därför den hör hemma i ett ändringsregister och inte i en shellhistorik.

Låt vidarebefordran misslyckas högt

Använd ExitOnForwardFailure=yes så att en misslyckad bindning stoppar sessionen i stället för att lämna ett skal som ser anslutet ut och inte vidarebefordrar något. Håll värdnyckelverifieringen på, och föredra en nyckel eller agent framför ett lösenord. Testa sedan den exakta URL som visaren kommer att använda, eftersom en fungerande SSH-session och en fungerande skärmanslutning är två olika resultat.

För den inbyggda klienten på macOS nås visaren via en lokal URL: open "vnc://127.0.0.1:15900". Om fönstret öppnas och värden på distans avvisar autentiseringen är tunneln i ordning och problemet ligger på målet. Om fönstret aldrig öppnas ligger problemet i lyssnaren eller porten.

Stoppa sessionen när du är klar, och skriv ned porten, bastionen, målet och kontopolicyn. En vidarebefordran som ingen dokumenterat går sex månader senare inte att skilja från en bakdörr, och det är det starkaste argumentet för att hålla den liten, namngiven och tillfällig.

Relaterade artiklar