sshuttle estas elektata ĉar SSH jam funkcias kaj la kriptografio aspektas konata, kaj tiu rezonado preterlasas la solan demandon, kiu decidas ĉu ĝi taŭgas. Kiuj pakoj forlasas la maŝinon, kiu konto portas ilin ĉe la alia flanko kaj kiom da lokaj privilegioj la ilo postulas. Tiuj tri respondoj malsamas laŭ la plusendmetodo, do agordo, kiu funkcias por unu aplikaĵo, povas silente malsukcesi por la sekva. La priskribo sube komenciĝas ĉe la protokolo, kiun la aplikaĵo efektive bezonas.

Komencu per la protokolo, kiun bezonas la aplikaĵo

Protokola subteno en sshuttle 2.0 dependas de la metodo, kiun vi elektas. La metodoj NAT kaj nft de Linux traktas TCP kaj DNS, kaj TPROXY aldonas ĝeneralan UDP. Ĉiu platformo kaj metodo alportas proprajn limojn, kaj macOS interkaptas per tute alia mekanismo. Notu la instalitan version, la elektitan metodon kaj la protokolojn, kiujn la aplikaĵo bezonas, antaŭ ol vi elektos ion ajn.

Sukcesa TCP-peto do pruvas tre malmulte pri UDP-aplikaĵo aŭ pri ĉiu DNS-serĉo. sshuttle ankaŭ traktas TCP kiel fluojn anstataŭ tuneli tutajn IP-pakojn, do konkludo pri trairo pruntita el ordinara VPN ne translokiĝas. Komparu la mekanismon, kiun vi efektive funkciigas, kun la ŝarĝo, kiun vi efektive havas.

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

Kion la kliento bezonas loke

La dokumentita klienta aranĝo bezonas root aŭ sudo, ĉar ĝi instalas lokajn interkaptajn regulojn anstataŭ krei tunelan interfacon. Tiu sola fakto ŝanĝas la sekurecan rakonton: procezo kun tiu privilegio povas alidirekti trafikon por la tuta maŝino, ne nur por unu aplikaĵo. Traktu la privilegion kiel parton de la dizajno kaj ne kiel instaladan detalon.

Konfirmu, kiujn regulojn la ilo instalas kaj ke ili malaperas kiam ĝi finiĝas. Kraŝinta sesio, kiu lasas interkaptajn regulojn, povas sendi trafikon en nigran truon longe post kiam la operatoro kredas, ke la konekto foriris, kaj la simptomo aspektas kiel reta paneo anstataŭ kiel restinta regulo.

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

La unua komando estas la formo de tipa alvoko, kun la prefikso, kiun vi efektive bezonas. La dua montras, kion la ilo instalis, kaj la tria konfirmas, ke neniu tunela interfaco aperis, kio estas la atendata rezulto por ĉi tiu dizajno.

Kion funkciigas la fora flanko

La fora flanko estas rajtigita SSH-konto kaj kongrua Python-helpanta medio. Ensaluto, kiu sukcesas en limigita ŝelo, ne aŭtomate donas permeson funkciigi tiun helpanton, kaj konto, kiu povas funkciigi la helpanton, ne aŭtomate atingas ĉiun celan servon. Ambaŭ faktoj apartenas al la alirkvito kaj ne al la problemosolvaj notoj.

Protektu la kontrolon de gastiga identeco kaj la aŭtentikigon de la konto. Akcepti nekonatan gastigan ŝlosilon por igi la unuan konekton funkcii forigas la kontrolon, ke la fora flanko estas la maŝino, kiun vi intencis, kaj tio gravas ĉi tie pli ol ĉe plusendo por unu celo.

Limigu la foran konton al la servoj, kiujn la laborfluo bezonas, kaj interkonsentu tiun amplekson kun tiuj, kiuj administras la gastigan komputilon. Ili estas parto de la fida rilato, kaj neniu agordo ĉe la klienta flanko tion ŝanĝas.

Kie kuŝas la fida limo

Plusendi privatan API-konekton tra SSH ne rajtigas ĉiun API-operacion. La TLS de la aplikaĵo kaj la ensaluto al la aplikaĵo ankoraŭ validas, kaj la ilo ne povas igi servon sen aŭtentikigo sekura. Ankaŭ plia salto de la fora gastiganto ne estas aŭtomate la sama protektita segmento kiel la SSH-kanalo, ĉar tiu dua konekto sekvas kian ajn politikon la fora gastiganto havas.

Skribu la limon kiel unu frazon: trafiko al ĉi tiuj prefiksoj eliras tra ĉi tiu konto sur tiu gastiganto. Se la frazo bezonas alineon da esceptoj, la dizajno faras pli ol ĝia dokumentaro asertas kaj meritas duan rigardon antaŭ ol atingi produktadon.

Pruvu ĝin laŭ protokolo, poste elektu la ilon

Testu ĉiun bezonatan protokolon per sendanĝera peto, inkluzive la vojon de la solvilo kaj la adresfamiliojn, kiujn la aplikaĵo uzas. Inkluzivu malkonekton en la testo, por ke la permesita fiasko de la aplikaĵo fariĝu konata rezulto anstataŭ surprizo dum incidento. Sesio, kiu plusendis ĝuste dum ĝi estis aktiva, diras nenion pri tio, kio okazas post ĝia falo.

Por manpleno da eksplicite nomitaj servoj, ordinara loka plusendo estas pli facile posedebla kaj pli facile auditenda. Por aplikaĵa trafiko, kiu kongruas kun ĝia metodo, sshuttle proponas legitiman mezan vojon. Kiam la postulo estas vasta IP-konekteco, VPN-dizajno estas la honesta respondo, kaj la elekto sekvas kovradon kaj operacian respondecon anstataŭ rangotabelon de ĉifradalgoritmoj.

Rilataj artikoloj