sshuttle zgjidhet sepse SSH tashmë funksionon dhe kriptografia duket e njohur, dhe ky arsyetim kalon përtej pyetjes së vetme që vendos përshtatshmërinë. Cilat paketa largohen nga makina, cili llogari i mbart ato në anën tjetër dhe sa privilegj lokal kërkon mjeti. Këto tre përgjigje ndryshojnë sipas metodës së përcjelljes, prandaj një konfigurim që funksionon për një aplikacion mund të dështojë në heshtje për tjetrin. Shpjegimi më poshtë nis nga protokolli që aplikacioni ka vërtet nevojë.

Filloni me protokollin që i nevojitet aplikacionit

Mbështetja e protokolleve në sshuttle 2.0 varet nga metoda që zgjidhni. Metodat NAT dhe nft në Linux trajtojnë TCP dhe DNS, dhe TPROXY shton UDP të përgjithshme. Çdo platformë dhe metodë ka kufijtë e vet, dhe macOS ndërhyn përmes një mekanizmi krejt tjetër. Shënoni versionin e instaluar, metodën e zgjedhur dhe protokollet që i nevojiten aplikacionit përpara se të zgjidhni çfarëdo.

Një kërkesë TCP që funksionon provon pra shumë pak për një aplikacion UDP ose për çdo kërkim DNS. sshuttle i trajton TCP edhe si rrjedha në vend që të tunelizojë paketa të plota IP, prandaj një përfundim për xhiron e marrë hua nga një VPN e zakonshme nuk zbatohet këtu. Krahasoni mekanizmin që vërtet ekzekutoni me ngarkesën që vërtet keni.

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

Çfarë i nevojitet klientit në nivel lokal

Rregullimi i dokumentuar i klientit kërkon root ose sudo, sepse instalon rregulla lokale të ndërprerjes në vend që të krijojë një ndërfaqe tuneli. Ky fakt i vetëm ndryshon historinë e sigurisë: një proces me atë privilegj mund të ridrejtojë trafikun e të gjithë makinës, jo vetëm të një aplikacioni. Trajtojeni privilegjin si pjesë të projektimit dhe jo si detaj instalimi.

Konfirmoni cilat rregulla instaloi mjeti dhe se ato zhduken kur ai del. Një sesion i rrëzuar që lë pas rregulla ndërprerjeje mund ta dërgojë trafikun në një vrimë të zezë shumë kohë pasi operatori beson se lidhja ka ikur, dhe simptoma duket si defekt rrjeti dhe jo si një rregull i mbetur.

sudo sshuttle --method nft --dns 172.19.4.0/24
nft list ruleset | grep -i sshuttle
ip route

Komanda e parë është forma e një thirrjeje tipike, me prefiksin që ju nevojitet vërtet. E dyta tregon çfarë instaloi mjeti, dhe e treta konfirmon se nuk u shfaq asnjë ndërfaqe tuneli, që është rezultati i pritur për këtë projektim.

Çfarë ekzekuton ana e largët

Ana e largët është një llogari SSH e autorizuar plus një mjedis asistenti Python i pajtueshëm. Një hyrje që ka sukses nën një shell të kufizuar nuk jep automatikisht leje për të ekzekutuar atë asistent, dhe një llogari që mund ta ekzekutojë asistentin nuk arrin automatikisht në çdo shërbim objektiv. Të dyja faktet i përkasin kërkesës për akses dhe jo shënimeve të zgjidhjes së problemeve.

Mbronini verifikimin e identitetit të hostit dhe vërtetimin e llogarisë. Pranimi i një çelësi hosti të panjohur që lidhja e parë të funksionojë heq kontrollin që ana e largët është makina që kishit ndërmend, dhe kjo këtu peshon më shumë sesa në një përcjellje për një qëllim të vetëm.

Kufizoni llogarinë e largët te shërbimet që i nevojiten rrjedhës së punës, dhe negocioni atë shtrirje me ata që operojnë hostin. Ata janë pjesë e marrëdhënies së besimit, dhe asnjë rregullim në anën e klientit nuk e ndryshon këtë.

Ku ndodhet kufiri i besimit

Përcjellja e një lidhjeje private API përmes SSH nuk autorizon çdo operacion API. TLS i aplikacionit dhe hyrja në aplikacion vazhdojnë të zbatohen, dhe mjeti nuk mund ta bëjë të sigurt një shërbim pa vërtetim. As kërcimi tjetër nga hosti i largët nuk është automatikisht i njëjti segment i mbrojtur si kanali SSH, sepse ajo lidhje e dytë ndjek çfarëdo politike që ka hosti i largët.

Shkruajeni kufirin si një fjali: trafiku drejt këtyre prefikseve del përmes kësaj llogarie në atë host. Nëse fjalia kërkon një paragraf përjashtimesh, projektimi bën më shumë sesa pretendon dokumentacioni i tij dhe meriton një vështrim të dytë përpara se të arrijë në prodhim.

Provojeni për çdo protokoll, pastaj zgjidhni mjetin

Testoni çdo protokoll të nevojshëm me një kërkesë të padëmshme, duke përfshirë rrugën e zgjidhësit dhe familjet e adresave që përdor aplikacioni. Përfshini në test një shkëputje, që sjellja e lejuar e dështimit të aplikacionit të bëhet rezultat i njohur dhe jo surprizë gjatë një incidenti. Një sesion që përcillte saktë sa ishte aktiv nuk thotë asgjë për atë që ndodh kur bie.

Për disa shërbime të emërtuara shprehimisht, një përcjellje lokale e zakonshme është më e lehtë për t'u zotëruar dhe për t'u audituar. Për trafikun e aplikacioneve që përshtatet me metodën e tij, sshuttle ofron një rrugë të mesme legjitime. Kur kërkesa është lidhshmëri e gjerë IP, projektimi VPN është përgjigjja e ndershme, dhe zgjedhja ndjek mbulimin dhe përgjegjësinë operative dhe jo një renditje të algoritmeve të kriptimit.

Artikuj të ngjashëm