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.

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

Š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.

Povezani članci