sshuttle və tam VPN: metodu əslində nəyi əhatə edir
sshuttle yalnız ötürmə metodunun dəstəklədiyini daşıyır: əvvəlcə TCP, DNS və UDP əhatəsini, tələb etdiyi yerli imtiyazı və uzaq köməkçini yoxlayın.
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.
| 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 |
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.