Di sini tiga pengangkutan bertindan, dan setiap satu mempunyai pembingkaian sendiri. Muatan VPN bergerak di dalam sesi TLS, sesi TLS itu bergerak di dalam sambungan TCP ke port gelung balik, dan bait sambungan itu bergerak di dalam SSH ke hos geganti, yang membuka sambungan TCP sebenar ke pendengar VPN. Tiada apa dalam susunan ini mengubah apa yang OpenVPN sahkan, dan tiada apa di dalamnya menjadikan pendengar UDP boleh dicapai melalui TCP. Baca selebihnya sebagai huraian laluan bait, bukan resipi untuk memintas kawalan rangkaian.

Apa yang sebenarnya dipindahkan oleh pemajuan tempatan

Klien SSH mendengar pada port tempatan. Apabila proses tempatan bersambung, klien membungkus bait ke dalam saluran tersulitnya, dan bahagian pelayan membuka sambungan TCP baharu ke destinasi yang dinamakan dalam permintaan pemajuan.

Destinasi itu diselesaikan oleh geganti, bukan mesin anda, sebab itu nama yang hanya wujud di dalam rangkaian jauh masih berfungsi. Ini juga bermakna geganti mesti dapat mencapai pendengar VPN dan mempunyai laluan balik ke sana. Nama yang diselesaikan pada komputer riba anda tidak memberitahu apa-apa tentang apa yang geganti boleh lihat.

Memulakan sesi SSH hanya membuktikan bahawa geganti boleh dicapai dan disahkan. Ia tidak memberitahu sama ada pendengar seterusnya hidup, sama ada tembok api antara geganti dan pendengar menerima sambungan itu, atau sama ada VPN akan menerima profil anda.

Halakan klien ke pendengar tempatan

Contoh yang diisytiharkan: geganti boleh mencapai pendengar TCP di gw.internal.example:443, dan port tempatan tinggi mendedahkan laluan itu kepada mesin ini sahaja.

ssh -N -L 127.0.0.1:24011:gw.internal.example:443 [email protected]

Manual OpenSSH menghuraikan pemajuan tempatan sebagai menerima sambungan TCP secara tempatan dan membuka sambungan seterusnya dari sebelah jauh. Ikat pendengar pada gelung balik dan bukan pada semua antara muka, kerana pemajuan yang boleh dicapai dari rangkaian ialah geganti terbuka dengan nama anda padanya. Pengikatan kad bebas juga mendedahkan port kepada mana-mana akaun tempatan lain pada mesin kongsi.

Kemudian tetapkan klien VPN ke mod TCP dan halakan ke 127.0.0.1:24011. Jika profil menggunakan UDP, reka bentuk ini tidak dapat membantu: pemajuan membawa aliran bait, dan tiada laluan datagram melaluinya.

Asingkan kedua-dua pengesahan

SSH mengesahkan hos geganti. OpenVPN masih mengesahkan rakan VPN, dan destinasi gelung balik tidak mengubah keperluan itu. Mematikan pemeriksaan sijil kerana soket kini menunjuk ke localhost ialah jalan pintas terburuk dalam reka bentuk ini. Ia mengubah susunan pengangkutan menjadi susunan kepercayaan, dan tiada siapa meluluskan yang kedua.

Kekalkan sauh kepercayaan profil, pemeriksaan peranan pelayan dan pengesahan nama tanpa diusik. Jika klien anda membandingkan nama pelayan dengan alamat yang didail, gelung balik mungkin memerlukan tetapan nama eksplisit dan bukan pemeriksaan yang dimatikan, dan dokumentasi profil ialah tempat untuk mengesahkan medan mana yang dibandingkan.

Anggap geganti sebagai pihak kedua dalam kisah kepercayaan: pentadbirnya boleh melihat metadata sambungan dan boleh mengubah hala pemajuan jika konfigurasi diubah. Susunan ini memerlukan kelulusan daripada geganti dan pemilik perkhidmatan VPN, bukan hanya daripada yang memerlukannya hari ini.

Jangan bina gelung di bawah terowong

Setelah VPN memasang laluan, sambungan SSH yang membawanya masih memerlukan laluan ke geganti yang tidak melalui terowong. Jika laluan lalai berpindah ke VPN dan geganti hanya boleh dicapai melalui terowong yang sama, pengangkutan runtuh dan VPN turut pergi. Kegagalan kelihatan seperti terowong terputus dan bukan ralat penghalaan, sebab itu ia salah didiagnosis.

Pembaikan biasa ialah laluan hos ke alamat geganti yang dipin pada antara muka fizikal sebelum terowong naik, serta pemeriksaan bahawa laluan itu bertahan selepas sambungan semula. Sahkan dengan carian laluan untuk alamat geganti dan bukan dengan menganggap urutan itu betul.

Jangkakan juga tindanan ini lebih perlahan dan lebih rapuh daripada sambungan terus, kerana kini ada dua pengangkutan tersusun dan satu lagi titik akhir untuk diselenggara. Ia cara melintasi sempadan rangkaian, bukan teknik prestasi.

Tutup pendengar apabila selesai

Hentikan sesi SSH apabila terowong tidak lagi diperlukan, dan sahkan port tempatan telah dilepaskan. Pemajuan yang terlupa membiarkan laluan disahkan terbuka pada mesin yang mungkin dikongsi.

Semak juga destinasi pemajuan yang dibenarkan pada geganti, kerana konfigurasi permisif menjadikan mana-mana akaun yang terjejas sebagai pangsi umum. Catat port, geganti dan destinasi bersama-sama, supaya orang seterusnya tahu untuk apa pemajuan itu dan sama ada ia masih diluluskan.

Artikel berkaitan