SSH yerli ötürməsi TCP OpenVPN sessiyasını necə daşıyır
Bir yerli port, iki təsdiqlənmiş əlaqə, üç nəqliyyat qatı. SSH ötürməsinin nə daşıdığı və dövrə ilə sertifikat yoxlamalarının hara təsadüf etdiyi.
Burada üç nəqliyyat qatı üst-üstə yığılır və hər birinin öz çərçivəsi var. VPN faydalı yükü TLS sessiyasının içində gedir, həmin TLS sessiyası loopback portuna TCP bağlantısının içində gedir, o bağlantının baytları isə SSH içində relay hostuna gedir və o host VPN dinləyicisinə real TCP bağlantısını açır. Bu düzüm heç bir halda OpenVPN tərəfindən təsdiqlənənə toxunmur və UDP dinləyicisini TCP üzərindən əlçatan etmir. Bunun qalanını bayt yolunun təsviri kimi oxuyun, şəbəkə nəzarətini yan keçmək resepti kimi deyil.
Yerli ötürmə əslində nəyi daşıyır
SSH müştərisi yerli portda dinləyir. Yerli proses qoşulanda müştəri baytları şifrələnmiş kanalına yığır və server tərəfi ötürmə sorğusunda adı çəkilən təyinat nöqtəsinə yeni TCP bağlantısı açır.
Bu təyinatı relay həll edir, sizin maşınınız deyil, buna görə yalnız uzaq şəbəkənin içində mövcud olan ad yenə işləyir. Bu həm də o deməkdir ki, relay VPN dinləyicisinə çata və ona geri marşrut qura bilməlidir. Dizüstü kompüterinizdə həll olunan ad relay-in nə görə biləcəyi barədə sizə heç nə demir.
SSH sessiyasını başlatmaq yalnız relay-in əlçatan və təsdiqlənmiş olduğunu sübut edir. O, növbəti dinləyicinin işləyib-işləmədiyini, relay ilə dinləyici arasındakı firewall-un bağlantını qəbul edib-etmədiyini və ya VPN-in profilinizi qəbul edib-etməyəcəyini demir.
Müştərini yerli dinləyiciyə yönəldin
Bəyan edilmiş nümunə: relay gw.internal.example:443 ünvanındakı TCP dinləyicisinə çata bilir və yüksək yerli port bu yolu yalnız bu maşına açır.
ssh -N -L 127.0.0.1:24011:gw.internal.example:443 [email protected]OpenSSH təlimatı yerli ötürməni TCP bağlantılarını yerli qəbul edib sonrakı bağlantını uzaq tərəfdən açan mexanizm kimi təsvir edir. Dinləyicini hər interfeysə deyil, loopback-a bağlayın, çünki şəbəkədən əlçatan ötürmə sizin adınıza açıq relay-dir. Wildcard bağlama portu paylaşılan maşında başqa yerli hesaba da açır.
Sonra VPN müştərisini TCP rejiminə keçirin və 127.0.0.1:24011 ünvanına yönəldin. Profil UDP işlədirsə, bu dizayn kömək edə bilməz: ötürmə bayt axını daşıyır və onun içindən datagram yolu yoxdur.
İki təsdiqləməni ayrı saxlayın
SSH relay hostunu təsdiqləyir. OpenVPN hələ də VPN həmyaşıdını təsdiqləyir və loopback təyinatı bu tələbi dəyişmir. Soket indi localhost-a baxdığı üçün sertifikat yoxlamalarını söndürmək bu dizaynda mövcud olan ən pis qısa yoldur. Bu, nəqliyyat düzümünü etimad düzümünə çevirir və ikincisinə heç kim razılıq verməyib.
Profilin etimad lövbərini, server rolu yoxlamasını və ad doğrulamasını toxunulmaz saxlayın. Müştəriniz server adını yığdığı ünvanla müqayisə edirsə, loopback söndürülmüş yoxlama yerinə açıq ad parametrinə ehtiyac duya bilər və hansı sahənin müqayisə olunduğunu təsdiqləmək üçün yer profil sənədləridir.
Relay-i etimad hekayəsində ikinci tərəf kimi qəbul edin: onun administratoru bağlantı metadatasını görə və konfiqurasiya dəyişdirilsə ötürməni yönləndirə bilər. Düzüm həm relay-in, həm də VPN xidmətinin sahibinin təsdiqini tələb edir, yalnız bu gün ona ehtiyacı olanın deyil.
Tunelin altında dövrə qurmayın
VPN marşrutları quraşdırdıqdan sonra onu daşıyan SSH bağlantısına hələ də relay-ə tuneldən keçməyən yol lazımdır. Defolt marşrut VPN-ə keçsə və relay yalnız həmin tuneldən əlçatan olsa, nəqliyyat çökür və VPN də onunla gedir. Nasazlıq marşrut xətası kimi deyil, düşmüş tunel kimi görünür, buna görə də səhv diaqnoz qoyulur.
Adi həll tunel qalxmazdan əvvəl relay ünvanına fiziki interfeysə bərkidilmiş host marşrutu və yenidən qoşulmadan sonra marşrutun qalmasını yoxlamaqdır. Bunu sıranın düzgün olduğunu fərz etməklə deyil, relay ünvanı üçün marşrut axtarışı ilə yoxlayın.
Həm də gözləyin ki, bu yığın birbaşa bağlantıdan yavaş və kövrək olsun, çünki indi iki nizamlı nəqliyyat və saxlanmalı daha bir son nöqtə var. Bu, şəbəkə sərhədini keçmək üsuludur, performans texnikası deyil.
Bitirdikdə dinləyicini bağlayın
Tunel artıq lazım olmayanda SSH sessiyasını dayandırın və yerli portun azad edildiyini təsdiqləyin. Unudulmuş ötürmə paylaşıla bilən maşında təsdiqlənmiş yolu açıq saxlayır.
Relay-in icazə verilmiş ötürmə təyinatlarını da nəzərdən keçirin, çünki icazəli konfiqurasiya istənilən sındırılmış hesabı ümumi dayaq nöqtəsinə çevirir. Portu, relay-i və təyinatı birlikdə qeyd edin ki, növbəti şəxs ötürmənin nə üçün olduğunu və hələ təsdiqlənib-təsdiqlənmədiyini bilə.