sshuttle pret pilnu VPN: ko tā metode patiešām aptver
sshuttle pārnes tikai to, ko atbalsta tā pārsūtīšanas metode: vispirms pārbaudiet TCP, DNS un UDP pārklājumu, nepieciešamās vietējās tiesības un attālo palīgu.
sshuttle izvēlas tāpēc, ka SSH jau darbojas un kriptogrāfija šķiet pazīstama, un šis pamatojums izlaiž vienīgo jautājumu, kas izšķir piemērotību. Kuri paketi atstāj ierīci, kurš konts tos nes otrā pusē un cik daudz vietējo tiesību prasa rīks. Šīs trīs atbildes atšķiras atkarībā no pārsūtīšanas metodes, tāpēc vienai lietotnei strādājoša konfigurācija var klusi ciest neveiksmi nākamajai. Tālāk sniegtais apskats sākas ar protokolu, kas lietotnei patiešām nepieciešams.
Sāciet ar protokolu, kas nepieciešams lietotnei
Protokolu atbalsts sshuttle 2.0 ir atkarīgs no izvēlētās metodes. Linux NAT un nft metodes apstrādā TCP un DNS, un TPROXY pievieno vispārīgu UDP. Katrai platformai un metodei ir savas robežas, un macOS pārtver ar pilnīgi citu mehānismu. Pirms kaut ko izvēlēties pierakstiet instalēto versiju, izvēlēto metodi un protokolus, kas nepieciešami lietotnei.
Tāpēc strādājošs TCP pieprasījums pierāda ļoti maz par UDP lietotni vai par katru DNS vaicājumu. sshuttle arī uztver TCP kā plūsmas, nevis tunelē veselus IP paketus, tāpēc caurlaidības secinājums, kas aizgūts no parasta VPN, šeit nepārnesas. Salīdziniet mehānismu, ko patiešām darbināt, ar slodzi, kas jums patiešām ir.
| 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 |
Kas klientam nepieciešams lokāli
Dokumentētais klienta izvietojums prasa root vai sudo, jo tas instalē vietējos pārtveršanas noteikumus, nevis veido tuneļa saskarni. Šis viens fakts maina drošības stāstu: process ar šīm tiesībām var novirzīt visas ierīces datplūsmu, ne tikai vienas lietotnes. Uztveriet tiesības kā dizaina daļu, nevis instalācijas detaļu.
Pārliecinieties, kādus noteikumus rīks instalēja un ka tie pazūd, kad tas beidz darbu. Avārijā nonākusi sesija, kas atstāj pārtveršanas noteikumus, var nosūtīt datplūsmu melnajā caurumā ilgi pēc tam, kad operators uzskata, ka savienojums ir pazudis, un simptoms izskatās kā tīkla bojājums, nevis kā palicis noteikums.
sudo sshuttle --method nft --dns 172.19.4.0/24
nft list ruleset | grep -i sshuttle
ip route
Pirmā komanda ir tipiska izsaukuma forma ar patiešām nepieciešamo prefiksu. Otrā parāda, ko rīks instalēja, un trešā apstiprina, ka tuneļa saskarne nav parādījusies, kas ir gaidītais rezultāts šim dizainam.
Ko darbina attālā puse
Attālā puse ir autorizēts SSH konts un saderīga Python palīga vide. Pieslēgšanās, kas izdodas ierobežotā čaulā, automātiski nedod atļauju palaist šo palīgu, un konts, kas spēj palaist palīgu, automātiski nesasniedz katru mērķa pakalpojumu. Abi fakti pieder piekļuves pieprasījumam, nevis problēmu novēršanas piezīmēm.
Aizsargājiet resursdatora identitātes pārbaudi un konta autentifikāciju. Nezināmas resursdatora atslēgas pieņemšana, lai pirmais savienojums darbotos, noņem pārbaudi, vai attālā puse ir paredzētā ierīce, un tas šeit sver vairāk nekā vienam mērķim paredzētā pārsūtīšanā.
Ierobežojiet attālo kontu ar pakalpojumiem, kas nepieciešami darbplūsmai, un vienojieties par šo tvērumu ar tiem, kas pārvalda resursdatoru. Viņi ir uzticēšanās attiecību daļa, un neviens klienta puses iestatījums to nemaina.
Kur atrodas uzticēšanās robeža
Privāta API savienojuma pārsūtīšana caur SSH nepiešķir atļauju katrai API darbībai. Lietotnes TLS un pieslēgšanās lietotnei joprojām ir spēkā, un rīks nevar padarīt drošu pakalpojumu bez autentifikācijas. Arī nākamais lēciens no attālā resursdatora nav automātiski tas pats aizsargātais segments kā SSH kanāls, jo tas otrais savienojums seko politikai, kāda ir attālajam resursdatoram.
Pierakstiet robežu vienā teikumā: datplūsma uz šiem prefiksiem iziet caur šo kontu tajā resursdatorā. Ja teikumam vajadzīga izņēmumu rindkopa, dizains dara vairāk, nekā apgalvo tā dokumentācija, un ir pelnījis otru skatienu pirms nonākšanas ražošanā.
Pierādiet to katram protokolam un tad izvēlieties rīku
Pārbaudiet katru nepieciešamo protokolu ar nekaitīgu pieprasījumu, ieskaitot atrisinātāja ceļu un adrešu saimes, ko lietotne izmanto. Iekļaujiet testā arī atvienošanos, lai lietotnes atļautā kļūmes uzvedība kļūtu par zināmu rezultātu, nevis pārsteigumu incidenta laikā. Sesija, kas pareizi pārsūtīja, kamēr darbojās, neko nepasaka par to, kas notiek pēc tās pārtraukuma.
Dažiem skaidri nosauktiem pakalpojumiem parasta vietējā pārsūtīšana ir vieglāk pārvaldāma un vieglāk auditējama. Lietotņu datplūsmai, kas atbilst tā metodei, sshuttle piedāvā likumīgu vidusceļu. Kad prasība ir plašs IP savienojamība, VPN dizains ir godīgā atbilde, un izvēle seko pārklājumam un operatīvajai atbildībai, nevis šifrēšanas algoritmu reitingam.