Cyrraedd safle HTTPS sy'n gyfyngedig i VPN trwy anfon ymlaen SSH
Pontiwch un gwasanaeth HTTPS sy'n gyfyngedig i VPN ag anfon ymlaen SSH lleol, cadwch y gwir enw gwesteiwr gyda --connect-to, a gwybod beth na all un anfoniad TCP ei gwmpasu.
Mae gan un peiriant fynediad VPN a gymeradwywyd yn barod, mae ar ail beiriant angen un gwasanaeth HTTPS preifat yn union, a gall anfon ymlaen SSH lleol bontio'r bwlch hwnnw heb roi twnnel i'r ail beiriant. Mae'r anfoniad yn cario un cyrchfan TCP yn lle'r rhwydwaith cyfan, a'r terfyn hwnnw yw'r pwynt. Ewch drwy'r pum cam isod yn eu trefn, oherwydd mae pob un yn methu am reswm gwahanol ac ni all cam diweddarach achub bwlch cynharach. Os oes rhagofyniad ar goll, nid yw'r dyluniad hwn yn ei ddatrys ac ni fydd unrhyw ddiwtio gorchmynion yn helpu.
Cam un: cadarnhewch y tri rhagofyniad
Rhaid i dri pheth fod yn wir eisoes cyn i unrhyw orchymyn fod o bwys. Mae angen caniatâd i ddefnyddio'r peiriant cyntaf fel gwesteiwr anfon ymlaen, mynediad SSH gweithredol iddo, a pholisi gweinydd sy'n caniatáu'r gyrchfan a fwriadwyd. Gall cyfrif SSH a grëwyd ar gyfer trosglwyddo ffeiliau fod ag anfon ymlaen wedi'i analluogi, a gall gweinydd sy'n caniatáu anfon ymlaen gyfyngu o hyd ar ba gyrchfannau sy'n gyraeddadwy drwyddo. Gofynnwch cyn profi, oherwydd defnyddio gwaithfan cydweithiwr fel man naid heb gytundeb yn broblem polisi, hyd yn oed pan fydd y gorchymyn yn gweithio'n lân.
Mae dau orchymyn yn setlo hanner technegol y rhestr honno. Mae'r cyntaf yn profi bod y cyfrif a'r allwedd yn gweithio heb anogwr rhyngweithiol, ac mae'r ail yn argraffu polisi gweinyddol effeithiol yn lle'r enghraifft â sylwadau yn y ffeil ffurfweddu.
ssh -o BatchMode=yes [email protected] 'echo ok'
sudo sshd -T | grep -E 'allowtcpforwarding|permitopen'
Cam dau: rhwymwch borth loopback a chadwch y sesiwn yn fyw
Ar y peiriant sy'n rhedeg y rhaglen cleient, agorwch anfoniad lleol i'r gwasanaeth preifat. Rhwymwch ef yn benodol i loopback fel na chaiff ei gyhoeddi i'r rhwydwaith lleol, a dewiswch borth uchel nad yw unrhyw wasanaeth lleol yn ei ddal yn barod. Cadwch y sesiwn ar gynnydd wrth i chi weithio, oherwydd mae ei chau yn cau'r gwrandäwr. Mae ExitOnForwardFailure yn troi rhwymiad a wrthodwyd neu borth sydd wedi'i feddiannu yn ymadawiad ar unwaith yn lle sesiwn sy'n aros i fyny heb anfoniad, a dyna'r dull methiant sy'n gwastraffu'r mwyaf o amser.
Gwneir y cysylltiad preifat o'r gwesteiwr naid, felly rhaid i DNS, llwybrau, polisi VPN a mynediad gwasanaeth y gwesteiwr hwnnw i gyd weithio. Nid yw'r sesiwn SSH yn creu cyrhaeddedd nad yw'r gwesteiwr naid yn ei chael, ac ni all atgyweirio llwybr na wthiodd y VPN erioed. Cadarnhewch y gwrandäwr lle y mae mewn gwirionedd yn hytrach na dibynnu ar ddistawrwydd y gorchymyn.
ssh -N -o ExitOnForwardFailure=yes -L 127.0.0.1:9443:portal.lab.example:443 [email protected]
ss -ltn '( sport = :9443 )'
Cam tri: cadwch yr enw HTTPS pan fo'r soced yn lleol
Mae pori i https://127.0.0.1:9443/ yn newid enw gweinydd TLS ac awdurdod y rhaglen. Ni fydd tystysgrif a gyhoeddwyd ar gyfer portal.lab.example yn dilysu yn erbyn cyfeiriad loopback, ac mae'r gwall sy'n deillio yn edrych fel tystysgrif wedi torri yn hytrach na llwybr byr anfon ymlaen. Ar gyfer prawf llinell orchymyn, cadwch yr URL go iawn a newidiwch gyrcfan y soced yn unig. Dyna a wna --connect-to, ac mae llawlyfr curl yn dogfennu'r ffurf pedwar maes a ddefnyddir isod.
curl --noproxy portal.lab.example --connect-to portal.lab.example:443:127.0.0.1:9443 https://portal.lab.example/
Mae'r enw'n aros yn yr URL, yn yr ysgwyd llaw TLS ac yn y pennawd Host, tra bod y cysylltiad TCP yn mynd i'r gwrandäwr lleol. Mae'r opsiwn dim-procsi yn cadw'r prawf ar yr anfoniad hwn yn lle gadael i brocsi HTTP wedi'i ffurfweddu ei ryng-gipio, a chadw dilysu tystysgrif ymlaen yw'r hyn sy'n gwneud y canlyniad yn ystyrlon.
Cam pedwar: gwybyddwch beth na all un anfoniad ei gwmpasu
Mae un anfoniad TCP yn cwmpasu un porth cyrchfan. Mae tudalen sy'n ailgyfeirio i ail enw gwesteiwr, yn llwytho asedau o westeiwr y tu mewn i'r rhwydwaith preifat neu'n postio i borth arall angen ei hanfoniad ei hun, ac mae pob un ohonynt angen yr un archwiliad polisi â'r cyntaf. Mae llif gwaith porwr yn ychwanegu gofynion eu hunain, oherwydd rhaid dweud wrth y porwr i anfon yr enw go iawn i'r porth lleol drwy ffurfweddiad procsi neu fapio lleol. Felly nid yw prawf llinell orchymyn sy'n llwyddo yn profi y bydd y porwr yn llwyddo, er ei fod yn profi'r llwybr.
Nid yw UDP, darganfod SMB nac arwyddo i mewn i barth yn teithio drwy anfoniad TCP o gwbl. Os mai'r gwir ofyniad yw mynediad rhwydwaith cyffredinol, y dyluniad hwn yw'r offeryn anghywir a phorth mynediad o bell a gefnogir yw'r un cywir.
Cam pump: glanhewch a chofnodwch
Ataliwch y sesiwn pan fydd y prawf wedi gorffen a chadarnhewch fod y gwrandäwr wedi mynd. Os oedd y porth a ddewiswyd yn barod wedi'i feddiannu, dewiswch borth loopback arall nas defnyddiwyd a diweddarwch yr URL, y gorchymyn prawf a'r nodyn gyda'i gilydd, yn hytrach na stopio gwasanaeth lleol di-gysylltiad i ryddhau'r rhif. Mae gadael anfoniad ar agor ar liniadur yn troi diagnosis yn wasanaeth heb ei reoli.
Nodwch y gwesteiwr naid, y gyrchfan a anfonwyd, y porth lleol a phwy a gymeradwyodd y trefniant. Mae anfoniad sy'n bodoli dim ond yn hanes shell rhywun un ailgychwyn oddi wrth ymchwiliad arall, ac ni fydd y person nesaf yn gwybod pa un o'r tri rhagofyniad sydd eisoes wedi'i wirio.