sshuttle kontraŭ plena VPN: kion ĝia metodo efektive kovras
sshuttle portas nur tion, kion subtenas ĝia plusendmetodo: unue kontrolu la kovradon de TCP, DNS kaj UDP, la bezonatajn lokajn privilegiojn kaj la foran helpanton.
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.
| Approach | What it carries | What it needs locally |
|---|---|---|
| SSH local forward | One explicitly named TCP destination | Nothing beyond the SSH client |
| sshuttle, nft or nat method | TCP and DNS to the routed prefixes | Root or sudo for firewall rules |
| sshuttle, tproxy method | TCP, DNS and general UDP | Root or sudo, and kernel support |
| IP VPN | Routed IP traffic in a tunnel | A 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.