sshuttle VPN oso baten aurka: zer estaltzen duen bere metodoak benetan
sshuttle-k bere birbidaltze-metodoak onartzen duena soilik garraiatzen du: egiaztatu lehenik TCP, DNS eta UDP estaldura, behar duen tokiko pribilegioa eta urrutiko laguntzailea.
sshuttle SSH dagoeneko dabilelako eta kriptografia ezaguna delako aukeratzen da, eta arrazoibide horrek egokitzen den erabakitzen duen galdera bakarra saihesten du. Zein paketek uzten dute makina, zein kontuk garraiatzen dituen beste aldean eta zenbat tokiko pribilegio eskatzen duen tresnak. Hiru erantzun horiek birbidaltze-metodoaren arabera aldatzen dira, beraz aplikazio batentzat dabilen konfigurazioak hurrengorako isilean huts egin dezake. Beheko ibilbidea aplikazioak benetan behar duen protokolotik abiatzen da.
Hasi aplikazioak behar duen protokolotik
sshuttle 2.0-n protokoloen euskarria aukeratzen duzun metodoaren araberakoa da. Linuxeko NAT eta nft metodoek TCP eta DNS kudeatzen dituzte, eta TPROXY-k UDP orokorra gehitzen du. Plataforma eta metodo bakoitzak bere mugak ditu, eta macOS-ek erabat desberdina den mekanismo baten bidez atzematen du. Idatzi instalatutako bertsioa, aukeratutako metodoa eta aplikazioak behar dituen protokoloak ezer aukeratu aurretik.
Beraz, funtzionatzen duen TCP eskaera batek oso gutxi frogatzen du UDP aplikazio bati edo DNS kontsulta bakoitzari buruz. sshuttle-k TCP fluxu gisa hartzen du IP pakete osoak tuneletu beharrean, beraz VPN arrunt batetik mailegatutako errendimendu-ondorioa ez da hemen aplikatzen. Alderatu benetan exekutatzen duzun mekanismoa benetan duzun kargarekin.
| 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 |
Zer behar duen bezeroak tokian
Dokumentatutako bezeroaren antolamenduak root edo sudo behar du, tunel-interfaze bat sortu beharrean tokiko atzemate-arauak instalatzen baititu. Gertakari bakar horrek segurtasun-istorioa aldatzen du: pribilegio hori duen prozesu batek makina osoaren trafikoa birbidera dezake, ez aplikazio batena soilik. Hartu pribilegioa diseinuaren parte eta ez instalazio-xehetasun.
Egiaztatu tresnak zein arau instalatu zituen eta irtetean desagertzen direla. Atzemate-arauak uzten dituen saio batek trafikoa zulo beltzera bidal dezake operadoreak konexioa joan dela uste duenetik askoz geroago, eta sintomak sare-matxura dirudi, geratutako arau bat ez bezala.
sudo sshuttle --method nft --dns 172.19.4.0/24
nft list ruleset | grep -i sshuttle
ip route
Lehen komandoa deialdi tipiko baten forma da, benetan behar duzun aurrizkiarekin. Bigarrenak tresnak zer instalatu zuen erakusten du, eta hirugarrenak tunel-interfazerik agertu ez zela egiaztatzen du, eta hori da diseinu honetarako espero den emaitza.
Zer exekutatzen duen urrutiko aldeak
Urrutiko aldea baimendutako SSH kontu bat eta bateragarria den Python laguntzaile-ingurune bat da. Shell murriztu batean arrakasta duen saio-hasierak ez du automatikoki laguntzaile hori exekutatzeko baimenik ematen, eta laguntzailea exekutatu dezakeen kontuak ez du automatikoki helmugako zerbitzu guztietara iristen. Bi gertakariak sarbide-eskaeran daude, ez arazoak konpontzeko oharretan.
Babestu ostalariaren identitatearen egiaztapena eta kontuaren autentifikazioa. Lehen konexioa lan egin dezan ostalari-gako ezezagun bat onartzeak urrutiko aldea nahi zenuen makina den egiaztapena kentzen du, eta hori hemen garrantzitsuagoa da helburu bakarreko birbidaltzean baino.
Mugatu urrutiko kontua lan-fluxuak behar dituen zerbitzuetara, eta negoziatu muga hori ostalaria kudeatzen dutenekin. Konfiantza-harremanaren parte dira, eta bezeroaren aldeko ezarpen batek ere ez du hori aldatzen.
Non dagoen konfiantza-muga
API konexio pribatu bat SSH bidez birbidaltzeak ez du API eragiketa guztiak baimentzen. Aplikazioaren TLS eta aplikazioko saio-hasiera oraindik aplikatzen dira, eta tresnak ezin du autentifikaziorik gabeko zerbitzu bat seguru bihurtu. Urrutiko ostalaritik egindako jauzi gehigarria ere ez da automatikoki SSH kanalaren segmentu babestu bera, bigarren konexio horrek ostalari urrutikoak duen politika jarraitzen baitu.
Idatzi muga esaldi bakar batean: aurrizki horietarako trafikoa kontu honetatik ateratzen da ostalari hartan. Esaldiak salbuespen-paragrafo bat behar badu, diseinuak bere dokumentazioak dioena baino gehiago egiten du eta bigarren begiratu bat merezi du ekoizpenera iritsi aurretik.
Froga ezazu protokolo bakoitzeko, eta gero aukeratu tresna
Probatu behar den protokolo bakoitza eskaera kaltegabe batekin, resolverraren bidea eta aplikazioak erabiltzen dituen helbide-familiekin batera. Sartu deskonexio bat proban, aplikazioaren hutsegite-jokabide baimendua emaitza ezaguna izan dadin, intzidente batean sorpresa izan beharrean. Martxan zegoela ondo birbidaltzen zuen saio batek ez du ezer esaten erortzean gertatzen denari buruz.
Berariaz izendatutako zerbitzu gutxi batzuetarako, tokiko birbidaltze arrunta errazagoa da edukitzeko eta ikuskatzeko. Bere metodoarekin bat egiten duen aplikazio-trafikorako, sshuttle-k erdibide zilegia eskaintzen du. Beharra IP konektibitate zabala denean, VPN diseinua da erantzun zintzoa, eta aukerak estaldura eta eragiketa-erantzukizuna jarraitzen ditu, ez zifratze-algoritmoen sailkapena.