Ühel masinal on juba lubatud VPN-i juurdepääs, teisel masinal on vaja täpselt ühte privaatset HTTPS-teenust ja kohalik SSH-edasisaatmine võib selle lünga sillata, andmata teisele masinale tunnelit. Edasisaatmine kannab ühte TCP-sihtkohta, mitte kogu võrku, ja just see piirang on mõte. Käige allolevad viis sammu järjekorras läbi, sest igaüks ebaõnnestub erineval põhjusel ja hilisem samm ei suuda varasemat lünka päästa. Kui mõni eeltingimus puudub, ei lahenda see disain seda ja ükski käskude häälestamine ei aita.

Esimene samm: kinnitage kolm eeltingimust

Enne kui ükski käsk tähtsust omab, peavad kolm asja juba tõsi olema. Vaja on luba kasutada esimest masinat edasisaatmise hostina, töötavat SSH-juurdepääsu sellele ja serveripoliitikat, mis lubab kavandatud sihtkohta. Failiedastuseks loodud SSH-kontol võib edasisaatmine olla välja lülitatud, ja edasisaatmist lubav server võib ikkagi piirata, millised sihtkohad on selle kaudu kättesaadavad. Küsige enne testimist, sest kolleegi tööjaama kasutamine hüppepunktina ilma kokkuleppeta on poliitikaprobleem, isegi kui käsk töötab laitmatult.

Kaks käsku lahendavad selle nimekirja tehnilise poole. Esimene tõestab, et konto ja võti töötavad ilma interaktiivse viipeta, ja teine trükib tegeliku serveripoliitika, mitte konfiguratsioonifailis kommenteeritud näidise.

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

Teine samm: siduge loopback-port ja hoidke sessioon elus

Masinas, kus klientrakendus töötab, avage kohalik edasisaatmine privaatse teenuse juurde. Siduge see selgesõnaliselt loopbacki külge, et seda ei avaldata kohalikus võrgus, ja valige kõrge port, mida ükski kohalik teenus juba ei hoia. Hoidke sessioon töötavana, kuni töötate, sest selle sulgemine sulgeb kuulaja. ExitOnForwardFailure muudab tagasilükatud sidumise või hõivatud pordi koheseks väljumiseks, mitte edasisaatmisega püsti jäävaks sessiooniks, ja see on tõrkerežiim, mis raiskab kõige rohkem aega.

Privaatne ühendus luuakse hüppehostist, seega peavad selle hosti DNS, marsruudid, VPN-poliitika ja teenusejuurdepääs kõik töötama. SSH-sessioon ei loo kättesaadavust, mida hüppehostil pole, ja ei suuda parandada marsruuti, mida VPN kunagi ei lükanud. Kinnitage kuulaja seal, kus see tegelikult on, mitte usaldades käsu vaikust.

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

Kolmas samm: hoidke HTTPS-nimi, kui pistik on kohalik

https://127.0.0.1:9443/ sirvimine muudab TLS-i serverinime ja rakenduse volitust. portal.lab.example jaoks välja antud sertifikaat ei valideeru loopback-aadressi vastu ja tulemuseks olev viga näeb välja nagu katkine sertifikaat, mitte nagu edasisaatmise otsetee. Käsurea testi jaoks hoidke tegelik URL ja muutke ainult pistiku sihtkohta. Seda teeb --connect-to ja curl-käsiraamat dokumenteerib allpool kasutatud neljaväljalise vormi.

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

Nimi jääb URL-i, TLS-i kätlusse ja Host-päisesse, samal ajal kui TCP-ühendus läheb kohalikku kuulajasse. Ilma puhverserverita valik hoiab testi sellel edasisaatmisel, selle asemel et lasta seadistatud HTTP-puhverserveril see vahelt võtta, ja sertifikaadi kontrolli sees hoidmine on see, mis teeb tulemuse mõttekaks.

Neljas samm: teadke, mida üks edasisaatmine ei kata

Üks TCP-edasisaatmine katab ühe sihtpordi. Leht, mis suunab teisele hostinimele, laadib ressursse privaatvõrgu sees olevalt hostilt või saadab teisele pordile, vajab oma edasisaatmist ja igaüks neist vajab sama poliitikakontrolli nagu esimene. Brauseri töövood lisavad omad nõuded, sest brauserile tuleb öelda, et see saadaks tegeliku nime kohalikku porti puhverserveri seadistuse või kohaliku vastenduse kaudu. Seega ei tõesta õnnestunud käsurea test, et brauser saab hakkama, kuigi see tõestab tee.

UDP, SMB-tuvastus ja domeeni sisselogimine ei liigu üldse TCP-edasisaatmise kaudu. Kui tegelik nõue on üldine võrgu juurdepääs, on see disain vale tööriist ja toetatud kaugjuurdepääsu lüüs on õige.

Viies samm: koristage ja kirjutage üles

Peatage sessioon, kui test on lõppenud, ja kinnitage, et kuulaja on kadunud. Kui valitud port oli juba hõivatud, valige teine kasutamata loopback-port ja uuendage URL-i, testkäsku ja märkust koos, selle asemel et vabastada number seotud mitteoleva kohaliku teenuse peatamisega. Edasisaatmise lahti jätmine sülearvutis muudab diagnostika haldamata teenuseks.

Kirjutage üles hüppehost, edasisaadetud sihtkoht, kohalik port ja kes kokkuleppe heaks kiitis. Edasisaatmine, mis eksisteerib ainult kellegi shell-ajaloos, on ühe taaskäivituse kaugusel korduvast uurimisest ja järgmine inimene ei tea, millist kolmest eeltingimusest on juba kontrollitud.

Seotud artiklid