sshuttle naspram pune VPN mreže: što njegova metoda stvarno pokriva
sshuttle prenosi samo ono što njegova metoda prosljeđivanja podržava: prvo provjerite pokrivenost TCP, DNS i UDP protokola, potrebne lokalne privilegije i udaljeni pomoćnik.
sshuttle se bira jer SSH već radi i kriptografija izgleda poznato, a to razmišljanje preskače jedino pitanje koje odlučuje odgovara li. Koji paketi napuštaju računalo, koji račun ih nosi na drugoj strani i koliko lokalnih privilegija alat traži. Ta se tri odgovora razlikuju po metodi prosljeđivanja, pa postavka koja radi za jednu aplikaciju može tiho zakazati za sljedeću. Pregled u nastavku počinje od protokola koji aplikacija doista treba.
Počnite od protokola koji aplikacija treba
Podrška za protokole u sshuttleu 2.0 zavisi od metode koju odaberete. Linux metode NAT i nft obrađuju TCP i DNS, a TPROXY dodaje opći UDP. Svaka platforma i metoda ima svoje granice, a macOS presreće kroz posve drugi mehanizam. Zabilježite instaliranu verziju, odabranu metodu i protokole koje aplikacija treba prije nego što išta odaberete.
Radni TCP zahtjev zato vrlo malo dokazuje o UDP aplikaciji ili o svakom DNS upitu. sshuttle također tretira TCP kao tokove umjesto da tunelira cijele IP pakete, pa zaključak o propusnosti posuđen od uobičajene VPN mreže ne prenosi se. Uporedite mehanizam koji stvarno pokrećete s radnim opterećenjem koje stvarno imate.
| 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 |
Što klijent treba lokalno
Dokumentirani raspored klijenta traži root ili sudo, jer instalira lokalna pravila presretanja umjesto da stvara tunelsko sučelje. Ta jedna činjenica mijenja sigurnosnu priču: proces s tom privilegijom može preusmjeriti promet cijelog računala, ne samo jedne aplikacije. Tretirajte privilegiju kao dio dizajna, a ne kao detalj instalacije.
Potvrdite koja je pravila alat instalirao i da nestaju kad se povuče. Srušena sesija koja ostavi pravila presretanja može promet poslati u crnu rupu davno nakon što operater povjeruje da je veza nestala, a simptom izgleda kao mrežni ispad, a ne kao zaostalo pravilo.
sudo sshuttle --method nft --dns 172.19.4.0/24
nft list ruleset | grep -i sshuttle
ip route
Prva naredba je oblik tipičnog poziva, s prefiksom koji vam stvarno treba. Druga pokazuje što je alat instalirao, a treća potvrđuje da se tunelsko sučelje nije pojavilo, što je očekivani rezultat ovog dizajna.
Što pokreće udaljena strana
Udaljena strana je ovlašteni SSH račun plus kompatibilno okruženje Python pomoćnika. Prijava koja uspije u ograničenoj ljusci ne daje automatski dopuštenje da se taj pomoćnik pokrene, a račun koji može pokrenuti pomoćnika ne doseže automatski svaku ciljnu uslugu. Obje činjenice pripadaju zahtjevu za pristup, a ne bilješkama za rješavanje problema.
Zaštitite provjeru identiteta hosta i autentifikaciju računa. Prihvaćanje nepoznatog ključa hosta da bi prva veza proradila uklanja provjeru da je udaljena strana računalo koje ste namjeravali, a to je ovdje važnije nego kod prosljeđivanja za jednu svrhu.
Ograničite udaljeni račun na usluge koje radni tok treba i dogovorite taj opseg s onima koji upravljaju hostom. Oni su dio odnosa povjerenja i nijedna postavka na strani klijenta to ne mijenja.
Gdje leži granica povjerenja
Prosljeđivanje privatne API veze kroz SSH ne ovlašćuje svaku API operaciju. TLS aplikacije i prijava u aplikaciju i dalje vrijede, a alat ne može neautentificiranu uslugu učiniti sigurnom. Ni sljedeći skok s udaljenog hosta nije automatski isti zaštićeni segment kao SSH kanal, jer ta druga veza slijedi kakvu god politiku udaljeni host ima.
Zapišite granicu jednom rečenicom: promet prema tim prefiksima izlazi kroz ovaj račun na onom hostu. Ako rečenica treba odlomak izuzetaka, dizajn radi više nego što tvrdi njegova dokumentacija i zaslužuje drugi pogled prije nego stigne u produkciju.
Dokažite to po protokolu, pa odaberite alat
Testirajte svaki potrebni protokol bezopasnim zahtjevom, uključujući put razrješivača i obitelji adresa koje aplikacija koristi. Uključite u test i prekid veze, da dopušteno ponašanje aplikacije pri kvaru postane poznat rezultat, a ne iznenađenje tijekom incidenta. Sesija koja je ispravno prosljeđivala dok je radila ne govori ništa o tome što se događa kad padne.
Za nekolicinu izričito imenovanih usluga obično lokalno prosljeđivanje lakše je posjedovati i lakše revidirati. Za aplikacijski promet koji odgovara njegovoj metodi sshuttle nudi legitiman srednji put. Kad je zahtjev široka IP povezanost, VPN dizajn je iskren odgovor, a izbor slijedi pokrivenost i operativnu odgovornost, a ne rangiranje algoritama šifriranja.