Mengakses Webserver di Bawah Modem GSM dengan SSH Tunneling

00.36 Unknown 0 Comments


Satu jam sebelum presentasi dan demo, tiba-tiba salah seorang anggota tim mengabarkan tidak dapat hadir karena sakit, padahal proyek website yang sedang dikerjakan hanya tersimpan pada notebooknya. Apa yang Anda lakukan sekarang?

Apakah anda akan nekat membuang waktu dengan menjemput teman Anda yang memang sungguh sedang saki? Oh no, jangan! Sebaiknya biarkan ia beristirahat di rumah. Lagipula bila Anda terlambat datang di tempat presentasi, apa kata dunia?

Lalu, bagaimana dengan presentasinya?

Ya, tetap saja dilanjutkan. Minta teman anda yang sakit untuk menghidupkan notebooknya dan minta agar terus terhubung ke internet seperti biasa, baik menggunakan koneksi modem GSM atau tethering Android.

Untuk mengakses webserver yang ada di Notebook teman yang sakit tadi, dapat digunakan dua cara. Cara yang paling mudah adalah dengan TeamViewer, dan cara yang relatif sulit adalah menggunakan teknik SSH Tunneling.

Cara Mudah: TeamViewer


TeamViewer adalah produk yang free for peronal use. Untuk mengakses komputer lain melalui TeamViewer langkahnya cukup mudah. Kedua komputer harus sudah terinstall TeamViewer.

Jalankan TeamViewer, masing-masing akan memiliki ID yang unik yang permanen. Beradasrkan ID tersebut, kita dapat mengakses Desktop lain seperti halnya mengakses secara RDP atau VNC.

Berbeda dengan RDP atau VNC, menggunakan TeamViewer tidak perlu melakukan seting router. Lha, koneksi pakai GSM, router siapa pula yang mau diakses?

Cara (Relatif) Sulit: SSH Tunneling


Cara SSH Tunneling ini cukup menantang, karena dibutuhkan 1 buah server yang memiliki IP publik yang terinstall di dalamnya SSH server. Server mediator ini boleh server sendiri, server kantor, server teman, atau server apapun yang menyediakan akun SSH. Yang penting kita dapat mengaksesnya dari manapun.

Server mediator dapat diakses dengan nomor IP atau nama domain. Misalkan Server mediator tsb memiliki nama domain tunneling.org, dan menyediakan akun username tamu dengan password *******. 

Langkah 1:


Minta teman anda yang sakit untuk membuat reverse tunneling antara notebooknya dengan server tunneling.org. Caranya adalah memberi perintah sbb pada terminal:

teman$ ssh -R 8080:localhost:80 tamu@tunneling.org -N

Keterangan:

-R dimaksudkan agar dilakukan reverse tunneling, dengan memforward port 8080 di server tunneling.org ke port 80 di notebook teman. Kita sepakat bahwa port 80 itu adalah port standard untuk webserver.

tamu@tunneling.org  maksudnya login dengan akun username tamu di server dengan nama domain tunneling.org (jika tidak ada nama domain, dapat diganti dengan nomor IP)

-N memberitahu ssh-server bahwa tidak ada perintah lain selain menunggu.


Karena adanya opsi -N perintah ssh tidak menampilkan terminal di servertunneling.org, tetapi dalam kondisi listening saja. Dengan demikian minta teman jangan di-break selama koneksi tunneling sedang dibutuhkan.

Hingga langkah saat itu, sebenarnya webserver di notebook teman sudah bisa diakses oleh server tunneling.org. Dengan browser berbasis text (misal elinks atau lynx) yang tersedia di server tunneling.org, webserver dapat diakses dengan perintah sbb:

tunneling.org$ elinks http://localhost:8080

Maka akan tampil webserver yang tersimpan di notebook teman.

Kita memerlukan satu langkah lagi, agar webserver tsb juga dapat diakses dari komputer demo berbasis GUI.


Langkah ke 2:


Langkah berikutnya adalah membuat tunnel antara komputer demo dengan server tunneling.org. Berikut ini perintah yang diberikan dari komputer demo. 

demo$ ssh -L 8080:localhost:8080 tamu@tunneling.org -N

Keterangan:
-L memerintahkan bind port 8080 di komputer demo ke port 8080 di komputer server tunneling.org

Setelah itu buka Mozilla Firefox, lalu akses ke url http://localhost:8080





Mengapa jadi localhost?

Ya, karena komputer demo sudah bind dengan komputer server tunneling.org, dan komputer Server tunneling.org akan forward port 8080 ke 80 di komputer webserver teman.

0 komentar: