Siz SOCKS proksisinin şəbəkə çıxışı artıq mövcud olan yerdə işləməli olduğunu düşünürsünüz. OpenSSH dinləyicini tamamilə başqa yerə yerləşdirə bilər. Uzaq dinamik yönləndirmə SOCKS portunu uzaq hostda açır və hər bağlantını noutbukunuzun təsdiqlənmiş VPN yolunu daşıyan yerli SSH klientinizdən başladır. Pi məhdud bir proksi alır; o, tunelinizi və ya imtiyazlarınızı miras almır.

Dinləyici ilə bağlantının başladığı tərəf fərqli ola bilər

Adi ssh -D 1080 dinləyicini öz maşınınızda işlədir və bağlantıları oradan göndərir. Uzaq dinamik yönləndirmə bunu tərsinə çevirir: dinləyici uzaq hostda görünür və qəbul etdiyi hər bağlantı yerli tərəfdən açılır. OpenSSH klient təlimatı sabit hədəf olmadan -R seçimini məhz bu SOCKS4/5 quruluşu kimi sənədləşdirir.

Noutbukdan verilən dəstəklənən əmr belə görünür; hesab, hostlar və port yer tutucu kimi qəbul edilir:

ssh -NT -S none -o ExitOnForwardFailure=yes \
  -o PermitRemoteOpen=app.corp.example:443 \
  -R 1080 [email protected]

Orada üç detal faydalı iş görür. -S none sessiyanı ortaq nəzarət masterindən uzaq saxlayır, ExitOnForwardFailure yarım açıq sessiya ilə qalmaq əvəzinə tez uğursuz olur və PermitRemoteOpen uzaq dinləyicinin nəyə çata biləcəyini məhdudlaşdırır. Səlahiyyətli Pi hesabı istifadə edin və bunlardan hər hansı birini əlavə etməzdən əvvəl host açarını yoxlayın.

Uzaq dinləyici əslində nəyi açır

Dinləyiciyə güvənməzdən əvvəl serverin yönləndirmə siyasətini yoxlayın. GatewayPorts no ilə uzaq yönləndirmə loopback-ə bağlı qalır və bu, istədiyiniz məruz qalma səviyyəsidir. Wildcard yönləndirməni məcbur edən server eyni portu hər interfeysdə yayımlayır və bu, şəxsi proksini yerli şəbəkənin çata bildiyi bir şeyə çevirir.

Loopback həm də istifadəçi başına sərhəd deyil. Pi-dəki başqa proses portu bilirsə 127.0.0.1:1080 ünvanına qoşula bilər, yəni Pi-nin yerli hesabları və onun üzərində işləyən hər şey giriş dizaynınızın bir hissəsidir. Bu, siyasət yoxlamasını atlamaq üçün deyil, hədəf siyahısını dar saxlamaq üçün bir səbəbdir.

İcazə verilən hədəfi çatmaq istədiyiniz tətbiqə xas saxlayın. Əlaqəsiz bir proqramı işlətmək üçün onu məhdudiyyətsiz yönləndirmə ilə əvəz etmək yolu başladığınız problemdən qat-qat artıq genişləndirir. Hədəf siyahısı həm də sessiyanın nə üçün olduğunu qeyd edir və bunu sonradan audit edən hər kəsə kömək edir. Onu istifadə etdiyiniz hesabın yanında yazın.

Bir tətbiqi proksidən keçirin

Pi-dəki proksini tanıyan klient sonra sorğunu göndərə bilər. socks5h prefiksi hədəf adını proksiyə verir, beləliklə axtarış və bağlantı hər ikisi noutbukun tərəfində baş verir və bu, PermitRemoteOpen içindəki adlandırılmış hədəflə uyğun gəlir:

curl --proxy socks5h://127.0.0.1:1080 \
  --noproxy '' https://app.corp.example/

Normal sertifikat yoxlamasını və tətbiqin öz autentifikasiyasını saxlayın. Proksi TCP bağlantısının harada qurulduğunu dəyişir; autentifikasiyasız xidməti təhlükəsiz etmir və özü imzalanmış son nöqtəni etibarlı bir nöqtəyə çevirmir.

Noutbuk hələ də həm SSH serverinə, həm də tətbiqə öz marşrutuna və həlledici girişinə ehtiyac duyur. Onun SSH klientinin trafiki təsdiqlənmiş VPN siyasəti ilə seçilməlidir və split-tunnel istisnası bu trafiki sınaqdan keçirdiyiniz yoldan fərqli bir yola göndərə bilər.

Yolu sübut edin və bağlayın

Dinləyicinin gözlədiyiniz yerdə olduğunu və yalnız nəzərdə tutulan hədəfin cavab verdiyini təsdiqləyin:

$ ss -ltnp | grep 1080
LISTEN 0 128 127.0.0.1:1080 0.0.0.0:*
$ curl -sS -o /dev/null -w '%{http_code}\n' \
    --proxy socks5h://127.0.0.1:1080 https://app.corp.example/

ExitOnForwardFailure yönləndirmənin qurulduğunu sübut edə bilər və yenə də tətbiqə girişin aşağı axında uğurlu olduğunu təsdiqləyə bilməz. Yalnız portu deyil, tətbiqi sınaqdan keçirin. Qəbul edib sonra hər sorğuda uğursuz olan dinləyici adətən tunelin uğursuz olduğunu deyil, hədəf adının və ya noutbukun marşrutunun səhv olduğunu bildirir.

Bu quruluş yalnız TCP daşıyır. UDP, ICMP və proksi parametrlərini nəzərə almayan proqramlar ondan kənarda qalır və yönləndirmə SSH sessiyası bitdiyi anda bitir. İşiniz bitəndə o sessiyanı dayandırın və tətbiqə əlavə etdiyiniz proksi parametrini silin.

Daimi giriş üçün əvəzinə şəbəkə sahibinin dəstəklənən qeydiyyatını və ya idarə olunan şlüzünü istifadə edin. Əks proksi VPN-in cihaz və ya resurs məhdudiyyətlərindən yayınmaq üçün səhv alətdir; onların daxilində istifadə edildikdə isə sadəcə açıq məhdudiyyətləri olan bir icazəli tətbiq yoludur.

Əlaqəli məqalələr