sshuttle word gekies omdat SSH reeds werk en die kriptografie bekend lyk, en daardie redenasie slaan die enigste vraag oor wat bepaal of dit pas. Watter pakkette die masjien verlaat, watter rekening hulle aan die ander kant dra, en hoeveel plaaslike regte die gereedskap vereis. Daardie drie antwoorde verskil per deurstuurmetode, so 'n opstelling wat vir een toepassing werk, kan stilweg vir die volgende misluk. Die uiteensetting hieronder begin by die protokol wat die toepassing werklik nodig het.

Begin by die protokol wat die toepassing nodig het

Protokolondersteuning in sshuttle 2.0 hang af van die metode wat jy kies. Die Linux NAT- en nft-metodes hanteer TCP plus DNS, en TPROXY voeg algemene UDP by. Elke platform en metode bring sy eie grense mee, en macOS onderskep deur 'n heeltemal ander meganisme. Teken die geïnstalleerde weergawe, die gekose metode en die protokolle wat die toepassing nodig het aan voordat jy enigiets kies.

'n Werkende TCP-versoek bewys dus baie min oor 'n UDP-toepassing of oor elke DNS-navraag. sshuttle behandel ook TCP as strome in plaas daarvan om hele IP-pakkette te tonnel, so 'n deurvloeigevolgtrekking wat by 'n gewone VPN geleen is, dra nie oor nie. Vergelyk die meganisme wat jy werklik gebruik met die werklading wat jy werklik het.

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 die kliënt plaaslik nodig het

Die gedokumenteerde kliëntopstelling vereis root of sudo, want dit installeer plaaslike onderskeppingsreëls eerder as om 'n tonnelkoppelvlak te skep. Daardie enkele feit verander die sekuriteitstorie: 'n proses met daardie regte kan verkeer vir die hele masjien herlei, nie net vir een toepassing nie. Behandel die regte as deel van die ontwerp en nie as 'n installasiedetail nie.

Bevestig watter reëls die gereedskap geïnstalleer het en dat hulle verdwyn wanneer dit afsluit. 'n Sessie wat ineenstort en onderskeppingsreëls agterlaat, kan verkeer lank nadat die operateur glo die verbinding is weg, in 'n swartgat laat beland, en die simptoom lyk soos 'n netwerkonderbreking eerder as 'n oorblywende reël.

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

Die eerste opdrag is die vorm van 'n tipiese oproep, met die voorvoegsel wat jy werklik nodig het. Die tweede wys wat die gereedskap geïnstalleer het, en die derde bevestig dat geen tonnelkoppelvlak verskyn het nie, wat die verwagte uitkoms vir hierdie ontwerp is.

Wat die afgeleë kant uitvoer

Die afgeleë kant is 'n gemagtigde SSH-rekening plus 'n versoenbare Python-helperomgewing. 'n Aanmelding wat onder 'n beperkte skulp slaag, verleen nie outomaties toestemming om daardie helper te laat loop nie, en 'n rekening wat die helper kan laat loop, bereik nie outomaties elke teikendiens nie. Albei feite hoort in die toegangsversoek eerder as in die probleemoplossingsnotas.

Beskerm gasheerversifikasie en die rekening se verifikasie. Om 'n onbekende gasheersleutel te aanvaar om die eerste verbinding te laat werk, verwyder die kontrole dat die afgeleë kant die masjien is wat jy bedoel het, wat hier meer saak maak as by 'n enkeldoelige deurstuur.

Beperk die afgeleë rekening tot die dienste wat die werksvloei nodig het, en beding daardie omvang met diegene wat die gasheer bedryf. Hulle is deel van die vertrouensverhouding, en geen instelling aan die kliëntekant verander dit nie.

Waar die vertrouensgrens lê

Om 'n private API-verbinding deur SSH deur te stuur, magtig nie elke API-bewerking nie. Toepassing-TLS en toepassingaanmelding geld steeds, en die gereedskap kan nie 'n ongemagtigde diens veilig maak nie. 'n Verdere sprong vanaf die afgeleë gasheer is ook nie outomaties dieselfde beskermde segment as die SSH-kanaal nie, want daardie tweede verbinding volg watter beleid die afgeleë gasheer ook al het.

Skryf die grens as een sin neer: verkeer na hierdie voorvoegsels verlaat deur hierdie rekening op daardie gasheer. As die sin 'n paragraaf uitsonderings nodig het, doen die ontwerp meer as wat sy dokumentasie beweer en verdien dit 'n tweede kyk voordat dit produksie bereik.

Bewys dit per protokol en kies dan die gereedskap

Toets elke vereiste protokol met 'n skadelose versoek, insluitend die oplosserpad en die adresfamilies wat die toepassing gebruik. Sluit 'n ontkoppeling by die toets in, sodat die toepassing se toegelate faling 'n bekende uitkoms word eerder as 'n verrassing tydens 'n voorval. 'n Sessie wat korrek deurgestuur het terwyl dit op was, sê niks oor wat gebeur sodra dit val nie.

Vir 'n handjievol dienste wat uitdruklik genoem word, is 'n gewone plaaslike deurstuur makliker om te besit en makliker om te ouditeer. Vir toepassingsverkeer wat by sy metode pas, bied sshuttle 'n wettige middelweg. Wanneer die vereiste breë IP-verbinding is, is 'n VPN-ontwerp die eerlike antwoord, en die keuse volg dekking en bedryfsverantwoordelikheid eerder as 'n rangorde van enkripsiealgoritmes.

Verwante artikels