Potrebujete vidieť obrazovku jedného Macu zo svojho počítača, Mac stojí za hostiteľom, ku ktorému sa už viete pripojiť cez SSH, a otázka je, či si to zaslúži VPN. Zvyčajne nie. Jedno lokálne presmerovanie prenáša jeden port TCP cez reláciu SSH, ktorú už máte, a pre jednu obrazovku na jednom hostiteľovi je to menšie a ľahšie auditovateľné usporiadanie než smerovanie celej siete.

Rozhodujú o tom tri podmienky a ktorákoľvek z nich vás môže posunúť k spravovanému VPN.

Rozhodujú o tom tri podmienky

Prvá je rozsah: jedna služba na jednom hostiteľovi alebo viac hostiteľov a viac portov. Druhá je, či je každý skok medzi bastionom a cieľom už dôveryhodný, pretože SSH chráni len segment, ktorý ukončuje. Tretia je, kto musí usporiadanie podporovať potom, ako ho postavíte, lebo ručne robený tunel zvyčajne prežije človeka, ktorý mu rozumel. Pomenujte toho človeka predtým, ako začnete, a napíšte príkaz na miesto, kde ho nájde. Nezdokumentované presmerovanie je budúci incident s odloženým dátumom začiatku.

Ak sú odpovede „jeden“, „áno“ a „ja, zatiaľ“, presmerovanie je správny nástroj. Ak sa zmení ktorákoľvek odpoveď, podporovaný návrh vzdialeného prístupu vyjde za rok lacnejšie než preskúmanie incidentu, ktoré nasleduje po nezdokumentovanom tuneli.

Presmerujte jeden port, nie sieť

Lokálne presmerovanie otvorí naslúchajúci socket na vašom počítači a každé spojenie preposiela cez server SSH k cieľu, na ktorý ten server dosiahne. Pre Mac, ktorého služba zdieľania obrazovky naslúcha na TCP 5900, a bastion, ktorý vie preložiť mac.corp.example, je príkaz krátky a zámerne úzky. Každá voľba v ňom existuje preto, aby usporiadanie zostalo malé: žiadny shell, žiadny naslúchajúci socket na všetkých rozhraniach, žiadny démon. Čítajte ho ako vyhlásenie o rozsahu, nie ako recept.

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

Naviazanie naslúchajúceho socketu na 127.0.0.1 ho drží mimo všetkých ostatných rozhraní. To nie je formalita: presmerovanie naviazané na všetky rozhrania premení váš notebook na otvorený prenos do podnikovej siete pre kohokoľvek v tej istej kaviarni s Wi-Fi. Ak je port už obsadený, vyberte iný vysoký port a aktualizujte prehliadač; nezastavujte nesúvisiacu službu, aby príklad sedel.

Účet na bastione tiež potrebuje oprávnenie presmerovávať na tento cieľ. Niektoré spevnené konfigurácie SSH úplne vypínajú presmerovanie portov a niektoré ho obmedzujú direktívou permit-listen alebo permit-open. Prečítajte si politiku servera, než budete predpokladať, že odmietnutý kanál znamená nesprávne heslo.

Čo SSH šifruje a kde sa zastaví

Relácia SSH chráni prevádzku z vášho Macu na bastion a presmerovanie nesie protokol VNC vnútri tejto relácie bez toho, aby mu rozumelo. Keď spojenie opustí bastion smerom k cieľu, už nie je vnútri vašej relácie SSH. Akákoľvek ochrana na tomto poslednom skoku patrí cieľovému protokolu a vlastným kontrolám súkromnej siete.

Preto sa o jednoduchom poslednom skoku VNC nemá hovoriť ako o šifrovanom od konca po koniec len preto, že prvý skok použil SSH. Opíšte segmenty poctivo: silný od klienta k bastionu a potom to, čo cieľ podporuje. Ak je požiadavkou, aby bola celá cesta šifrovaná jedným mechanizmom, presmerovanie to nespĺňa.

Overovanie na cieli je opäť samostatná vec. Účet SSH neposkytuje prihlásenie do macOS a služba zdieľania obrazovky si stále pýta vlastné prihlasovacie údaje a stále uplatňuje vlastný zoznam prístupu. Lokálny naslúchajúci socket, ktorý prijme spojenie, nič nedokazuje o tom, či vzdialená služba reláciu prijme.

Kedy je plné VPN správna voľba

Vyberte VPN, keď úloha potrebuje viac než jeden port: funkcie správy a výkazov Apple Remote Desktop používajú ďalšiu prevádzku TCP a UDP, ktorú jedno presmerovanie TCP neunesie. Presmerovanie nie je čiastočná implementácia celého produktu; je to iný, menší nástroj.

Vyberte ho, keď sa niekoľko správcov pripája z meniacich sa miest, pretože spravovaný profil distribuuje trasy, prihlasovacie údaje a politiku bez toho, aby si každý vymýšľal príkazový riadok. Vyberte ho, keď musí audítorská stopa ukázať, kto sa k čomu pripojil, keďže relácia SSH na používateľa a zdieľané lokálne presmerovanie zanechávajú veľmi odlišné záznamy.

Vyberte ho napokon vtedy, keď cieľová sieť nemá byť z notebooku vôbec dostupná bez vlastnej brány organizácie. Osobné presmerovanie obchádza tú bránu už z princípu, a práve preto patrí do záznamu zmien, nie do histórie shellu.

Nechajte presmerovanie nahlas zlyhať

Použite ExitOnForwardFailure=yes, aby neúspešné naviazanie ukončilo reláciu, a nie aby nechalo shell, ktorý vyzerá pripojený a nič nepresmerúva. Ponechajte zapnuté overovanie kľúča hostiteľa a uprednostnite kľúč alebo agenta pred heslom. Potom otestujte presnú URL, ktorú použije prehliadač, pretože funkčná relácia SSH a funkčné spojenie s obrazovkou sú dva rôzne výsledky.

Pre natívneho klienta v macOS sa k prehliadaču dostanete cez lokálnu URL: open "vnc://127.0.0.1:15900". Ak sa okno otvorí a vzdialený hostiteľ odmietne overenie, tunel je v poriadku a problém je na cieli. Ak sa okno nikdy neotvorí, problém je v naslúchajúcom sockete alebo porte.

Keď skončíte, reláciu zastavte a zapíšte port, bastion, cieľ a politiku účtu. Presmerovanie, ktoré nikto nezdokumentoval, je po pol roku nerozoznateľné od zadných dvierok, a to je najsilnejší argument držať ho malé, pomenované a dočasné.

Súvisiace články