Apache Guacamole adalah clientless remote desktop gateway. Atau mudahnya: jika kita menginstall ini di sebuah gateway (atau di server remote), kita bisa mengakses Windows (via RDP), Linux (via VNC), atau SSH ke manapun dengan menggunakan browser saja.
Saat ini saya masih memakai Mini PC Router yang dibeli sekitar 2 tahun lalu. Mini PC ini cukup powerful untuk menjalankan berbagai aplikasi (memorinya 4 GB, dengan SSD 120 GB) termasuk juga Apache Guacamole yang memakai Java. Meskipun dalam 99% kasus saya lebih suka memakai aplikasi SSH langsung, tapi Guacamole ini sangat berguna ketika butuh akses GUI.
Sebelum memakai Guacamole saya memakai Team Viewer, tapi dulu sempat ada kecurigaan bug di team viewer yang memungkinkan orang masuk ke komputer kita. Selain masalah bug itu, TeamViewer juga kadang error ketika melakukan remote connection ke Linux. Solusi berikutnya yang saya coba adalah SSH + Port forwarding plus remote desktop dan VNC viewer. Hal ini cukup merepotkan, jadi jarang saya lakukan.
Sekarang dengan browser saja saya bisa melakukan koneksi ke rumah via Guacamole ke server Windows dan juga Linux. Untuk Linux saya menggunakan beberapa VNCServer (di satu server) untuk tujuan tertentu. Misalnya ada satu VNCServer untuk pentesting (yang memakai OWASP ZAProxy dengan GUI).
Saya juga memasang guacamole di server dedicated di Eropa. Kadang download sesuatu lebih cepat dilakukan dari server di Eropa. Dalam 90% kasus biasanya download bisa dilakukan di command line, tapi ada website yang melakukan banyak proteksi sehingga sulit dilakukan.
Contoh proteksi downloadnya:
- Hanya boleh ada 1 koneksi setiap waktu
- Harus memakai Cookie dan Cookienya terikat pada IP tertentu (jadi ketika dicopy paste ke server, jadi tidak valid)
- Harus memakai user agent tertentu (jadi jika memakai command line, user agent harus dicopy persis)
- Download menggunakan Javascript dan file didekrip di level Javascript
Daripada menghabiskan waktu mengakali, yang saya lakukan adalah:
- membuka guacamole
- memilih koneksi VNC ke server di Eropa
- menjalankan browser di dalam koneksi VNC
- mendownload file via browser yang berjalan di cloud
- mentransfer file dari server ke rumah
Sepertinya langkah tersebut merepotkan, tapi dalam kasus tertentu bisa menghemat waktu sangat banyak. Kadang download yang butuh 3 jam bisa dilakukan dalam 10 atau 15 menit.