15 September 2014

Dengan tmux, Tidak khawatir Lagi Saat Ngoprek Remote

Tulisan saya terdahulu Nohup, Perintah Shell Linux Agar Proses Tidak Terputus, mendapat tanggapan dari D. Prameswara dan memberkan info adanya software screen dan tmux yang dapat dipakai sebagai terminal yang aman ketika koneksi terputus atau terminal itu sendiri ditutup.

screen dan tmux disebut sebagai terminal yang bersifat multiplexing, persistence dan shared sessions. Tidak seperti terminal standard bawaan Ubuntu, yang bila ditutup, maka apa yang sedang kita kerjakan di terminal tersebut juga ikut lenyap. Bila kita sedang ngoprek script php pada remote server secara ssh, lalu tiba-tiba koneksi terputus, maka setelah login kembali, kita harus memulai dari awal lagi.

Nah, dengan menggunakan screen atau tmux, maka komputer / server akan menyimpan sesi tersebut, sehingga bila koneksi terputus atau terminal tertutup, maka kita dapat kembali masuk dan meneruskan pekerjaan kita.

Simulasi / contohnya begini:
Saya (dhenoer) akan masuk ke server mydomain.com melalui ssh, dan mengedit script php dengan vim misalnya.

laptop> ssh -l dhenoer mydomain.com
laptop> dhenoer@mydomain.com's password: _

server$ tmux
server$ cd public_html/myscript
server$ vim index.php

Tiba-tiba koneksi terputus.
Tidak masalah! Saya masuk kembali ke server dan melanjutkan perkejaan yang tertunda tadi.

laptop> ssh -l dhenoer mydomain.com
laptop> dhenoer@mydomain.com's password: _

server$ tmux attach

Nah, pekerjaan yang terputus tadi kembali sudah kembali ke hadapan kita.

Silakan pelajari fitur screen / tmux, keduanya hampir sama. Namun saya suka tmux karena saya langsung bisa mengenali kalau saya sedang berada di terminal tmux.

11 September 2014

Flashback Pemakaian Linux

Sedikit flashback dulu ah..

Tahun 1997an saya mulai mengenal linux RedHat 5 untuk install samba untuk file sharing dan printer sharing di tempat kerja. Teringat saat itu masih text-based banget, padahal sudah era Win95 lho. Lalu kemudian RedHat berikutnya memperkenalkan GUI. Namun untuk detect graphic adapter saja ribetnya minta ampun. Konfigurasi otomatis tidak bekerja secara optimal, harus setting manual dengan coba sana coba sini, paling banter cuma dapat resolusi 800x600 pixel. Untungnya server tidak memerlukan aplikasi-aplikasi di lingkungan GUI seperti itu, jadinya tidak pernah dipakai.

Berikutnya tahun 2003, saya mulai memakai Fedora yang merupakan pengembangan dari RedHat yang GUInya sudah semakin lumayan, sehingga dapat digunakan pada notebook dan dipakai untuk pemakaian sehari-hari. Tahun tersebut pertama kali saya melakukan presentasi (GIS berbasis Web yang dikembangkan dengan PHP+Mysql+Mapscript) menggunakan notebook yang telah diinstall Linux.

Hingga akhirnya pada tahun 2007, saya didemo oleh teman yang menawarkan Ubutu Muslim Edition (UbuntuME). Mungkin karena UbuntuME bernuansa hijau dengan wallpaper islamic banget bahkan ada program Zekrnya dan notifikasi waktu shalat, eh langsung saja saya tertarik, lalu memutuskan hubungan dengan Fedora. Sejak itu, Ubuntu melekat di hati hingga kini tetap memakai Ubuntu 14.04 LTS..

Free Software dan Ikhlas

Saya menemukan dokumen berbahasa indonesia yang menjelaskan tentang konsep "Free Software" GNU. Silakan lihat disini. Namun belum ditemukan penjelasan mengapa para developer begitu "ikhlas" bekerja bila software yang dibuat mereka kemudian dibagikan secara murah atau malah cuma-cuma ya..

Apapun itu, dalam dunia GNU mestinya ada model bisnis tersendiri yang bagi orang awam ilmunya belum mudeng. Tuh lihat saja Apache, PHP, MySql yang softwarenya dipakai oleh server-server hampir seantero jagat raya. Tuh lihat juga Google, Yahoo yang sudah ngasih akun email gratis sejak dulu, nggak pernah kedodoran padahal servernya tersebar clustered di penjuru dunia.

Jika kita hanya baru selevel penikmat, maka cukup bersyukur saja dapat menggunakan software yang free tapi halal, yang semoga membawa berkah sampai ke rumah. Namun bila ilmu kita cukup untuk menjadi problem solver bagi newbie yang ingin mencicipi Linux, maka jangan pelit tips, trik dan share pengalaman.

Dan jikalau ilmu kita lebih dalam lagi, coba deh kembangin software sendiri atau gabung dengan yang sudah ada. Saya yakin rejeki nanti mampir dengan sendirinya.. :-)

Link: https://docs.google.com/document/d/1TAxEOuIP2H1C0JhHA0rkJMI4pV4CuYrn2G0YD0Z0smo/edit?hl=en_US

01 September 2014

Mengakses Komputer Rumah dengan SSH Tunneling

Mengakses komputer yang ada di rumah? Paling asyik dengan TeamViewer seperti pernah saya tulis di Teamviewer, Solusi Mengakses Komputer di Bawah Router. Namun bila banwidth dan speed internet kita terbatas, penggunaan textbased terminal seperti SSH menjadi pilihan.

Namun bagaimana jika komputer di rumah tidak terkoneksi ke WAN yang modem/routernya dapat dikonfigurasi? SSH tidak akan tembus. Untuk itu digunakan SSH Tunneling, dengan membutuhkan satu komputer yang bertindak sebagai perantara, yang dapat diakses oleh kedua belah fihak sebagai SSH server.

Berikut adalah skema yang diperlukan:
  • Komputer Rumah di rumah yang melayani service SSH server, juga dapat mengakses SSH di server luar. Komputer ini nanti yang akan diakses oleh Komputer Subyek.
  • Komputer Perantara (Server) yang memiliki SSH Server dan dapat diakses kedua belah fihak.
  • Komputer Subyek yang akan mengakses komputer rumah.



Langkah yang dibutuhkan untuk masing-masing komputer adalah sbb:

Komputer Perantara (Server)

Ketentuan pada Komputer Perantara adalah sbb:
  • Dapat diakses oleh komputer kedua belah fihak. 
  • Boleh memiliki domain, boleh tidak. Misal memiliki domain namadomain.com. Bila tidak memiliki nama domain dapat digunakan nomor IP.
  • Service SSH Server berjalan pada port tertentu, misal 22 (default).

Komputer Rumah 

Dari Komputer Rumah dibuat tunnel ke Komputer Perantara, dengan cara menjalankan perintah ssh di terminal. Koneksi ssh ke Komputer Perantara dapat melalui nomor IP atau nama domainnya bila ada. Misalnya di Komputer Perantara (namadomain.com) tersedia username namauser, maka perintah ssh sbb:

> ssh -N -R 2222:localhost:22 namauser@namadomain.com

Keterangan:

-N menyatakan tidak perlu masuk ke terminal server

-R 2222:localhost:22 menyatakan bahwa dilakukan reverse tunneling pada port 2222. Kita bisa saja mengatur agar port ditentukan sendiri oleh server, dengan option -R 0:localhost:22

Komputer Subyek

Untuk mengakses Komputer Rumah, Komputer Subyek dapat masuk ke Komputer Perantara dengan ssh sebagai berikut:

> ssh namauser@namadomain.com

Setelah masuk terminal Komputer Perantara, akses ke Komputer Rumah dilakukan secara localhost pada port yang ditentukan sebelumnya oleh Komputer Rumag yaitu 2222 sbb:

> ssh namauser@localhost -p 2222

Dengan demikian maka Komputer Subyek sekarang sudah dapat mengakses Komputer Rumah.

Semoga bermanfaat