sshuttle proti plnému VPN: čo jeho metóda skutočne pokrýva
sshuttle prenáša len to, čo jeho metóda preposielania podporuje: najprv skontrolujte pokrytie TCP, DNS a UDP, potrebné lokálne oprávnenie a vzdialeného pomocníka.
sshuttle sa vyberá preto, že SSH už funguje a kryptografia vyzerá povedomo, a toto uvažovanie vynechá jedinú otázku, ktorá rozhoduje o vhodnosti. Ktoré pakety opúšťajú stroj, ktorý účet ich nesie na druhej strane a koľko lokálnych oprávnení nástroj vyžaduje. Tieto tri odpovede sa líšia podľa metódy preposielania, takže nastavenie, ktoré funguje pre jednu aplikáciu, môže pri ďalšej ticho zlyhať. Nasledujúci prehľad začína protokolom, ktorý aplikácia skutočne potrebuje.
Začnite protokolom, ktorý aplikácia potrebuje
Podpora protokolov v sshuttle 2.0 závisí od zvolenej metódy. Metódy NAT a nft v Linuxe zvládajú TCP a DNS a TPROXY pridáva všeobecné UDP. Každá platforma a metóda majú vlastné hranice a macOS zachytáva úplne iným mechanizmom. Pred akoukoľvek voľbou si zapíšte nainštalovanú verziu, zvolenú metódu a protokoly, ktoré aplikácia potrebuje.
Fungujúca požiadavka TCP teda o aplikácii UDP alebo o každej otázke DNS dokazuje len veľmi málo. sshuttle navyše berie TCP ako prúdy, namiesto toho aby tuneloval celé IP pakety, takže záver o priepustnosti požičaný z bežného VPN sa sem neprenáša. Porovnajte mechanizmus, ktorý skutočne spúšťate, so záťažou, ktorú skutočne máte.
| 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 |
Čo klient potrebuje lokálne
Dokumentované usporiadanie klienta vyžaduje root alebo sudo, pretože inštaluje lokálne pravidlá zachytávania namiesto vytvorenia tunelového rozhrania. Tento jediný fakt mení bezpečnostný príbeh: proces s týmto oprávnením môže presmerovať prevádzku celého stroja, nielen jednej aplikácie. Berte oprávnenie ako súčasť návrhu, nie ako detail inštalácie.
Overte, ktoré pravidlá nástroj nainštaloval a že pri ukončení zmiznú. Spadnutá relácia, ktorá po sebe nechá pravidlá zachytávania, môže poslať prevádzku do čiernej diery dávno po tom, čo si operátor myslí, že spojenie zmizlo, a príznak vyzerá ako výpadok siete, nie ako zvyšné pravidlo.
sudo sshuttle --method nft --dns 172.19.4.0/24
nft list ruleset | grep -i sshuttle
ip route
Prvý príkaz je podoba typického volania so skutočne potrebným prefixom. Druhý ukazuje, čo nástroj nainštaloval, a tretí potvrdzuje, že sa neobjavilo tunelové rozhranie, čo je pri tomto návrhu očakávaný výsledok.
Čo spúšťa vzdialená strana
Vzdialená strana je autorizovaný účet SSH plus kompatibilné prostredie pomocníka v Pythone. Prihlásenie, ktoré prejde v obmedzenom shelli, automaticky nedáva právo spustiť tohto pomocníka, a účet, ktorý pomocníka spustiť dokáže, automaticky nedosiahne každú cieľovú službu. Oba fakty patria do žiadosti o prístup, nie do poznámok k riešeniu problémov.
Chráňte overenie identity hostiteľa aj autentifikáciu účtu. Prijatie neznámeho kľúča hostiteľa, aby prvé spojenie fungovalo, odstraňuje kontrolu, že vzdialená strana je zamýšľaný stroj, a to tu váži viac ako pri preposielaní na jediný účel.
Obmedzte vzdialený účet na služby, ktoré pracovný postup potrebuje, a tento rozsah dohodnite s tými, ktorí hostiteľa prevádzkujú. Sú súčasťou vzťahu dôvery a žiadne nastavenie na strane klienta to nemení.
Kde leží hranica dôvery
Preposielanie súkromného pripojenia API cez SSH neoprávňuje na každú operáciu API. TLS aplikácie aj prihlásenie do aplikácie stále platia a nástroj nedokáže urobiť neautentifikovanú službu bezpečnou. Ani ďalší skok zo vzdialeného hostiteľa nie je automaticky rovnaký chránený segment ako kanál SSH, pretože toto druhé spojenie sa riadi politikou, ktorú vzdialený hostiteľ má.
Zapíšte hranicu jednou vetou: prevádzka do týchto prefixov odchádza týmto účtom na tom hostiteľovi. Ak veta potrebuje odsek výnimiek, návrh robí viac, než tvrdí jeho dokumentácia, a zaslúži si druhý pohľad, kým sa dostane do produkcie.
Dokážte to po protokoloch a potom zvoľte nástroj
Otestujte každý potrebný protokol neškodnou požiadavkou vrátane cesty prekladača a rodín adries, ktoré aplikácia používa. Zaradte do testu aj odpojenie, aby sa povolené správanie aplikácie pri zlyhaní stalo známym výsledkom a nie prekvapením počas incidentu. Relácia, ktorá počas behu správne preposielala, nič nehovorí o tom, čo sa stane po jej páde.
Pre hŕstku výslovne pomenovaných služieb je bežné lokálne preposielanie ľahšie na vlastníctvo aj na audit. Pre prevádzku aplikácií, ktorá zodpovedá jeho metóde, ponúka sshuttle legitímnu strednú cestu. Keď je požiadavkou široká IP konektivita, návrh VPN je čestnou odpoveďou a voľba sleduje pokrytie a prevádzkovú zodpovednosť, nie rebríček šifrovacích algoritmov.