Ako lokálne presmerovanie SSH prenáša reláciu TCP OpenVPN
Jeden lokálny port, dva overené vzťahy, tri transporty. Čo presmerovanie SSH prenáša a kde stále platia slučka a kontroly certifikátu.
Tu sa vrstvia tri transporty a každý má svoje vlastné rámcovanie. Užitočné zaťaženie VPN cestuje v relácii TLS, táto relácia TLS cestuje v TCP spojení k portu spätnej slučky a bajty tohto spojenia cestujú v SSH k relay hostiteľovi, ktorý otvára skutočné TCP spojenie k poslucháčovi VPN. Nič na tomto usporiadaní nemení to, čo OpenVPN overuje, a nič z neho nerobí poslucháča UDP dostupným cez TCP. Zvyšok čítajte ako opis cesty bajtov, nie ako návod na obídenie sieťovej kontroly.
Čo lokálne presmerovanie skutočne prenáša
Klient SSH počúva na lokálnom porte. Keď sa lokálny proces pripojí, klient zabalí bajty do svojho šifrovaného kanála a strana servera otvorí nové TCP spojenie k cieľu uvedenému v požiadavke na presmerovanie.
Tento cieľ prekladá relay, nie váš stroj, a preto meno, ktoré existuje len vo vnútri vzdialenej siete, stále funguje. Znamená to tiež, že relay musí dosiahnuť poslucháča VPN a mať k nemu spätnú trasu. Meno, ktoré sa preloží na vašom notebooku, nič nehovorí o tom, čo relay vidí.
Spustenie relácie SSH dokazuje len to, že relay je dostupný a overený. Nehovorí nič o tom, či je ďalší poslucháč zapnutý, či firewall medzi relay a poslucháčom spojenie prijme, ani či VPN prijme váš profil.
Nasmerujte klienta na lokálneho poslucháča
Uvedený príklad: relay dosiahne TCP poslucháča na gw.internal.example:443 a vysoký lokálny port sprístupní túto cestu len tomuto stroju.
ssh -N -L 127.0.0.1:24011:gw.internal.example:443 [email protected]Príručka OpenSSH opisuje lokálne presmerovanie ako prijímanie TCP spojení lokálne a otváranie ďalšieho spojenia zo vzdialenej strany. Pripažte poslucháča k spätnej slučke, nie ku všetkým rozhraniam, pretože presmerovanie dostupné zo siete je otvorený relay s vaším menom. Väzba so zástupným znakom tiež sprístupní port každému inému lokálnemu kontu na zdieľanom stroji.
Potom prepnite klienta VPN do režimu TCP a nasmerujte ho na 127.0.0.1:24011. Ak profil používa UDP, tento návrh nepomôže: presmerovanie prenáša prúd bajtov a nevedie cez neho žiadna cesta pre datagramy.
Držte obe overenia oddelené
SSH overuje relay hostiteľa. OpenVPN stále overuje protistranu VPN a cieľ na spätnej slučke tento predpoklad nemení. Vypnutie kontrol certifikátu preto, že socket teraz ukazuje na localhost, je najhoršia skratka v tomto návrhu. Mení transportné usporiadanie na usporiadanie dôvery a na to druhé nikto nedal súhlas.
Zachovajte kotevný bod dôvery profilu, kontrolu role servera a overenie mena nedotknuté. Ak váš klient porovnáva meno servera s adresou, na ktorú volal, spätná slučka môže potrebovať výslovné nastavenie mena namiesto vypnutej kontroly a dokumentácia profilu je miesto, kde sa potvrdzuje, ktoré pole sa porovnáva.
Berte relay ako druhú stranu v príbehu dôvery: jeho správca vidí metadáta spojení a môže presmerovanie obrátiť, ak sa konfigurácia zmení. Usporiadanie potrebuje schválenie od relay aj od vlastníka služby VPN, nie len od toho, kto to dnes potrebuje.
Nestavajte slučku pod tunelom
Keď VPN nainštaluje trasy, SSH spojenie, ktoré ju nesie, stále potrebuje cestu k relay, ktorá nevedie tunelom. Ak sa predvolená trasa presunie na VPN a relay je dostupný len cez ten istý tunel, transport sa zrúti a VPN ide s ním. Porucha vyzerá ako spadnutý tunel, nie ako chyba smerovania, a preto sa diagnostikuje nesprávne.
Zvyčajnou opravou je hostiteľská trasa k adrese relay pripnutá k fyzickému rozhraniu pred zdvihnutím tunela, plus kontrola, že trasa prežije opätovné pripojenie. Overte ju vyhľadaním trasy pre adresu relay namiesto predpokladu, že poradie bolo správne.
Očakávajte tiež, že tento zásobník bude pomalší a krehkejší ako priame spojenie, pretože teraz existujú dva usporiadané transporty a ďalší koncový bod na údržbu. Je to spôsob, ako prekročiť sieťovú hranicu, nie technika výkonu.
Keď skončíte, poslucháča zatvorte
Zastavte reláciu SSH, keď už tunel nie je potrebný, a potvrďte, že lokálny port je uvoľnený. Zabudnuté presmerovanie drží overenú cestu otvorenú na stroji, ktorý môže byť zdieľaný.
Prejdite aj povolené ciele presmerovania na relay, pretože povoľná konfigurácia mení každý kompromitovaný účet na všeobecný oporný bod. Zapíšte port, relay a cieľ spolu, aby ďalší človek vedel, na čo presmerovanie bolo a či je stále schválené.