sshuttle vastaan täysi VPN: mitä sen menetelmä todella kattaa
sshuttle kuljettaa vain sen, mitä sen edelleenlähetysmenetelmä tukee: tarkista ensin TCP:n, DNS:n ja UDP:n kattavuus, tarvittavat paikalliset oikeudet ja etäavustaja.
sshuttle valitaan, koska SSH toimii jo ja salaus näyttää tutulta, ja tämä päättely ohittaa ainoan kysymyksen, joka ratkaisee sopivuuden. Mitkä paketit lähtevät koneesta, mikä tili kuljettaa ne toisella puolella ja kuinka paljon paikallisia oikeuksia työkalu vaatii. Nämä kolme vastausta vaihtelevat edelleenlähetysmenetelmän mukaan, joten yhdelle sovellukselle toimiva kokoonpano voi epäonnistua hiljaa seuraavalle. Alla oleva katsaus alkaa protokollasta, jota sovellus todella tarvitsee.
Aloita protokollasta, jota sovellus tarvitsee
Protokollatuki sshuttlessa 2.0 riippuu valitsemastasi menetelmästä. Linuxin NAT- ja nft-menetelmät käsittelevät TCP:n ja DNS:n, ja TPROXY lisää yleisen UDP:n. Jokaisella alustalla ja menetelmällä on omat rajansa, ja macOS sieppaa täysin erilaisella mekanismilla. Kirjaa asennettu versio, valittu menetelmä ja sovelluksen tarvitsemat protokollat ennen kuin valitset mitään.
Toimiva TCP-pyyntö todistaa siis hyvin vähän UDP-sovelluksesta tai jokaisesta DNS-kyselystä. sshuttle käsittelee myös TCP:tä virtoina sen sijaan, että se tunneloisi kokonaisia IP-paketteja, joten tavanomaisesta VPN:stä lainattu läpäisyjohtopäätös ei siirry. Vertaa mekanismia, jota todella ajat, kuormaan, joka sinulla todella on.
| 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 |
Mitä asiakas tarvitsee paikallisesti
Dokumentoitu asiakasjärjestely vaatii rootin tai sudon, koska se asentaa paikallisia sieppaussääntöjä sen sijaan, että loisitunneliliittymän. Tämä yksi seikka muuttaa turvallisuustarinan: prosessi, jolla on tuo oikeus, voi ohjata koko koneen liikennettä, ei vain yhden sovelluksen. Käsittele oikeutta osana suunnittelua, älä asennuksen yksityiskohtana.
Varmista, mitkä säännöt työkalu asensi ja että ne katoavat sen lopettaessa. Kaatuva istunto, joka jättää sieppaussäännöt jälkeensä, voi lähettää liikenteen mustaan aukkoon kauan sen jälkeen, kun ylläpitäjä uskoo yhteyden menneen, ja oire näyttää verkkohäiriöltä eikä jäljelle jääneeltä säännöltä.
sudo sshuttle --method nft --dns 172.19.4.0/24
nft list ruleset | grep -i sshuttle
ip route
Ensimmäinen komento on tyypillisen kutsun muoto, ja siinä on etuliite, jota todella tarvitset. Toinen näyttää, mitä työkalu asensi, ja kolmas vahvistaa, ettei tunneliliittymää ilmestynyt, mikä on tämän suunnittelun odotettu tulos.
Mitä etäpuoli suorittaa
Etäpuoli on valtuutettu SSH-tili ja yhteensopiva Python-avustajaympäristö. Kirjautuminen, joka onnistuu rajoitetussa kuoressa, ei automaattisesti anna lupaa käynnistää tätä avustajaa, eikä tili, joka pystyy käynnistämään avustajan, automaattisesti tavoita jokaista kohdepalvelua. Molemmat seikat kuuluvat käyttöoikeuspyyntöön, eivät vianetsintämuistiinpanoihin.
Suojaa isännän henkilöllisyyden varmennus ja tilin todennus. Tuntemattoman isäntäavaimen hyväksyminen ensimmäisen yhteyden toimimiseksi poistaa tarkistuksen siitä, että etäpuoli on se kone, jonka tarkoitit, ja tämä painaa täällä enemmän kuin yhden käyttötarkoituksen edelleenlähetyksessä.
Rajoita etätili työnkulun tarvitsemiin palveluihin ja neuvottele tämä laajuus isäntää ylläpitävien kanssa. He ovat osa luottamussuhdetta, eikä mikään asiakaspuolen asetus muuta sitä.
Missä luottamusraja kulkee
Yksityisen API-yhteyden edelleenlähetys SSH:n kautta ei valtuuta jokaista API-toimea. Sovelluksen TLS ja sovellukseen kirjautuminen pätevät edelleen, eikä työkalu voi tehdä todentamatonta palvelua turvalliseksi. Myöskään seuraava hyppy etäisännästä ei ole automaattisesti sama suojattu segmentti kuin SSH-kanava, koska se toinen yhteys noudattaa sitä käytäntöä, joka etäisännällä on.
Kirjoita raja yhdellä lauseella: liikenne näihin etuliitteisiin lähtee tämän tilin kautta tuolla isännällä. Jos lause tarvitsee kappaleen poikkeuksia, suunnittelu tekee enemmän kuin sen dokumentaatio väittää ja ansaitsee toisen silmäyksen ennen tuotantoon pääsyä.
Todista se protokollittain ja valitse sitten työkalu
Testaa jokainen tarvittava protokolla vaarattomalla pyynnöllä, mukaan lukien ratkaisijan polku ja ne osoiteperheet, joita sovellus käyttää. Sisällytä testiin myös yhteyden katkaisu, jotta sovelluksen sallittu epäonnistumiskäyttäytyminen tulee tunnetuksi tulokseksi eikä yllätykseksi häiriön aikana. Istunto, joka välitti oikein ollessaan käynnissä, ei kerro mitään siitä, mitä tapahtuu sen katkettua.
Muutamalle nimenomaisesti nimetylle palvelulle tavallinen paikallinen edelleenlähetys on helpompi omistaa ja helpompi auditoida. Sovellusliikenteelle, joka sopii sen menetelmään, sshuttle tarjoaa laillisen keskitien. Kun vaatimus on laaja IP-yhteys, VPN-suunnittelu on rehellinen vastaus, ja valinta seuraa kattavuutta ja operatiivista vastuuta eikä salausalgoritmien paremmuusjärjestystä.