Jeden stroj už má schválený prístup k VPN, druhý stroj potrebuje presne jednu súkromnú službu HTTPS a lokálne SSH presmerovanie dokáže túto medzeru preklenúť bez toho, aby druhému stroju dalo tunel. Presmerovanie prenáša jedno TCP cieľové miesto namiesto celej siete a práve toto obmedzenie je podstatou. Prejdite päť krokov nižšie v poradí, pretože každý zlyháva z iného dôvodu a neskorší krok nedokáže zachrániť skoršiu medzeru. Ak chýba akýkoľvek predpoklad, tento návrh ho nerieši a žiadne ladenie príkazov nepomôže.

Krok jedna: potvrďte tri predpoklady

Tri veci musia už platiť predtým, než bude mať akýkoľvek príkaz význam. Potrebujete oprávnenie používať prvý stroj ako hostiteľa presmerovania, funkčný prístup SSH k nemu a serverovú politiku, ktorá povoľuje zamýšľané cieľové miesto. SSH účet vytvorený na prenos súborov môže mať presmerovanie vypnuté a server, ktorý presmerovanie povoľuje, môže stále obmedzovať, ktoré cieľové miesta sú cez neho dostupné. Pýtajte sa pred testovaním, pretože používanie pracovnej stanice kolegu ako odrazového bodu bez dohody je problém politiky, aj keď príkaz funguje bezchybne.

Technickú polovicu tohto zoznamu vyriešia dva príkazy. Prvý dokazuje, že účet a kľúč fungujú bez interaktívnej výzvy, a druhý vypisuje skutočnú serverovú politiku namiesto zakomentovaného príkladu v konfiguračnom súbore.

ssh -o BatchMode=yes [email protected] 'echo ok'
sudo sshd -T | grep -E 'allowtcpforwarding|permitopen'

Krok dva: zviažte port loopback a udržte reláciu živú

Na stroji, ktorý spúšťa klientsku aplikáciu, otvorte lokálne presmerovanie k súkromnej službe. Zviažte ho výslovne s loopback, aby sa nezverejňovalo v lokálnej sieti, a vyberte vysoký port, ktorý už žiadna lokálna služba nedrží. Udržujte reláciu otvorenú, kým pracujete, pretože jej zatvorením zatvoríte poslucháča. ExitOnForwardFailure mení odmietnuté zviazanie alebo obsadený port na okamžité ukončenie namiesto relácie, ktorá zostane bez presmerovania, a to je režim zlyhania, ktorý spotrebuje najviac času.

Súkromné spojenie vzniká z odrazového hostiteľa, takže jeho DNS, trasy, politika VPN a prístup k službe musia všetky fungovať. Relácia SSH nevytvára dostupnosť, ktorú odrazový hostiteľ nemá, a nedokáže opraviť trasu, ktorú VPN nikdy neposlala. Potvrďte poslucháča tam, kde skutočne je, namiesto toho, aby ste verili mlčaniu príkazu.

ssh -N -o ExitOnForwardFailure=yes -L 127.0.0.1:9443:portal.lab.example:443 [email protected]
ss -ltn '( sport = :9443 )'

Krok tri: zachovajte meno HTTPS, keď je socket lokálny

Prehliadanie https://127.0.0.1:9443/ mení názov servera TLS a autoritu aplikácie. Certifikát vydaný pre portal.lab.example sa neoverí proti adrese loopback a výsledná chyba vyzerá ako rozbitý certifikát, nie ako skratka presmerovania. Pre test z príkazového riadka zachovajte skutočnú URL a zmeňte len cieľ socketu. To robí --connect-to a manuál curl dokumentuje nižšie použitú formu štyroch polí.

curl --noproxy portal.lab.example --connect-to portal.lab.example:443:127.0.0.1:9443 https://portal.lab.example/

Názov zostáva v URL, v TLS handshake a v hlavičke Host, zatiaľ čo TCP spojenie ide k lokálnemu poslucháčovi. Voľba bez proxy drží test na tomto presmerovaní, namiesto toho, aby ho zachytila nakonfigurovaná HTTP proxy, a ponechanie overovania certifikátov zapnuté je to, čo robí výsledok zmysluplným.

Krok štyri: vedzte, čo jedno presmerovanie nepokryje

Jedno TCP presmerovanie pokrýva jeden cieľový port. Stránka, ktorá presmerúva na druhé meno hostiteľa, načítava zdroje z hostiteľa vnútri súkromnej siete alebo odosiela na iný port, potrebuje vlastné presmerovanie a každé z nich potrebuje rovnakú kontrolu politiky ako prvé. Pracovné postupy v prehliadači pridávajú vlastné požiadavky, pretože prehliadaču treba povedať, aby posielal skutočné meno na lokálny port cez konfiguráciu proxy alebo lokálne mapovanie. Úspešný test z príkazového riadka teda nedokazuje, že uspeje prehliadač, aj keď dokazuje cestu.

UDP, zisťovanie SMB a prihlasovanie do domény vôbec neprechádzajú cez TCP presmerovanie. Ak je skutočnou požiadavkou všeobecný prístup k sieti, tento návrh je nesprávny nástroj a správna je podporovaná brána vzdialeného prístupu.

Krok päť: ukliďte a zapíšte to

Zastavte reláciu, keď je test hotový, a potvrďte, že poslucháč zmizol. Ak bol zvolený port už obsadený, vyberte iný nepoužitý port loopback a aktualizujte URL, testovací príkaz aj poznámku spoločne, namiesto toho, aby ste uvoľnili číslo zastavením nesúvisiacej lokálnej služby. Ponechanie presmerovania otvoreného na notebooku mení diagnostiku na neriadenú službu.

Zapíšte odrazového hostiteľa, presmerované cieľové miesto, lokálny port a kto schválil usporiadanie. Presmerovanie, ktoré existuje len v niekoho histórii shellu, je jedno reštartovanie od opakovaného vyšetrovania a ďalší človek nebude vedieť, ktorý z troch predpokladov už bol overený.

Súvisiace články