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.

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

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

Súvisiace články