in Networking

Apa itu SSH Tunneling?

SSH (Secure Shell) client yang terhubung ke SSH server dapat menjalankan perintah untuk melakukan konfigurasi atau manajemen server yang diremote. Selain untuk kebutuhan remote server, SSH juga dapat menjadi protokol untuk transfer file dengan menggunakan SCP (Secure Copy) dan SFTP (Secure FTP). Masih ada lagi yang dapat kita lakukan dengan protokol SSH ini, yaitu SSH Tunneling.

SSH Tunneling

Dengan menggunakan SSH Tunneling, memungkinkan kita untuk mem-forward sebuah port dari remote server ke local atau sebaliknya, dapat juga berfungsi sebagai Proxy server. Lebih mudah dalam konfigurasi dibandingkan dengan Virtual Private Network, yang bertujuan untuk mengamankan komunikasi private network melalui public network.

Ada 3 tipe SSH Tunneling yang masing-masing memiliki tujuan berbeda, yaitu Local Port Forwarding, Remote Port Forwarding, dan Dynamic Port Forwarding. Semuanya dapat dilakukan dengan menggunakan perintah ssh (OpenSSH client) di Linux, macOS, dan sistem operasi Unix-like lainnya. Di Windows kita dapat menggunakan SSH client seperti PuTTY atau Xshell.

Local SSH Port Forwarding

Tipe ini mem-forward port yang diminta di local ke remote server. Misalnya kita ingin mengakses sebuah aplikasi web yang berada di remote server, tetapi terhalang firewall, sehingga tidak bisa diakses secara langsung, hanya komputer yang berada dalam satu private network yang bisa mengaksesnya.

Perintah Local SSH Port Forwarding

Kasus untuk akses aplikasi

Local SSH Port Forwarding Menggunakan PuTTY

Apa itu SSH Tunneling?

PuTTY – SSH Tunneling Local Port Forwarding

Setelah menjalankan perintah tersebut, kita dapat mengakses aplikasi web http://localhost:8888. Ketika mengakses http://localhost:8888, sebenarnya kita sedang mengakses http://178.128.86.173 pada remote server.

Remote SSH Port Forwarding

Tipe ini merupakan kebalikan dari Local SSH Port Forwarding atau biasa juga disebut Reverse SSH Port Forwarding. Misalnya aplikasi yang ada di komputer local ingin dapat diakses di internet.

Perintah Remote SSH Port Forwarding

Kasus aplikasi web di local

Remote SSH Port Forwarding Menggunakan PuTTY

Apa itu SSH Tunneling?

PuTTY – SSH Tunneling Remote Port Forwarding

Di sisi server lakukan konfigurasi pada SSH server

Aktifkan opsi di bawah ini dengan melepas tanda #. Hal ini dilakukan agar SSH server menjadi Gateway dan mem-forward paket TCP, sehingga yang ingin mengakses aplikasi web tidak harus melakukan Local SSH Port Forwarding ke server atau berada dalam satu network dengan server.

Sekarang kita mengakses http://178.128.86.173:8888, yang diakses sebenarnya adalah web server pada komputer local.

Dynamic SSH Port Forwarding

Tipe ini sama seperti proxy atau VPN. Misalnya kita ingin mengakses sebuah web secara aman, menyembunyikan Public IP Address, lokasi geografis, atau mengakses website yang hanya bisa diakses dari negara tertentu saja. SSH client akan membuat SOCKS proxy yang nantinya dikonfigurasikan ke sistem operasi atau web browser.

Perintah Dynamic SSH Port Forwarding

Kasus membuat SOCKS proxy

Dynamic SSH Port Forwarding Menggunakan PuTTY

Apa itu SSH Tunneling?

PuTTY – SSH Tunneling Dynamic Port Forwarding

Setelah itu pasang SOCKS proxy di web browser, localhost dengan port 8888.

Apa itu SSH Tunneling?

Mozill Firefox – Connection Settings SOCKS Proxy

Dengan menggunakan SOCKS proxy, website yang kita akses melalui perantara server, sehingga yang terbaca mengunjungi website adalah IP server bukan IP komputer local kita.

Seorang penggiat teknologi digital yang saat ini fokus menggeluti profesi system administrator dengan sistem operasi Linux dan FreeBSD. Anda membutuhkan jasa sysadmin, silakan hubungi melalui email hai[at]musaamin.web.id, Telegram @musaamin, dan WhatsApp 081354302717.