Dostop do spletnega mesta HTTPS, ki je na voljo samo prek VPN, s posredovanjem SSH
Povežite eno storitev HTTPS, ki je na voljo samo prek VPN, z lokalnim posredovanjem SSH, ohranite pravo ime gostitelja s --connect-to in vedite, česa eno posredovanje TCP ne more pokriti.
En stroj že ima odobren dostop do VPN, drugi stroj potrebuje natanko eno zasebno storitev HTTPS, lokalno posredovanje SSH pa lahko to vrzel premosti, ne da bi drugemu stroju dalo tunel. Posredovanje prenaša en cilj TCP namesto celotnega omrežja, in prav ta omejitev je bistvo. Pojdite skozi pet korakov spodaj po vrsti, ker vsak spodleti iz drugega razloga in poznejši korak ne more rešiti prejšnje vrzeli. Če manjka kateri koli predpogoj, ta zasnova tega ne reši in nobeno prilagajanje ukazov ne bo pomagalo.
Prvi korak: potrdite tri predpogoje
Tri stvari morajo že veljati, preden ima kateri koli ukaz pomen. Potrebujete dovoljenje za uporabo prvega stroja kot gostitelja posredovanja, delujoč dostop SSH do njega in strežniško politiko, ki dovoljuje predvideni cilj. Račun SSH, ustvarjen za prenos datotek, ima lahko posredovanje onemogočeno, strežnik, ki dovoljuje posredovanje, pa lahko še vedno omejuje, kateri cilji so prek njega dosegljivi. Vprašajte pred testiranjem, ker je uporaba delovne postaje kolega kot preskočne točke brez dogovora politična težava, tudi ko ukaz deluje brezhibno.
Dva ukaza rešita tehnično polovico tega seznama. Prvi dokazuje, da račun in ključ delujeta brez interaktivnega poziva, drugi pa natisne dejansko strežniško politiko namesto zakomentiranega primera v konfiguracijski datoteki.
ssh -o BatchMode=yes [email protected] 'echo ok'
sudo sshd -T | grep -E 'allowtcpforwarding|permitopen'
Drugi korak: povežite vrata loopback in ohranite sejo živo
Na stroju, ki izvaja odjemalsko aplikacijo, odprite lokalno posredovanje do zasebne storitve. Povežite ga izrecno z loopback, da se ne objavi v lokalnem omrežju, in izberite visoka vrata, ki jih še ne zaseda nobena lokalna storitev. Ohranite sejo delujočo, medtem ko delate, ker njena zapora zapre tudi poslušalca. ExitOnForwardFailure spremeni zavrnjeno povezavo ali zasedena vrata v takojšen izhod namesto seje, ki ostane brez posredovanja, in prav ta način okvare porabi največ časa.
Zasebna povezava se vzpostavi z gostitelja preskoka, zato morajo njegov DNS, poti, politika VPN in dostop do storitve vsi delovati. Seja SSH ne ustvari dosegljivosti, ki je gostitelj preskoka nima, in ne more popraviti poti, ki je VPN ni nikoli potisnil. Potrdite poslušalca tam, kjer v resnici je, namesto da bi zaupali tišini ukaza.
ssh -N -o ExitOnForwardFailure=yes -L 127.0.0.1:9443:portal.lab.example:443 [email protected]
ss -ltn '( sport = :9443 )'
Tretji korak: ohranite ime HTTPS, ko je vtičnica lokalna
Brskanje na https://127.0.0.1:9443/ spremeni ime strežnika TLS in avtoriteto aplikacije. Potrdilo, izdano za portal.lab.example, se ne bo preverilo proti naslovu loopback, nastala napaka pa izgleda kot pokvarjeno potrdilo, ne kot bližnjica posredovanja. Za preizkus iz ukazne vrstice ohranite pravi URL in spremenite samo cilj vtičnice. To počne --connect-to, in priročnik curl dokumentira spodaj uporabljeno obliko s štirimi polji.
curl --noproxy portal.lab.example --connect-to portal.lab.example:443:127.0.0.1:9443 https://portal.lab.example/
Ime ostane v URL, v rokovanju TLS in v glavi Host, medtem ko povezava TCP gre do lokalnega poslušalca. Možnost brez posrednika obdrži preizkus na tem posredovanju, namesto da bi ga prestregel nastavljeni posrednik HTTP, ohranjanje preverjanja potrdil vklopljenega pa je tisto, kar naredi rezultat smiseln.
Četrti korak: vedite, česa eno posredovanje ne more pokriti
Eno posredovanje TCP pokrije en ciljna vrata. Stran, ki preusmeri na drugo ime gostitelja, naloži vire z gostitelja znotraj zasebnega omrežja ali pošlje na druga vrata, potrebuje svoje posredovanje, in vsako od njih potrebuje enak pregled politike kot prvo. Delovni tokovi v brskalniku dodajo lastne zahteve, ker je brskalniku treba povedati, naj pošlje pravo ime na lokalna vrata prek konfiguracije posrednika ali lokalnega preslikavanja. Uspešen preizkus iz ukazne vrstice torej ne dokazuje, da bo uspel brskalnik, čeprav dokazuje pot.
UDP, odkrivanje SMB in prijava v domeno sploh ne gredo skozi posredovanje TCP. Če je resnična potreba splošen dostop do omrežja, je ta zasnova napačno orodje, pravilna pa je podprta prehod za oddaljeni dostop.
Peti korak: počistite in zapišite
Ustavite sejo, ko je preizkus končan, in potrdite, da je poslušalec izginil. Če so bila izbrana vrata že zasedena, izberite druga neuporabljena vrata loopback in skupaj posodobite URL, preskusni ukaz in zapisek, namesto da bi ustavili nepovezano lokalno storitev, da bi sprostili številko. Puščanje posredovanja odprtega na prenosniku spremeni diagnostiko v neupravljano storitev.
Zapišite gostitelja preskoka, posredovani cilj, lokalna vrata in kdo je odobril dogovor. Posredovanje, ki obstaja samo v neki zgodovini lupine, je en ponovni zagon stran od ponovne preiskave, in naslednja oseba ne bo vedela, kateri od treh predpogojev je že preverjen.