14 Oktober 2014

Mencetak Dokumen dengan Remote Terminal

Malam ini saya mendapat kabar bahwa dokumen untuk presentasi harus sudah siap besok pagi. Padahal dokumen tersebut akan menghabiskan 1 rim kertas HVS A4 untuk dicetak. Bagaimana dong? Apa bisa besok berangkat kantor pagi-pagi sekali?

Tidak perlu! Saya cukup mengirimkan file PDF tersebut ke kantor, lalu print dari kantor malam ini juga!


Tanpa Berangkat ke Kantor, Bagaimana Caranya?


Gampang! Bila petugas penjaga gedung kantor jago komputer, tinggal minta beliau dengan sopan untuk mencetakkan dokumen penting ini yang dapat di download pada url bla-bla-bla terus diprint bla-bla-bla... :)

Kata penjaga kantor: "Kalo gue jago komputer, pasti sudah cabut dari sini dari dulu!" Haha..

Baiklah, mari kita mulai! Berikut ini adalah diagram skema jaringan antara notebook saya di rumah dengan LAN yang ada di tempat kerja:



Kebetulan tempat kerja saya sudah pasang nama domain (myoffice.org misalnya). Sehingga lebih mudah diingat saat akan mengakses server utama yang berisi WebServer, SSH Server dan Mail Server, yang selalu ON terus 24 jam dan ditanami Ubuntu 14.04 LTS Server.

Sementara PrinterServer dipasangi juga Ubuntu 14.04 LTS Desktop, terhubung dengan dua buah printer Laser dan Deskjet. Selain sudah otomatis terinstall Cups Server, juga sudah ditambahi SSH Server untuk kebutuhan adminitrasi remote. Bagi yang belum install SSH Server, dapat install lewat terminal sbb:

at_printserver$ sudo apt-get install openssh-server



Ok, mari kita lanjutkan! Berikut ini langkah selanjutnya yang mesti dilakukan:
 

1. Pastikan Peralatan di Tempat Kerja Sudah On

Ini penting, mengingat semua PC desktop, printer server dan printer di tempat kerja saya selalu di-shutdown setiap sore, maka mau tidak mau harus meminta penjaga kantor untuk menghidupkan printer server dan printernya. Sekaligus minta dengan sopan agar mengisi tray printer dengan 1 rim kertas HVS. Untungnya beliau mengerti cara melakukannya.


2. Kirim File yang Akan Dicetak ke Cloud Storage

File yang akan dicetak harus sudah dalam format PDF, dapat dikirimkan ke Cloud Storage di DropBox atau Google Drive dll., atau bisa juga dikirim ke email, atau disimpan di webserver sendiri.


3. Lakukan Koneksi ke Server Utama Kantor

Agar dapat masuk ke dalam Server Utama, maka modem/router ADSL harus sudah dikonfigurasi sedemikian rupa agar dapat menerima permintaan SSH dari luar, yang kemudian diforward ke Server Utama. Bila belum, silakan baca artikel saya yang lain tentang Meng-online-kan WebServer.

Untuk mengakses Server Utama di kantor, saya melakukan ssh pada terminal sbb:

at_notebook$ ssh dhenoer@myoffice.org

Setelah mendapatkan autentikasi, saya sekarang sudah berada di Server Utama


4. Lakukan Koneksi ke Printer Server

Dari Server Utama, dengan ssh dilakukan koneksi ke Printer Server pada IP misal 192.168.1.44. Agar koneksi aman dari diskoneksi yang tidak terduga, dapat digunakan tmux atan screen.

Berikut ini cara koneksi ke Printer Server:

at_mainserver$ ssh dhenoer@192.168.1.44

Setelah mendapatkan autentikasi, saya sudah berada di Printer Server, siap untuk mencetak.


5. Ambil File yang Akan Dicetak dari Cloud Storage

File PDF yang akan dicetak dapat didownload dengan perintah wget sbb:

at_printserver$ wget http://<url-file-pdf-di-download>

tunggu hingga selesai.


6. File Siap Dicetak
 
Setelah download selesai, misal namanya adalah naskah.pdf, maka dapat dicetak dengan perintah sbb:

at_printserver$ lp -d MyLaserJet naskah.pdf

Maka printer akan mulai menjalankan tugasnya. Mudah-mudahan tidak paper-jam! :-)

Keterangan
MyLaserJet adalah NAME untuk printer yang akan dituju. Untuk mengetahui NAME printer apa saja, dapat digunakan perintah sbb:

at_printserver$ lpstat -a

MyLaserJet accepting requests since XXXXXX
MyDeskJet accepting requests since XXXXXX

dan untuk mengetahui progress pencetakan, dapat digunakan perintah

at_printserver$ lpstat


tanpa argumen, akan menampilkan progress antrian pencetakan.

File yang dapat dicetak oleh lp adalah file text, PDF, image dan PostScript.



Demikian semoga bermanfaat!

13 Oktober 2014

Meng-online-kan Webserver

Bagi pengguna Linux yang menggunakan koneksi internet lewat Speedy atau ISP lain, baik di rumah, sekolah,maupun kantor, sudahkah webserver Linux Anda online?

Berikut ini skema jaringan yang umum dibawah ISP:


Dengan asumsi bahwa webserver sudah berhasil diakses dari jaringan lokal, maka berikut langkah-langkah untuk mebuatnya dapat diakses secara global.

Langkah 1. Pastikan Webserver sudah Memiliki IP Private Statis

IP private statis adalah IP private yang tidak berubah bila komputer di-restart berulang kali. Bila belum, baca tautan Cara Memasang IP Static pada Ubuntu


Langkah 2. Mengatur Modem/Router ADSL dari ISP

Setiap modem/router ADSL dari ISP dapat dikonfigurasi, bacalah buku manualnya. Masing-masing merek memiliki cara tersendiri.

Biasanya konfigurasi dapat diakses dengan menggunakan browser internet pada alamat gatewaynya, misal http://192.168.1.1. Masukan alamat IP tersebut pada url browser Anda, bila itu benar IP modem/router, maka akan tampil permintaan autentikasi untuk memasukkan username dan password.

Jika belum diubah oleh petugas saat pemasangan ADSL, default username dan password dapat dicari di Google. Misalkan untuk modem TPLink, username dan password default keduanya adalah 'admin'.

Setelah berhasil masuk, cari modul pengaturan advance. Beberapa merek memasukkannya pada modul "Port Forwarding", dan ada juga pada modul "Virtual Server". Hati-hati jangan mengubah konfigurasi pada modul WAN, karena bila salah akan menyebabkan koneksi ke Internet gagal, dan anda harus memanggil petugas ISP untuk melakukan pengaturan ulang.

Secara umum, pada modul Port Forwarding, biasanya berbentuk sbb:

Pada contoh diatas, permintaan service web pada port 80 yang diterima modem/router melalui IP Publik akan diteruskan ke komputer lokal yang ada pada IP 192.168.1.11 port 80.

Untuk service yang lain, misal SSH server pada port 22, atau SMTP pada port 25 dapat diteruskan ke IP lokal juga, dapat didaftarkan pada port-forwarding tersebut.

Bila sudah di-set rule port-forwarding seperti itu, lalu disimpan dan di-apply maka permintaan dari luar ke nomor IP Publik pada ADSL akan diteruskan ke komputer yang ditunjuk pada IP lokal tersebut.



Langkah 3. Pastikan IP Publik ADSL bersifat Static

Untuk memastikan pakah IP modem/router memiliki IP publik yang statis atau dinamis, silakan konfirmasi ke ISP yang bersangkutan. Bila malas kondirmasi, silakan cek lewat Google cari dengan keyword "my ip", dan catat hasilnya. Restart modem/router anda, kemudian periksa lagi IP apakah masih sama dengan yang sebelumnya. Bila masih sama, lakukan beberapa kali untuk meyakinkan.

Tempat saya bekerja, mendaftar Speedy paket 1Mb yang dilakukan sebelum tahun 2014 mendapatkan IP statis. Namun ketika migrasi ke paket 3Mb pada tahun 2014, hanya mendapatkan IP dinamis. Katanya untuk memiliki IP statis harus daftar sebagai akun Gold, yang sudah pasti lebih mahal biaya bulanannya.


Langkah 4. Mendaftar Nama Domain

Nama domain mudah sekali didaftarkan pada perusahaan domain provider yang menawarkan harga antara 10 USD hingga puluhan USD per tahun. Cari saja domain provider yang menerima pembayaran lewat kartu kredit atau PayPal. Mungkin ada juga penyedia jasa dari Indonesia yang dapat dibayar melalui transfer via ATM. Namun saya belum pernah malakukannya.

Nama domain yang didaftarkan untuk TLD .com, .org, .info tidak membutuhkan persyaratan khusus. Siapa saja dapat melakukannya. Sedangkan domain .co.id, .or.id, .sch.id, .ac.id dll, harus melampirkan surat-surat resmi yang berhubungan dengan kelambagaan.

Jika pembayaran sudah diselesaikan, biasanya 24 - 48 jam nama domain sudah siap dan sudah diparkir di server milik domain provider.

Langkah 5. Pencatatan pada DNS

Biasanya domain provider memiliki akses ke DNS. Konsumen dapat mencatatkan IP Publik (hasil dari langkah 3) pada DNS yang bersangkutan, melalui control panel berbasis web yang disediakan. Pada umumnya bentuk formnya sbb:

Pada form di atas, IP modem/router ADSL dicatatkan pada baris www dan @. Misal nama domain yang didaftar adalah domainku.com, maka dapat dipanggil dengan domainku.com atau www.domainku.com. Atau bila anda bisa membuat virtual host di webserver sendiri, sehingga dapat dipanggil data.domainku.com, cctv.domainku.com, internal.domainku.com dll.

Pengaturan DNS biasanya tidak akan lama, paling tidak satu jam pemanggilan nama domain sudah aktifdan diteruskan ke IP yang didaftarkan. Untuk mengeceknya, lakukan perintah sbb pada terminal:

$ dig domainku.com


Demikian catatan saya untuk meng-online-kan webserver linux, yang pada dasarnya dapat diterapkan untuk layanan lain, misal SSH server, mail server, CCTV, dll. Semoga bermanfaat.

Catatan: Untuk modem/router ADSL yang memiliki IP Dinamis, jangan khawatir! Anda tetap dapat meng-online-kan server anda melalui cara yang lain. Tunggu tulisan berikutnya.

09 Oktober 2014

Cara Memasang IP Static pada Ubuntu

Ubuntu biasanya menggunakan IP address dinamis yang diberikan server DHCP yang ditemukan di jaringan tersebut, biasanya ada pada modem/router atau Server DHCP lainnya. Kecuali tidak ditemukan, maka IP address harus diberikan secara manual.

Misalkan ingin memberi IP Address 192.168.1.11 dengan netmask 255.255.255.0, gateway 192.168.1.11, dan dns 8.8.8.8.

Berikut ini cara memberikan IP statis dengan GUI dan dengan terminal.

Cara Memberi IP Address Static dengan GUI


1. Jalankan aplikasi Network, lalu klik Options



2. Klik tab IPv4 Settings

  • Pilih Method: Manual
  • Klik add untuk mengisi IP Address, Netmask dan Gateway
  • Masukkan DNS Servers

3. Klik Save..
4. Restart Network


Cara Memberi IP Static dari Terminal

Masukan ke terminal

$ sudo nano /etc/network/interfaces

masukan baris berikut

auto eth0
iface eth0 inet static
  address 192.168.1.11
  netmask 255.255.255.0
  gateway 192.168.1.1
  dns-nameserver 8.8.8.8


lalu simpan dan restart network


Semoga catatan ini bermanfaat.

08 Oktober 2014

Cara Mengakses Aplikasi (text/GUI) secara Remote dengan SSH

Lagi-lagi tentang SSH yang orang awam pernah menyangka bahwa SSH adalah "internet gratis". Selain secara pribadi saya tidak menyukai phreaking model begituan, toh kan saya masih mampu beli pulsa buat pakai internet secara halal. :-)

Kali ini saya akan mengajak pengguna Linux mengenal apa itu SSH Server dan X server.

Beberapa waktu yang lalu ada member grup yang menanyakan server di Linux apa saja. Ada yang memberi jawaban dengan beberapa aplikasi server yang populer seperti Apache, PHP, MySql, SSH Server dll. Namun sebenarnya ada yang terlewati, justru yang sering kita pakai setiap hari, yaitu X Server.


Apa itu X Server?


Secara sejarah gitu, Linux awalnya dikembangkan untuk aplikasi Client-Server. Sehingga apapun, tidak lepas dari algoritma client-server. Ada aplikasi yang meminta (client), dan ada aplikasi yang listening terus pada port atau socket tertentu sambil menunggu permintaan dan lalu memberi jawaban (server).

Bahkan hingga permintaan bagaimana tampilan grafis (GUI) di layar monitor menggunakan algoritma client-server. Karena bertindak sebagai server itu, berarti bisa dong service X diminta oleh komputer lain?

Tentu saja! Ini yang menarik makanya saya ingin mengajak teman-teman mencobanya.

Apa itu SSH Server?


Sekali lagi, SSH itu BUKAN aplikasi "inject internet gratis". SSH adalah Secure Shell, yaitu aplikasi untuk mengakses komputer secara remote dan terenkripsi. Biasanya banyak dipakai oleh adminstrator jaringan atau web. Secrara remote, user dapat login ke komputer lain dan menjalankan perintah-perintah yang tersedia pada komputer tersebut.

Uji Coba


Skenarionya begini, kita akan menjalankan aplikasi baik GUI maupun text yang ada di komputer lain secara remote.


Misalkan: Komputer remote menjalankan Ubuntu Desktop dan mendapatkan IP 192.168.1.100, serta juga menjalankan SSH-Server. Bagi yang belum pasang SSH Server dapat diinstall dengan

remote$ sudo apt-get install openssh-server


Lalu dari komputer lain, misalkan Lubuntu, masuklah ke terminal, kemudian jalankan

local$ ssh -X username@192.168.1.100

Keterangan:
-X memerintahkan remote agar keluaran GUI dari X Server diforward ke komputer lokal.
username@192.168.1.100 adalah username akun yang ada pada 192.168.1.100

Setelah memasukkan password, lalu komputer remote siap diberi perintah. Coba saja panggil aplikasi yang tersdia pada komputer remote tsb, semisal nautilus, gnome-calculator, evince, gimp, dia dll. dengan mengetikkan di layar terminal:

username@remote$ nautilus

Hasilnya bagaikan komputer remote tersebut ada di depan kita.



Bagaimana Mengakses dari Windows?


Beberapa aplikasi yang dapat dicoba dipakai untuk mengakses Linux dari Windows adalah sbb:
  • PUTTY untuk mengakses SSH server dan menjalankan perintah-peritah Linux berbasis text.
  • MobaXterm is an enhanced terminal for Windows with an X11 server, a tabbed SSH client and several other network tools for remote computing (VNC, RDP, telnet, rlogin). MobaXterm brings all the essential Unix commands to Windows desktop, in a single portable exe file which works out of the box. ---penulis belum pernah mencoba software yang ini--

Selamat mencoba. Salam..

Mengakses Webserver di Bawah Modem GSM dengan SSH Tunneling

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 server tunneling.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.

Demikian mudah-mudahan bermanfaat. Salam!