Lokální přesměrování SSH, nebo plné VPN pro jednu obrazovku Macu?
Pro jednu obrazovku na jednom hostiteli je lokální přesměrování SSH přes loopback menší než VPN. Zde je, kdy stačí, co šifruje a kdy ho přestat používat.
Potřebujete vidět obrazovku jednoho Macu ze svého počítače, Mac sedí za hostitelem, ke kterému se už umíte připojit přes SSH, a otázkou je, zda si to zaslouží VPN. Obvykle ne. Jedno lokální přesměrování přenáší jeden port TCP přes relaci SSH, kterou už máte, a pro jednu obrazovku na jednom hostiteli je to menší a lépe auditovatelné uspořádání než směrování celé sítě.
Rozhodují o tom tři podmínky a kterákoli z nich vás může posunout k řízené VPN.
Rozhodují o tom tři podmínky
První je rozsah: jedna služba na jednom hostiteli, nebo několik hostitelů a několik portů. Druhá je, zda je každý přeskok mezi bastionem a cílem už důvěryhodný, protože SSH chrání jen segment, který ukončuje. Třetí je, kdo musí uspořádání podporovat poté, co ho postavíte, protože ručně dělaný tunel obvykle přežije člověka, který mu rozuměl. Pojmenujte toho člověka dřív, než začnete, a napište příkaz na místo, kde ho najde. Nezdokumentované přesměrování je budoucí incident s odloženým datem začátku.
Jsou-li odpovědi „jedna“, „ano“ a „já, zatím“, je přesměrování správný nástroj. Změní-li se kterákoli odpověď, podporovaný návrh vzdáleného přístupu vyjde za rok levněji než přezkum incidentu, který následuje po nezdokumentovaném tunelu.
Přesměrujte jeden port, ne síť
Lokální přesměrování otevře naslouchající socket na vašem počítači a každé spojení přeposílá přes server SSH k cíli, na který tento server dosáhne. Pro Mac, jehož služba sdílení obrazovky naslouchá na TCP 5900, a bastion, který umí přeložit mac.corp.example, je příkaz krátký a záměrně úzký. Každá volba v něm existuje proto, aby uspořádání zůstalo malé: žádný shell, žádný naslouchač na všech rozhraních, žádný démon. Čtěte ho jako prohlášení o rozsahu, ne jako recept.
ssh -N -o ExitOnForwardFailure=yes -L 127.0.0.1:15900:mac.corp.example:5900 [email protected]Navázání naslouchače na 127.0.0.1 ho drží mimo všechna ostatní rozhraní. To není formalita: přesměrování navázané na všechna rozhraní promění váš notebook v otevřený přenos do podnikové sítě pro kohokoli na stejné kavárenské Wi-Fi. Pokud je port už obsazený, vyberte jiný vysoký port a aktualizujte prohlížeč; nezastavujte nesouvisející službu, aby příklad pasoval.
Účet na bastionu také potřebuje oprávnění přesměrovávat na tento cíl. Některé zpevněné konfigurace SSH přesměrování portů úplně vypínají a některé ho omezují direktivou permit-listen nebo permit-open. Přečtěte si zásady serveru, než budete předpokládat, že odmítnutý kanál znamená špatné heslo.
Co SSH šifruje a kde to končí
Relace SSH chrání provoz z vašeho Macu na bastion a přesměrování nese protokol VNC uvnitř této relace, aniž by mu rozumělo. Jakmile spojení opustí bastion směrem k cíli, už není uvnitř vaší relace SSH. Jakákoli ochrana na tomto posledním přeskoku patří cílovému protokolu a vlastním kontrolám privátní sítě.
Proto se o prostém posledním přeskoku VNC nemá mluvit jako o šifrovaném od konce ke konci jen proto, že první přeskok použil SSH. Popisujte segmenty poctivě: silný od klienta k bastionu a pak to, co cíl podporuje. Pokud je požadavkem, aby celá cesta byla šifrovaná jedním mechanismem, přesměrování to nesplňuje.
Ověřování v cíli je opět samostatná věc. Účet SSH neposkytuje přihlášení do macOS a služba sdílení obrazovky si stále žádá vlastní přihlašovací údaje a stále uplatňuje vlastní seznam přístupu. Lokální naslouchač, který přijme spojení, nic nedokazuje o tom, zda vzdálená služba relaci přijme.
Kdy je plná VPN správná volba
Zvolte VPN, když úkol potřebuje víc než jeden port: funkce správy a výkazů Apple Remote Desktop používají další provoz TCP a UDP, který jedno TCP přesměrování nepřenese. Přesměrování není částečná implementace celého produktu; je to jiný, menší nástroj.
Zvolte ji, když se několik správců připojuje z měnících se míst, protože řízený profil distribuuje trasy, přihlašovací údaje a zásady, aniž by si každý vymýšlel příkazový řádek. Zvolte ji, když musí auditní stopa ukázat, kdo se kam připojil, protože relace SSH na uživatele a sdílené lokální přesměrování zanechávají velmi odlišné záznamy.
Zvolte ji nakonec, když cílová síť nemá být z notebooku vůbec dosažitelná bez vlastní brány organizace. Osobní přesměrování tuto bránu obchází už z principu, a právě proto patří do záznamu změn, ne do historie shellu.
Nechte přesměrování hlasitě selhat
Použijte ExitOnForwardFailure=yes, aby neúspěšné navázání ukončilo relaci, místo aby nechalo shell, který vypadá připojený a nic nepřesměrovává. Ponechte ověřování klíče hostitele zapnuté a dejte přednost klíči nebo agentovi před heslem. Pak otestujte přesnou URL, kterou prohlížeč použije, protože funkční relace SSH a funkční spojení s obrazovkou jsou dva různé výsledky.
Pro nativního klienta na macOS se k prohlížeči dostanete přes lokální URL: open "vnc://127.0.0.1:15900". Pokud se okno otevře a vzdálený hostitel ověření odmítne, tunel je v pořádku a problém je v cíli. Pokud se okno nikdy neotevře, problém je v naslouchači nebo portu.
Až skončíte, relaci zastavte a zapište port, bastion, cíl a zásady účtu. Přesměrování, které nikdo nezdokumentoval, je po šesti měsících nerozeznatelné od zadních vrátek, a to je nejsilnější argument držet ho malé, pojmenované a dočasné.