Anda menganggap proxy SOCKS harus berjalan di tempat akses jaringan sudah ada. OpenSSH dapat menempatkan pendengar di tempat yang sama sekali lain. Penerusan dinamis jarak jauh membuka port SOCKS pada host jarak jauh dan memulai setiap koneksi dari klien SSH lokal Anda, yang membawa jalur VPN laptop Anda yang disetujui. Pi mendapat proxy yang terbatas; ia tidak mewarisi terowongan atau hak istimewa Anda.

Pendengar dan sisi asal koneksi bisa berbeda

ssh -D 1080 biasa menjalankan pendengar di mesin Anda sendiri dan mengirim koneksi keluar dari sana. Penerusan dinamis jarak jauh membaliknya: pendengar muncul di host jarak jauh, dan setiap koneksi yang diterimanya dibuka dari sisi lokal. manual klien OpenSSH mendokumentasikan -R tanpa tujuan tetap persis sebagai susunan SOCKS4/5 ini.

Perintah yang didukung dari laptop tampak seperti ini, dengan akun, host, dan port diperlakukan sebagai placeholder:

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

Tiga detail melakukan pekerjaan berguna di sana. -S none menjauhkan sesi dari master kendali bersama, ExitOnForwardFailure gagal cepat alih-alih meninggalkan Anda dengan sesi setengah terbuka, dan PermitRemoteOpen membatasi apa yang bisa dijangkau pendengar jarak jauh. Gunakan akun Pi yang diotorisasi dan verifikasi kunci host sebelum Anda menambahkan salah satu dari ini.

Apa yang sebenarnya dipaparkan pendengar jarak jauh

Periksa kebijakan penerusan server sebelum Anda mengandalkan pendengar. Dengan GatewayPorts no penerusan jarak jauh tetap terikat ke loopback, dan itulah paparan yang Anda inginkan. Server yang dikonfigurasi untuk memaksa penerusan wildcard menerbitkan port yang sama di setiap antarmuka, yang mengubah proxy pribadi menjadi sesuatu yang dapat dijangkau jaringan lokal.

Loopback juga bukan batas per pengguna. Proses lain di Pi dapat terhubung ke 127.0.0.1:1080 jika mengetahui portnya, jadi akun lokal Pi dan apa pun yang berjalan di atasnya adalah bagian dari desain akses Anda. Itu alasan untuk menjaga daftar tujuan tetap sempit, bukan alasan melewati pemeriksaan kebijakan.

Jaga tujuan yang diizinkan tetap spesifik untuk aplikasi yang ingin Anda capai. Menggantinya dengan penerusan tanpa batas agar program yang tidak terkait berfungsi melebarkan jalur jauh melampaui masalah yang Anda mulai. Daftar tujuan juga mencatat untuk apa sesi itu, yang membantu siapa pun yang mengauditnya nanti. Tuliskan di samping akun yang Anda gunakan.

Kirim satu aplikasi melalui proxy

Klien di Pi yang memahami proxy kemudian dapat mengirim permintaan. Awalan socks5h menyerahkan nama tujuan ke proxy, jadi pencarian dan koneksi keduanya terjadi di sisi laptop, dan itu cocok dengan tujuan bernama di PermitRemoteOpen:

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

Pertahankan validasi sertifikat normal dan autentikasi aplikasi itu sendiri. Proxy mengubah di mana koneksi TCP dibuat; ia tidak membuat layanan tanpa autentikasi menjadi aman, dan tidak mengubah titik akhir yang ditandatangani sendiri menjadi tepercaya.

Laptop tetap membutuhkan rute sendiri dan akses resolver ke server SSH maupun ke aplikasi. Lalu lintas klien SSH-nya harus dipilih oleh kebijakan VPN yang disetujui, dan pengecualian split-tunnel dapat mengirim lalu lintas itu melalui jalur yang berbeda dari yang Anda uji.

Buktikan jalurnya dan tutup

Pastikan pendengar ada di tempat yang Anda harapkan dan hanya tujuan yang dimaksud yang menjawab:

$ 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 dapat membuktikan penerusan sudah terbentuk, dan tetap tidak dapat menjamin bahwa proses masuk aplikasi berhasil di hilir. Uji aplikasinya, bukan hanya portnya. Pendengar yang menerima lalu menggagalkan setiap permintaan biasanya berarti nama tujuan atau rute laptop salah, bukan bahwa terowongan gagal.

Susunan ini hanya membawa TCP. UDP, ICMP, dan program yang mengabaikan pengaturan proxy tetap di luarnya, dan penerusan berakhir saat sesi SSH berakhir. Hentikan sesi itu setelah selesai dan hapus pengaturan proxy yang Anda tambahkan ke aplikasi.

Untuk akses permanen, gunakan pendaftaran resmi pemilik jaringan atau gateway terkelola sebagai gantinya. Proxy terbalik adalah alat yang salah untuk menghindari pembatasan perangkat atau sumber daya VPN; bila dipakai di dalamnya, ia hanyalah satu jalur aplikasi yang diotorisasi dengan batas yang eksplisit.

Artikel terkait