sshuttle blir valt fordi SSH allereie verkar og kryptografien verkar kjend, og den grunngjevinga hoppar over det einaste spørsmålet som avgjer om det passar. Kva pakkar som forlèt maskinen, kva konto som ber dei på den andre sida, og kor mykje lokal rett verktøyet krev. Dei tre svara varierer med videresendingsmetoden, så eit oppsett som verkar for éin applikasjon kan feile lydlaust for den neste. Gjennomgangen nedanfor byrjar med protokollen applikasjonen faktisk treng.

Byrja med protokollen applikasjonen treng

Protokollstøtta i sshuttle 2.0 avheng av metoden du vel. Linux-metodane NAT og nft handterer TCP og DNS, og TPROXY legg til generell UDP. Kvar plattform og metode har sine eigne grenser, og macOS fangar opp gjennom ein heilt annan mekanisme. Notér den installerte versjonen, den valde metoden og protokollane applikasjonen treng før du vel noko.

Ein fungerande TCP-førespurnad provar derfor svært lite om ein UDP-applikasjon eller om kvart DNS-oppslag. sshuttle handsamar òg TCP som straumar i staden for å tunnelere heile IP-pakkar, så ei gjennomstrøymingskonklusjon lånt frå ein vanleg VPN blir ikkje overført. Samanlikn mekanismen du faktisk køyrer med belastninga du faktisk har.

ApproachWhat it carriesWhat it needs locally
SSH local forwardOne explicitly named TCP destinationNothing beyond the SSH client
sshuttle, nft or nat methodTCP and DNS to the routed prefixesRoot or sudo for firewall rules
sshuttle, tproxy methodTCP, DNS and general UDPRoot or sudo, and kernel support
IP VPNRouted IP traffic in a tunnelA client with the required privileges

Kva klienten treng lokalt

Det dokumenterte klientoppsettet krev root eller sudo, fordi det installerer lokale avskjeringsreglar i staden for å opprette eit tunnelgrensesnitt. Den eine kjensgjerninga endrar tryggleikshistoria: ein prosess med den retten kan omdirigere trafikk for heile maskinen, ikkje berre éin applikasjon. Handsame retten som ein del av designet og ikkje som ein installasjonsdetalj.

Stadfest kva reglar verktøyet installerte og at dei forsvinn når det avsluttar. Ei krasja økt som etterlèt avskjeringsreglar kan sende trafikk i eit svart hòl lenge etter at operatøren trur sambandet er borte, og symptomet ser ut som eit nettverksutfall snarare enn ein attverande regel.

sudo sshuttle --method nft --dns 172.19.4.0/24
nft list ruleset | grep -i sshuttle
ip route

Den første kommandoen er forma av eit typisk kall, med prefikset du faktisk treng. Den andre viser kva verktøyet installerte, og den tredje stadfestar at det ikkje dukka opp eit tunnelgrensesnitt, som er det forventa resultatet for dette designet.

Kva fjernsida køyrer

Fjernsida er ein autorisert SSH-konto pluss eit kompatibelt hjelpemiljø i Python. Ei innlogging som lukkast under eit avgrensa skal, gir ikkje automatisk løyve til å køyre den hjelparen, og ein konto som kan køyre hjelparen, når ikkje automatisk kvar målteneste. Båe tilhøva høyrer i tilgangsførespurnaden og ikkje i feilsøkingsnotata.

Vern verifiseringa av vertsidentitet og autentiseringa av kontoen. Å godta ein ukjend vertsnøkkel for å få det første sambandet til å verke fjernar kontrollen av at fjernsida er maskinen du hadde tenkt, og det veg tyngre her enn ved ein videresending for eitt enkelt føremål.

Avgrens fjernkontoen til tenestene arbeidsflyten treng, og forhandle omfanget med dei som driftar verten. Dei er ein del av tillitsforholdet, og inga innstilling på klientsida endrar det.

Kvar tillitsgrensa ligg

Videresending av eit privat API-samband gjennom SSH autoriserer ikkje kvar API-operasjon. TLS til applikasjonen og innlogging i applikasjonen gjeld framleis, og verktøyet kan ikkje gjere ei uautentisert teneste trygg. Eit vidare hopp frå fjernverten er heller ikkje automatisk det same verna segmentet som SSH-kanalen, fordi det andre sambandet følgjer den politikken fjernverten har.

Skriv grensa som éi setning: trafikk til desse prefiksa går ut gjennom denne kontoen på den verten. Viss setninga treng eit avsnitt med unntak, gjer designet meir enn dokumentasjonen hevdar, og det fortener eit nytt blikk før det når produksjon.

Prov det per protokoll, og vel deretter verktøyet

Test kvar påkravde protokoll med ein ufarleg førespurnad, inkludert resolverstien og adressefamiliane applikasjonen brukar. Ta med ein fråkobling i testen, slik at den tillatne feilåtferda til applikasjonen blir eit kjent resultat i staden for ei overrasking under ei hending. Ei økt som videresende rett medan ho var oppe, seier ingenting om kva som skjer når ho fell.

For ein handfull eksplisitt namngjevne tenester er ei vanleg lokal videresending enklare å eige og enklare å revidere. For applikasjonstrafikk som passar til metoden, tilbyr sshuttle ein legitim mellomveg. Når kravet er brei IP-tilkopling, er eit VPN-design det ærlege svaret, og valet følgjer dekning og operativt ansvar snarare enn ei rangering av krypteringsalgoritmar.

Relaterte artiklar