Port Forwarding melalui SSH Tunnel di Windows

Pada artikel ini, kami akan menunjukkan cara menggunakan server Windows OpenSSH bawaan untuk penerusan port melalui terowongan SSH (Penerowongan SSH). Port forwarding di SSH memungkinkan Anda untuk tunnel (forward) port aplikasi dari komputer lokal ke server jarak jauh dan sebaliknya. Sebelumnya, port forwarding melalui terowongan SSH hanya digunakan di lingkungan Linux / Unix, tetapi sekarang Anda dapat memanfaatkan fitur ini di Windows juga. Mari kita lihat contoh praktis tentang cara meneruskan koneksi RDP pada Windows Server melalui SSH server dengan port TCP terbuka 22.

Paling sering, penerusan porta melalui SSH digunakan dalam skenario ketika Anda harus terhubung ke komputer jarak jauh yang dilindungi oleh firewall. Misalnya, Anda memiliki server dengan Windows yang hanya membuka port SSH (TCP 22). Semua port lain diblokir oleh firewall perangkat keras atau firewall Windows. Tugas Anda adalah menyambung ke desktop server Windows ini menggunakan klien RDP. Tampaknya tugas yang mustahil, karena RDP 3389 diblokir oleh firewall. Namun, Anda dapat menggunakan teknologi port forwarding melalui terowongan ssh..

Skrip penerusan SSH berikut ini paling sering digunakan:

  • Penerusan TCP lokal - meneruskan port lokal ke server jauh;
  • Penerusan TCP jarak jauh - meneruskan port jarak jauh ke komputer lokal;
  • Terowongan ssh ganda - memungkinkan Anda untuk menghubungkan komputer melalui server SSH tanpa alamat IP putih khusus atau terletak di belakang NAT (jika solusi dengan OpenVPN tidak sesuai)

Akses RDP melalui terowongan SSH (penerusan TCP lokal)

Dalam mode ini, Anda membuat port TCP lokal di komputer Anda, koneksi yang dialihkan melalui terowongan SSH ke port yang ditentukan pada server jarak jauh. Dalam contoh ini, kita akan membuat porta lokal 8888, ketika terhubung ke mana pengalihan dilakukan dari port ini ke port RDP 3389 komputer jarak jauh. Diagram koneksi umum terlihat seperti ini:

Untuk membuat terowongan SSH menggunakan klien SSH bawaan (bawaan untuk Windows 10 1809 dan Windows Server 2019), jalankan perintah:

ssh -L 8888: 192.168.1.90: 3389 [email protected]

Agar terowongan SSH berfungsi di latar belakang, Anda perlu menambahkan parameter -f.

Sekarang, untuk terhubung ke komputer jarak jauh melalui terowongan SSH, Anda perlu menghubungkan klien RDP mstsc.exe ke port lokal 8888 komputer Anda:

127.0.0.1:8888

Masuk ke komputer jarak jauh dan Anda dapat bekerja dengan aman di sesi RDP, sementara Anda ingat bahwa port 3389 masih ditutup di firewall. Menggunakan TCPView, Anda dapat memverifikasi bahwa koneksi RDP dibuat secara lokal (koneksi RDP dimulai oleh server SSH yang menjalankan secara lokal).

Harap dicatat bahwa jika Anda mengarahkan lalu lintas aplikasi yang tidak dienkripsi dengan cara ini, maka itu dikirimkan dalam bentuk terenkripsi melalui jaringan. Lalu lintas dalam kasing dienkripsi di salah satu ujung koneksi SSH dan didekripsi di ujung lainnya.

Dalam mode ini, komputer lain di jaringan lokal Anda juga akan dapat terhubung ke server RDP jauh, bahkan jika mereka benar-benar memblokir akses langsung ke server jauh (baik melalui SSH dan RDP). Untuk melakukan ini, mereka harus menghubungkan klien RDP ke port 8888 di komputer Anda tempat terowongan SSH dibuat:

mstsc.exe / v 10.10.1.220:8888

Transfer port jarak jauh ke mesin lokal (Penerusan TCP jarak jauh)

Ada kasus penggunaan lain untuk terowongan SSH - penerusan TCP jarak jauh. Melalui terowongan SSH, Anda dapat mengizinkan akses server jarak jauh ke port lokal di komputer Anda atau port di komputer lain di jaringan lokal Anda. Misalnya, Anda ingin server eksternal (192.168.1.90) untuk mengakses situs Intranet Anda (tidak dipublikasikan di Internet). Untuk membuat terowongan terbalik, gunakan perintah ini:

ssh -R 8080: internalwebsever: 80 [email protected]

Sekarang, untuk mengakses server web internal pada server SSH jauh, cukup masukkan alamat di browser http: // localhost: 8080.

Di semua versi Windows, Anda bisa membuat aturan penerusan port menggunakan perintah portproxy antarmuka netsh.

Dengan terowongan SSH, Anda dapat membangun seluruh rantai untuk penerusan porta. Anda dapat mengaktifkan atau menonaktifkan penerowongan SSH di file konfigurasi sshd_config arahan:

AllowStreamLocalForwarding ya

Remote AllowTcpForwarding