Belajar SSH Tunnel dan NGROX
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
ssh -L local_port:remote_address:remote_port user@ip-server
Kasus untuk akses aplikasi
ssh -L 8888:178.128.86.173:80 root@178.128.86.173
Local SSH Port Forwarding Menggunakan PuTTY
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
ssh -R remote_port:local_address:local_port user@ip-server
Kasus aplikasi web di local
ssh -R 8888:localhost:80 user@ip-server
Remote SSH Port Forwarding Menggunakan PuTTY
Di sisi server lakukan konfigurasi pada SSH server
sudo nano /etc/ssh/sshd_config
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.
AllowTcpForwarding yes
GatewayPorts yes
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
ssh -D local_port user@ip-server
Kasus membuat SOCKS proxy
ssh -D 8888 user@ip-server
Dynamic SSH Port Forwarding Menggunakan PuTTY
Setelah itu pasang SOCKS proxy di web browser, localhost dengan port 8888.
Dengan menggunakan SOCKS proxy, website yang kita akses melalui perantara server, sehingga yang terbaca mengunjungi website adalah IP server bukan IP komputer local kita.
Mengenal Ngrok
- Demo tanpa mendeploy
Sobat punya program lalu ingin ditest tanpa harus repot-repot menaruh file di server hosting? ngrok inilah salah satu pilihannya, dengan ngrok kita dapat secara langsung menunjukan hasil program yang ada di komputer / localhost ke komputer client melalui internet. - Mempermudah pengujian di perangkat mobile
Program yang kita selesaikan kadang perlu diuji dibeberapa perangkat mobile untuk memastikan apakah program dapat berjalan baik. - Membuat jaringan private
Ya dengan ngrok ini, anda mempunyai jaringan private untuk menjalankan layanan personal cloud yang fungsinya untuk mensinkronisasi file, menjalankan webmail dari hardware anda secara aman menggunakan end-to-end encryption.
- Mendaftar akun di situs https://ngrok.com/
- Masuk ke menu Getting Started -> Your Authtoken
- Silahkan copy authtoken Anda.
Klik link dari salah satu link yang ada, sobat akan dibawa ke daftar folder dan file yang ada di localhost. Untuk melihat traffic dari file yang diakses silahkan kunjungi http://localhost:4040/inspect/http.
- Referensi artikel https://musaamin.web.id/apa-itu-ssh-tunneling/
- Referensi artikel https://yapsamuel.blogspot.com/2016/12/pengertian-ngrok-dan-kegunaannya.html
- Gambar dari https://www.freepik.com/free-photo/architecture_1007099.htm
Komentar
Posting Komentar