SSH yönləndirməsi ilə yalnız VPN-dən əlçatan HTTPS saytına çatmaq
Yalnız VPN vasitəsilə işləyən bir HTTPS xidmətini yerli SSH yönləndirməsi ilə birləşdirin, --connect-to ilə əsl host adını qoruyun və tək TCP yönləndirməsinin nəyi əhatə etmədiyini bilin.
Bir maşının artıq təsdiqlənmiş VPN girişi var, ikinci maşına isə yalnız bir özəl HTTPS xidməti lazımdır və yerli SSH yönləndirməsi ikinci maşına tunel vermədən bu boşluğu bağlaya bilər. Yönləndirmə bütün şəbəkəni deyil, bir TCP təyinatını daşıyır və məhz bu məhdudiyyət əsas məqamdır. Aşağıdakı beş addımı sıra ilə keçin, çünki hər biri fərqli səbəbdən uğursuz olur və sonrakı addım əvvəlki boşluğu xilas edə bilməz. Hər hansı ilkin şərt yoxdursa, bu dizayn onu həll etmir və heç bir əmr tənzimləməsi kömək etməyəcək.
Birinci addım: üç ilkin şərti təsdiqləyin
Hər hansı əmrin əhəmiyyət kəsb etməsindən əvvəl üç şey artıq doğru olmalıdır. Birinci maşından yönləndirmə hostu kimi istifadə etmək üçün icazə, ona işlək SSH girişi və nəzərdə tutulan təyinatına icazə verən server siyasəti lazımdır. Fayl ötürməsi üçün yaradılmış SSH hesabında yönləndirmə söndürülmüş ola bilər və yönləndirməyə icazə verən server yenə də onun vasitəsilə hansı təyinatların əlçatan olduğunu məhdudlaşdıra bilər. Sınaqdan əvvəl soruşun, çünki həmkarınızın iş stansiyasını razılaşma olmadan keçid nöqtəsi kimi istifadə etmək, əmr təmiz işləsə belə, siyasət problemidir.
Bu siyahının texniki yarısını iki əmr həll edir. Birincisi hesabın və açarın interaktiv sorğu olmadan işlədiyini sübut edir, ikincisi isə konfiqurasiya faylındakı şərhlənmiş nümunəni deyil, faktiki server siyasətini çap edir.
ssh -o BatchMode=yes [email protected] 'echo ok'
sudo sshd -T | grep -E 'allowtcpforwarding|permitopen'
İkinci addım: loopback portunu bağlayın və sessiyanı canlı saxlayın
Müştəri tətbiqini işlədən maşında özəl xidmətə yerli yönləndirmə açın. Onu açıq şəkildə loopback-ə bağlayın ki, yerli şəbəkəyə elan olunmasın və heç bir yerli xidmətin tutmadığı yüksək port seçin. İşləyərkən sessiyanı açıq saxlayın, çünki onu bağlamaq dinləyicini bağlayır. ExitOnForwardFailure rədd edilmiş bağlamanı və ya tutulmuş portu yönləndirməsiz açıq qalan sessiya əvəzinə dərhal çıxışa çevirir və ən çox vaxt itirən nasazlıq rejimi məhz budur.
Özəl əlaqə keçid hostundan qurulur, ona görə də həmin hostun DNS-i, marşrutları, VPN siyasəti və xidmət girişi işləməlidir. SSH sessiyası keçid hostunda olmayan əlçatanlığı yaratmır və VPN-in heç vaxt göndərmədiyi marşrutu bərpa edə bilməz. Dinləyicini əmrin səssizliyinə güvənmək əvəzinə həqiqətən olduğu yerdə təsdiqləyin.
ssh -N -o ExitOnForwardFailure=yes -L 127.0.0.1:9443:portal.lab.example:443 [email protected]
ss -ltn '( sport = :9443 )'
Üçüncü addım: soket yerli olduqda HTTPS adını qoruyun
https://127.0.0.1:9443/ ünvanına baxmaq TLS server adını və tətbiq səlahiyyətini dəyişir. portal.lab.example üçün verilmiş sertifikat loopback ünvanına qarşı doğrulanmayacaq və yaranan xəta yönləndirmə qısayolu deyil, pozulmuş sertifikat kimi görünəcək. Əmr sətri sınağı üçün əsl URL-i saxlayın və yalnız soket təyinatını dəyişin. --connect-to bunu edir və curl təlimatı aşağıda istifadə olunan dörd sahəli formanı sənədləşdirir.
curl --noproxy portal.lab.example --connect-to portal.lab.example:443:127.0.0.1:9443 https://portal.lab.example/
Ad URL-də, TLS əl sıxışmasında və Host başlığında qalır, TCP bağlantısı isə yerli dinləyiciyə gedir. Proxy-siz seçim sınağı konfiqurasiya edilmiş HTTP proksisinin onu tutmasına imkan vermək əvəzinə bu yönləndirmədə saxlayır və sertifikat yoxlamasının açıq qalması nəticəni mənalı edir.
Dördüncü addım: bir yönləndirmənin nəyi əhatə etmədiyini bilin
Tək TCP yönləndirməsi bir təyinat portunu əhatə edir. İkinci host adına yönləndirən, özəl şəbəkənin içindəki hostdan resurs yükləyən və ya başqa porta göndərən səhifə öz yönləndirməsinə ehtiyac duyur və bunların hər biri birincisi ilə eyni siyasət yoxlamasını tələb edir. Brauzer iş axınları öz tələblərini əlavə edir, çünki brauzerə əsl adı yerli porta proxy konfiqurasiyası və ya yerli xəritələmə ilə göndərmək tapşırılmalıdır. Buna görə uğurlu əmr sətri sınağı brauzerin də uğur qazanacağını sübut etmir, baxmayaraq ki, yolu sübut edir.
UDP, SMB kəşfi və domenə giriş TCP yönləndirməsindən heç keçmir. Əsl tələb ümumi şəbəkə girişidirsə, bu dizayn səhv vasitədir və dəstəklənən uzaqdan giriş şlüzü düzgün seçimdir.
Beşinci addım: təmizləyin və qeyd edin
Sınaq bitdikdə sessiyanı dayandırın və dinləyicinin getdiyini təsdiqləyin. Seçilmiş port artıq tutulmuşdusa, nömrəni boşaltmaq üçün əlaqəsiz yerli xidməti dayandırmaq əvəzinə başqa istifadə olunmayan loopback portu seçin və URL-i, sınaq əmrini və qeydi birlikdə yeniləyin. Noutbukda açıq qalan yönləndirmə diaqnostikanı idarə olunmayan xidmətə çevirir.
Keçid hostunu, yönləndirilən təyinatı, yerli portu və razılaşmanı kimin təsdiqlədiyini yazın. Yalnız kiminsə shell tarixçəsində mövcud olan yönləndirmə tək yenidən başlatma ilə təkrar araşdırmadan bir addım uzaqdır və növbəti şəxs üç ilkin şərtdən hansının artıq yoxlanıldığını bilməyəcək.