sshuttle gëtt gewielt, well SSH schonn funktionéiert an d'Kryptografie vertraut ausgesäit, an dës Begrënnung iwwerspréngt déi eenzeg Fro, déi entscheet, ob et passt. Wéi eng Pakete verlassen d'Maschinn, wéien Kont se op der anerer Säit dréit a wéi vill lokal Privilegien d'Instrument verlaangt. Dës dräi Äntwerten ënnerscheede sech no der Weiderleitungsmethod, dofir kann eng Konfiguratioun, déi fir eng Applikatioun funktionéiert, fir déi nächst stierwen. D'Erklärung hei drënner fänkt bei deem Protokoll un, deen d'Applikatioun wierklech brauch.

Fänkt bei deem Protokoll un, deen d'Applikatioun brauch

D'Protokollënnerstëtzung an sshuttle 2.0 hänkt vun der Method of, déi Dir wielt. D'Linux-Methoden NAT an nft behaapten TCP an DNS, an TPROXY bäit UDP am Allgemengen derbäi. All Plattform an all Method bréngen hir eege Grenzen mat, an macOS fänkt iwwer eng ganz aner Mechanik of. Notéiert déi installéiert Versioun, déi gewielt Method an d'Protokollen, déi d'Applikatioun brauch, ier Dir eppes wielt.

Eng funktionéierend TCP-Ufro beweist also ganz wéineg iwwer eng UDP-Applikatioun oder iwwer all DNS-Ufro. sshuttle behandelt TCP och als Stréim, amplaz ganz IP-Pakete ze tunnelen, dofir gëtt eng Schlussfolgerung iwwer den Duerchfloss, déi vun enger gewéinlecher VPN geléint ass, net iwwerdroen. Vergläicht de Mechanismus, deen Dir wierklech bedreift, mat der Belaaschtung, déi Dir wierklech hutt.

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

Wat de Client lokal brauch

Déi dokumentéiert Clientopstellung brauch root oder sudo, well se lokal Ofweierregelen installéiert, amplaz eng Tunnelinterface ze schafen. Dës eenzeg Tatsaach ännert d'Sécherheetsgeschicht: e Prozess mat deem Privileg kann den Trafik vun der ganzer Maschinn ëmleeden, net nëmme vun enger Applikatioun. Behandelt de Privileg als Deel vum Design an net als Installatiounsdetail.

Bestätegt, wéi eng Reegelen d'Instrument installéiert huet an datt se verschwannen, wann et erausgeet. Eng ofgestierzt Sitzung, déi Ofweierregelen hannerléisst, kann den Trafik laang nodeems den Bedreiwer gleeft, d'Verbindung wier fort, an e schwaarzt Lach schécken, an d'Symptom ausgesäit wéi eng Netzwierkstéierung an net wéi eng Reschtreegel.

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

Déi éischt Kommando ass d'Form vun engem typeschen Opruff, mam Prefix, deen Dir wierklech braucht. Déi zweet weist, wat d'Instrument installéiert huet, an déi drëtt bestätegt, datt keng Tunnelinterface opgetrueden ass, wat dat erwaart Resultat fir dësen Design ass.

Wat déi entfernt Säit ausféiert

Déi entfernt Säit ass en autoriséierte SSH-Kont plus eng kompatibel Python-Hëllefsëmgebung. Eng Umeldung, déi ënner enger limitéierter Shell geléngt, gëtt net automatesch d'Erlaabnes, deen Hëllefer auszeféieren, an e Kont, deen den Hëllefer ausféiere kann, erreecht net automatesch all Zilsercice. Béid Tatsaachen gehéieren an d'Zougriffsufro an net an d'Feelerbeiewungsnotizen.

Schützt d'Prüfung vun der Hostidentitéit an d'Authentifikatioun vum Kont. En onbekannten Hostschlëssel unhuelen, fir datt déi éischt Verbindung funktionéiert, hëlt d'Prüfung ewech, datt déi entfernt Säit déi Maschinn ass, déi Dir gemengt hutt, an dat weit hei méi wéi bei enger Weiderleitung fir een eenzegen Zweck.

Limitéiert den entfernten Kont op d'Servicer, déi den Aarbechtsfloss brauch, a verhandelt dësen Ëmfang mat deenen, déi den Host bedreiwen. Si si Deel vun der Vertrauensbezéiung, an eng Astellung op der Clientsäit ännert dat net.

Wou d'Vertrauensgrenz läit

Eng privat API-Verbindung iwwer SSH weiderleeden autoriséiert net all API-Operatioun. Den TLS vun der Applikatioun an d'Umeldung an der Applikatioun gëllen nach ëmmer, an d'Instrument kann en net authentifizéierte Service net sécher maachen. Och e weidere Saz vum entfernten Host ass net automatesch dee selwechte geschützte Segment wéi den SSH-Kanal, well déi zweet Verbindung der Politik follegt, déi den entfernten Host huet.

Schreift d'Grenz als ee Saz: den Trafik zu dëse Prefixen geet iwwer dësen Kont op deem Host eraus. Wann de Saz en Absaz mat Ausname brauch, mécht den Design méi wéi seng Dokumentatioun behaapt, an et verdéngt en zweete Bléck, ier en an d'Produktioun kënnt.

Beweist et pro Protokoll a wielt dann d'Instrument

Testt all noutwennege Protokoll mat enger harmloser Ufro, abegraff de Wee vum Resolver an d'Adressfamilljen, déi d'Applikatioun benotzt. Huelt eng Trennung an den Test op, sou datt dat erlaabt Feelerverhalen vun der Applikatioun en bekannt Resultat gëtt an net eng Iwwerraschung wärend engem Tëschefall. Eng Sitzung, déi korrekt weidergeleet huet, soulaang se un war, seet näischt iwwer dat, wat geschitt, wann se fält.

Fir eng Handvoll Servicer, déi ausdrécklech genannt sinn, ass eng gewéinlech lokal Weiderleitung méi einfach ze besëtzen a méi einfach ze auditieren. Fir Applikatiounstrafik, déi zu senger Method passt, bitt sshuttle en legitimen Tëschewee. Wann d'Ufuerderung eng breet IP-Konnektivitéit ass, ass en VPN-Design déi éierlech Äntwert, an d'Wiel follegt der Ofdeckung an der operationeller Verantwortung an net enger Klassement vun de Verschlësselungsalgorithmen.

Ähnlech Artikelen