sshuttle valitakse sellepärast, et SSH juba töötab ja krüptograafia tundub tuttav, ning see arutluskäik jätab vahele ainsa küsimuse, mis otsustab sobivuse. Millised paketid masinast lahkuvad, milline konto neid teisel pool kannab ja kui palju kohalikke õigusi tööriist nõuab. Need kolm vastust erinevad edastusmeetodi kaupa, seega ühe rakenduse jaoks töötav seadistus võib järgmise jaoks vaikselt ebaõnnestuda. Alljärgnev käsitlus algab protokollist, mida rakendus tegelikult vajab.

Alustage protokollist, mida rakendus vajab

Protokollide tugi sshuttle'is 2.0 sõltub valitud meetodist. Linuxi meetodid NAT ja nft käsitlevad TCP-d ja DNS-i ning TPROXY lisab üldise UDP. Igal platvormil ja meetodil on oma piirid ning macOS püüab kinni täiesti teistsuguse mehhanismi kaudu. Pange enne millegi valimist kirja paigaldatud versioon, valitud meetod ja protokollid, mida rakendus vajab.

Toimiv TCP-päring tõestab seega väga vähe UDP-rakenduse või iga DNS-päringu kohta. sshuttle käsitleb TCP-d ka voogudena, selle asemel et terveid IP-pakette tunnelisse panna, mistõttu tavalisest VPN-ist laenatud läbilaskvusjäreldus ei kandu üle. Võrrelge mehhanismi, mida tegelikult käitate, koormusega, mis teil tegelikult on.

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

Mida klient kohapeal vajab

Dokumenteeritud kliendilahendus vajab root- või sudo-õigusi, sest see paigaldab kohalikud püüdmisreeglid, selle asemel et luua tunneliliides. See üks fakt muudab turvalugu: sellise õigusega protsess saab ümber suunata kogu masina liiklust, mitte ainult ühe rakenduse oma. Käsitlege õigust disaini osana, mitte paigaldusdetailina.

Kinnitage, millised reeglid tööriist paigaldas, ja et need kaovad väljumisel. Kokkujooksnud seanss, mis jätab püüdmisreeglid maha, võib liikluse musta auku saata kaua pärast seda, kui operaator arvab, et ühendus on kadunud, ja sümptom näeb välja nagu võrgu rike, mitte nagu alles jäänud reegel.

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

Esimene käsk on tüüpilise kutse kuju, tegelikult vajaliku prefiksiga. Teine näitab, mida tööriist paigaldas, ja kolmas kinnitab, et tunneliliidest ei tekkinud, mis on selle disaini puhul oodatud tulemus.

Mida kaugpool käitab

Kaugpool on volitatud SSH-konto ja ühilduv Pythoni abikeskkond. Piiratud kestas õnnestuv sisselogimine ei anna automaatselt luba seda abistajat käivitada, ja konto, mis suudab abistajat käivitada, ei jõua automaatselt iga sihtteenuseni. Mõlemad faktid kuuluvad juurdepääsutaotlusse, mitte tõrkeotsingu märkmetesse.

Kaitske hosti identiteedi kontrolli ja konto autentimist. Tundmatu hostivõtme aktsepteerimine, et esimene ühendus töötaks, eemaldab kontrolli, et kaugpool on masin, mida kavatsesite, ja see loeb siin rohkem kui ühe eesmärgiga edastuse puhul.

Piirake kaugkonto teenustega, mida töövoog vajab, ja leppige see ulatus kokku hosti haldajatega. Nad on usaldussuhte osa ja ükski kliendipoolne seade ei muuda seda.

Kus asub usalduspiir

Privaatse API-ühenduse edastamine SSH kaudu ei volita iga API-toimingut. Rakenduse TLS ja rakendusse sisselogimine kehtivad endiselt ning tööriist ei saa autentimata teenust turvaliseks muuta. Ka järgmine hüpe kaugelt hostist ei ole automaatselt sama kaitstud segment kui SSH-kanal, sest see teine ühendus järgib seda poliitikat, mis kaugel hostil on.

Kirjutage piir ühe lausega: liiklus nende prefiksite juurde väljub selle konto kaudu sellel hostil. Kui lause vajab erandite lõiku, teeb disain rohkem, kui selle dokumentatsioon väidab, ja väärib teist pilku enne tootmisse jõudmist.

Tõestage seda protokolli kaupa ja valige siis tööriist

Testige iga vajalikku protokolli kahjutu päringuga, kaasa arvatud resolveri tee ja aadressiperekonnad, mida rakendus kasutab. Lisage testi ka ühenduse katkestus, et rakenduse lubatud tõrkekäitumine saaks teadaolevaks tulemuseks, mitte üllatuseks intsidendi ajal. Seanss, mis edastas õigesti seni, kuni töötas, ei ütle midagi selle kohta, mis juhtub pärast selle kukkumist.

Mõne selgesõnaliselt nimetatud teenuse puhul on tavaline kohalik edastus lihtsamini hallatav ja auditeeritav. Rakendusliikluse puhul, mis selle meetodiga sobib, pakub sshuttle õiguspärast keskteed. Kui nõue on lai IP-ühenduvus, on VPN-i disain aus vastus ning valik järgib katvust ja operatiivset vastutust, mitte krüpteerimisalgoritmide pingereastikku.

Seotud artiklid