sshuttle ona görə seçilir ki, SSH artıq işləyir və kriptoqrafiya tanış görünür, bu məntiq isə uyğunluğu həll edən yeganə sualı keçir. Hansı paketlər maşından çıxır, onları qarşı tərəfdə hansı hesab daşıyır və alət nə qədər yerli imtiyaz tələb edir. Bu üç cavab ötürmə metoduna görə dəyişir, ona görə bir tətbiq üçün işləyən qurulum növbəti üçün səssizcə uğursuz ola bilər. Aşağıdakı icmal tətbiqin həqiqətən ehtiyac duyduğu protokoldan başlayır.

Tətbiqin ehtiyac duyduğu protokoldan başlayın

sshuttle 2.0-də protokol dəstəyi seçdiyiniz metoddan asılıdır. Linux NAT və nft metodları TCP ilə DNS-i idarə edir, TPROXY isə ümumi UDP əlavə edir. Hər platforma və metod öz məhdudiyyətlərini gətirir, macOS isə tamamilə fərqli bir mexanizmlə müdaxilə edir. Nəyisə seçməzdən əvvəl quraşdırılmış versiyanı, seçilmiş metodu və tətbiqin ehtiyac duyduğu protokolları qeyd edin.

Buna görə işləyən TCP sorğusu UDP tətbiqi və ya hər DNS axtarışı barədə çox az şey sübut edir. sshuttle həmçinin TCP-yə bütöv IP paketlərini tünelləmək əvəzinə axın kimi baxır, ona görə adi VPN-dən götürülmüş ötürmə qabiliyyəti nəticəsi buraya keçmir. Həqiqətən işlətdiyiniz mexanizmi həqiqətən malik olduğunuz yüklə müqayisə edin.

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

Müştərinin yerli olaraq nəyə ehtiyacı var

Sənədləşdirilmiş müştəri quruluşu root və ya sudo tələb edir, çünki tunel interfeysi yaratmaq əvəzinə yerli tutma qaydaları quraşdırır. Bu tək fakt təhlükəsizlik hekayəsini dəyişir: belə imtiyaza malik proses yalnız bir tətbiq üçün deyil, bütün maşın üçün trafiki yönləndirə bilər. İmtiyaza quraşdırma detalı kimi deyil, dizaynın hissəsi kimi baxın.

Alətin hansı qaydaları quraşdırdığını və çıxarkən onların yox olduğunu təsdiqləyin. Tutma qaydalarını geridə qoyan qəzaya uğramış sessiya, operator bağlantının getdiyinə inandıqdan çox sonra trafiki qara dəliyə çevirə bilər və simptom qalan qayda kimi deyil, şəbəkə nasazlığı kimi görünür.

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

Birinci əmr tipik çağırışın formasıdır, həqiqətən lazım olan prefikslə. İkincisi alətin nə quraşdırdığını göstərir, üçüncüsü isə heç bir tunel interfeysinin görünmədiyini təsdiqləyir, bu dizayn üçün gözlənilən nəticə budur.

Uzaq tərəf nə işlədir

Uzaq tərəf icazəli SSH hesabı və uyğun Python köməkçi mühitidir. Məhdud shell altında uğurlu giriş həmin köməkçini işə salmaq icazəsini avtomatik vermir və köməkçini işlədə bilən hesab hər hədəf xidmətə avtomatik çatmır. Hər iki fakt nasazlıq qeydlərinə deyil, giriş sorğusuna aiddir.

Host şəxsiyyətinin yoxlanmasını və hesabın autentifikasiyasını qoruyun. İlk bağlantını işə salmaq üçün naməlum host açarını qəbul etmək, uzaq tərəfin nəzərdə tutduğunuz maşın olduğunu yoxlamağı aradan qaldırır və bu, burada tək məqsədli ötürmədən daha vacibdir.

Uzaq hesabı iş axınının ehtiyac duyduğu xidmətlərlə məhdudlaşdırın və bu əhatəni hostu idarə edənlərlə razılaşdırın. Onlar etimad münasibətinin hissəsidir və heç bir müştəri tərəfi parametri bunu dəyişmir.

Etimad sərhədi harada yerləşir

Şəxsi API bağlantısını SSH ilə ötürmək hər API əməliyyatına icazə vermir. Tətbiq TLS-i və tətbiqə giriş hələ də qüvvədədir və alət autentifikasiyasız xidməti təhlükəsiz edə bilməz. Uzaq hostdan əlavə addım da avtomatik olaraq SSH kanalı ilə eyni qorunan seqment deyil, çünki o ikinci bağlantı uzaq hostun hansı siyasəti varsa, ona tabedir.

Sərhədi bir cümlə kimi yazın: bu prefikslərə trafik o hostda bu hesabdan çıxır. Əgər cümlə bir paraqraf istisna tələb edirsə, dizayn sənədləşməsinin iddia etdiyindən çoxunu edir və istehsala çatmazdan əvvəl ikinci baxışa layiqdir.

Hər protokol üzrə sübut edin, sonra aləti seçin

Hər tələb olunan protokolu zərərsiz sorğu ilə sınayın, resolver yolunu və tətbiqin istifadə etdiyi ünvan ailələrini də daxil edin. Testə bağlantının kəsilməsini də qatın ki, tətbiqin icazəli nasazlıq davranışı hadisə zamanı sürpriz deyil, məlum nəticə olsun. İşləyərkən düzgün ötürən sessiya düşdükdən sonra nə olacağı barədə heç nə demir.

Adı açıq şəkildə çəkilmiş bir neçə xidmət üçün adi yerli ötürmə sahib olmaq və audit etmək baxımından daha asandır. Metoduna uyğun gələn tətbiq trafiki üçün sshuttle qanuni bir orta yol təklif edir. Tələb geniş IP bağlantısı olduqda, VPN dizaynı dürüst cavabdır və seçim şifrələmə alqoritmlərinin sıralamasını deyil, əhatəni və əməliyyat məsuliyyətini izləyir.

Əlaqəli məqalələr