Cara Install dan Konfigurasi Apache Guacamole – Apache Guacamole adalah aplikasi remote desktop berbasis web yang memungkinkan kita mengakses server atau PC (RDP, VNC, maupun SSH) hanya lewat browser, tanpa perlu install client tambahan di sisi pengguna. Cukup siapkan satu server Guacamole sebagai “gateway”, lalu semua koneksi remote bisa dipusatkan dan diatur dari sana.
Di artikel ini kita akan bahas langkah-langkah install dan konfigurasi Apache Guacamole secara runtut: mulai dari kebutuhan sistem, instalasi Tomcat dan komponen pendukung, setup database untuk menyimpan user dan koneksi, sampai cara menambahkan host RDP/SSH pertama yang bisa langsung kamu coba akses.

Table of Contents
Install dan Konfigurasi Apache Tomcat
Sebelum melakukan konfigurasi pada apache guacamole, langkah pertama adalah download dan install apache tomcat
Download package tomcat
Download package tomcat dari url berikut https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.105/ dengan menggunakan perintah wget berikut:
wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.105/bin/apache-tomcat-9.0.105.tar.gz
Jika terdapat versi terbaru dari apache tomcat, bisa lihat pada url berikut: https://archive.apache.org/dist/tomcat/

Extract Package tomcat
Setelah package tomcat sudah di download, lakukan extract pada package tomcat yang berformat file .tar.gz, untuk extract package gunakan perintah berikut:
tar -xvf apache-tomcat-9.0.105.tar.gz

Move directory apache tomcat
Setelah proses extract sudah selesai, pindahkan directory apache tomcat ke folder /opt/ dengan perintah berikut:
mv -v apache-tomcat-9.0.105 /opt/tomcat9/

Membuat user dan group tomcat dan merubah owner directory tomcat
Langkah berikutnya, membuat user dan group tomcat untuk kebutuhan memberikan atau merubah owner file dan directory tomcat, berikut perintah untuk membuat user dan group tomcat
sudo useradd -r -m -U -d /opt/tomcat9 -s /bin/false tomcat
Setelah sudah selesai membuat owner directory tomcat, rubah owner diretory tomcat /opt/tomcat dari root menjadi tomcat

Konfigurasi service systemd tomcat
Selanjutnya membuat service systemd tomcat untuk mempermudah melakukan restart atau start service, untuk membuat service systemd tomcat jalankan perintah berikut:
vi /etc/systemd/system/tomcat.service

Setelah itu, jalankan perintah systemctl daemon-reload lalu restart atau start service tomcatnya dengan perintah berikut:
systemctl daemon-reload
systemctl restart tomcat
systemctl status tomcat

Install dan Konfigurasi Apache Guacamole
Setelah apache tomcat sudah selesai di install dan dikonfigurasi, langkah berikutnya adalah install dan konfigurasi apache guacamole.
Install Dependensi Apache Guacamole
Sebelum install apache guacamole, install dependensi apache guacamole terlebih dahulu dengan menjalankan perintah berikut:
yum install cairo-devel -y && yum install libjpeg-turbo-devel -y && yum install libjpeg-devel -y && yum install libpng-devel -y && yum install libtool -y && yum install libuuid-devel -y && yum install uuid-devel -y && yum install ffmpeg-devel -y && yum install freerdp-devel -y && yum install pango-devel -y && yum install libssh2-devel -y && yum install libtelnet-devel -y && yum install libvncserver-devel -y && yum install libwebsockets-devel -y && yum install pulseaudio-libs-devel -y && yum install openssl-devel -y && yum install libvorbis-devel -y && yum install libwebp-devel -y && yum install cairo-devel -y && yum install libjpeg-turbo-devel -y && yum install libjpeg-devel -y && yum install libpng-devel -y && yum install libtool -y && yum install libuuid-devel -y && yum install uuid-devel -y
.png/size/w=1420?exp=1764483857&sig=rUN1b8rl3VPJ5wV_570l7PQ3XTLQ0Fsx6Tk9ucr-pp0&id=20913a0e-a333-80b1-b16f-dac8f958f14b&table=block)
Download dan install package apache guacamole
Langkah berikutnya, download package apache guacamole dari repo apache guacamole dengan perintah wget, untuk download package jalankan perintah berikut:
wget https://downloads.apache.org/guacamole/1.5.5/source/guacamole-server-1.5.5.tar.gz

Setup & Checking library apache guacamole
Setelah sudah selesai extract, langkah berikutnya jalankan perintah berikut untuk setup apache guacamole
./configure --with-init-dir=/etc/init.d

Pada output akhir setup apache guacamole, pastikan protocol support dan library dependensi statusnya sudah “yes”

Selanjutnya jalankan perintah “make” untuk melanjutkan proses konfigurasi apache guacamole.

Selanjutnya jalankan perintah “make install” untuk melanjutkan proses konfigurasi apache guacamole.

Konfigurasi library path apache guacamole
Langkah berikutnya, jalankan perintah berikut unutk konfigurasi library path apache guacamole.
echo /usr/local/lib | sudo tee /etc/ld.so.conf.d/guacamole.conf
sudo ldconfig

Running manual apache guacamole
Langkah berikutnya testing running manual apache guacamole dengan menjalankan perintah berikut:
/usr/local/sbin/guacd -b 127.0.0.1

Jika berhasil maka akan muncul port 4822 dengan process name guacd, seperti gambar diatas.
Konfigurasi PostgreSQL untuk Apache Guacamole
Membuat Directory Konfiguration Apache Guacamole
Buat file konfigurasi apache guacamole di directory /etc/ dengan menjalankan perintah berikut:
mkdir -p /etc/guacamole/
mkdir -p /etc/guacamole/extensions
mkdir -p /etc/guacamole/lib

Download driver jdbc postgreSQL
Langkah selanjutnya, download driver jdbc postgresql yang akan digunakan oleh apache guacamola, untuk download driver jdbc postgresql bisa download dari repo dengan jalankan perintah berikut:
wget https://downloads.apache.org/guacamole/1.5.5/binary/guacamole-auth-jdbc-1.5.5.tar.gz

Extract driver jdbc postgreSQL
Setelah sudah selesai download driver jdbc postgreSQL, extract dahulu dengan menjalankan perintah berikut:
tar -xvf guacamole-auth-jdbc-1.5.5.tar.gz

Copy driver jdbc postgreSQL
Untuk copy driver jdbc postgresql masuk dahulu kedalam directory atau folder driver jdbc postgresql nya dengan perintah cd lalu jika sudah ketemu file dengan ekstensi .jar copy file ke path directory /etc/guacamole/lib/ tersebut dengan menggunakan perintah cp seperti dibawah ini.
cp -rvp guacamole-auth-jdbc-postgresql-1.5.5.jar /etc/guacamole/lib/

Membuat file konfigurasi guacamole.properties
Selanjutnya membuat file konfigurasi guacamole.properties didalam directory /etc/guacamole/ dengan perintah berikut:
vi /etc/guacamole/guacamole.properties

Lalu tambahkan konfigurasi dibawah kedalam file guacamole.properties dan save konfigurasinya dengan shortcut :wq!
# PostgreSQL properties
postgresql-hostname: localhost
postgresql-database: db_guacamoledrc
postgresql-username: guacamoledb_admin
postgresql-password: P@sswordguacamole123
postgresql-port: 5432

Check kembali konfigurasi file guacamole.properties dengan perintah berikut:
cat /etc/guacamole/guacamole.properties

Install Guacamole Client Web Interface
Download dan setup Guacamole client
Pada proses ini akan download package guacamole dengan ekstensi .war untuk install web interface untuk guacamole, sehingga user bisa mengakses web interface guacamole untuk mengakses vm melalui apache guacamole.
Untuk download package web interface guacamole, download package guacamole-1.5.5.war dengan perintah wget dari repo apache guacamole, jalankan perintah berikut untuk download package:
wget https://downloads.apache.org/guacamole/1.5.5/binary/guacamole-1.5.5.war

Move file package web interface guacamole
Setelah file package web interface apache guacamole sudah selesai di download, pindahkan file package dengan ekstensi .war ke directory webapps tompat yaitu di /opt/tomcat9/webapps/
Untuk memindahkan file package web interface guacamole, bisa menggunakan perintah mv atau cp. Pada case ini menggunakan perintah cp untuk melakukan copy file ke path tujuan.
cp -rvp guacamole-1.5.5.war /opt/tomcat9/webapps/guacamole.war

Download Database PostgreSQL
Langkah berikutnya download database postgreSQL dengan menjalankan perintah berikut:
yum install postgresql-server.x86_64

Intialize Database PostgreSQL
Langkah berikut melakukan setup database postgreSQL untuk kebutuhan apache guacamole.
sudo postgresql-setup --initdb

Membuat Databse di PostgreSQL
Langkah selanjutnya membuat database di postgreSQL dengan cara masuk kedalam console postgreSQL dahulu dengan jalankan perintah berikut:
sudo -u postgres psql

Lalu buat database di postgresql untuk apache guacamole dengan menjalankan query berikut:
CREATE DATABASE db_guacamoledrc;

Create user untuk database di PostgreSQL
Jika database sudah terbuat, jalankan query berikut untuk membuat user database db_guacamoledrc
CREATE USER guacamoledb_admin WITH PASSWORD 'P@ssw0rdguacamole123';

Memberikan grant akses pada user database guacamola
Selanjutnya, memberikan grant akses pada user database guacamole yang sudah dibuat sebelumnya, jalankan query berikut untuk memberikan grant akses pada user database guacamole di postgresql
GRANT SELECT,INSERT,UPDATE,DELETE ON ALL TABLES IN SCHEMA public TO guacamoledb_admin;
GRANT SELECT,USAGE ON ALL SEQUENCES IN SCHEMA public TO guacamoledb_admin;

Import Schema ke database guacamole di postgreSQL
Lalu berikut import schema ke database guacamole dengan menjalankan perintah berikut:
cd guacamole-auth-jdbc-1.5.5
cat schema/*.sql | psql -U guacamoledb_admin -d db_guacamoledrc -h localhost

Copy file auth jdbc postgresql guacamole
Selanjutnya pindahkan atau copy file auth jdbc postgresql guacamole ke directory /etc/guacamole/extensions/ dengan perintah berikut:
cp -rvp guacamole-auth-jdbc-postgresql-1.5.5.jar /etc/guacamole/extensions/

Download dan pindahkan file jdbc driver PostgreSQL
Selanjutnya download file jdbc driver postgresql dari url berikut: https://jdbc.postgresql.org/download/, lalu download jdbc driver postgreSQL dengan perintah wget berikut:
wget https://jdbc.postgresql.org/download/postgresql-42.7.5.jar
Lalu setelah download sudah selesai, pindahkan file jdbc driver postgresql berikut ke directory /etc/guacamole/lib/ dengan perintah cp.
cp -rvp postgresql-42.7.5.jar /etc/guacamole/lib/

Set Environment Variable Apache Guacamole
Lalu selanjutnya setup environment variable GUACAMOLE_HOME ke directory /etc/guacamole dengan menjalankan perintah berikut:
echo ‘export GUACAMOLE_HOME=/etc/guacamole’ | sudo tee -a /etc/profile && source /etc/profile

Restart Service Tomcat
Langkah berikutnya restart service tomcat dengan menjalankan perintah berikut:
systemctl restart tomcat && systemctl status tomcat

Restart Service Guacamole
Lalu selanjutnya restart service guacd dengan kill sessions service guacd, check pid service guacd dengan perintah:
ss -pltn
lalu check pid yang digunakan oleh service guacd, lalu jalankan perintah kill dengan perintah berikut:
kill -9 <pid-service-guacd>
Lalu check kembali dengan perintah dibawah, pastikan sessions guacd sudah tidak ada atau port service guacd tidak listen.
Jika sudah dipastikan port guacd atau service sessions guacd tidak listen, jalankan kembali service guacd dengan perintah berikut:
/usr/local/sbin/guacd -b 127.0.0.1
lalu check kembali port guacd atau service guacd sudah listen dengan perintah berikut:
ss -pltn

Akses WebUI Apache Guacamole
Selanjutnya akses webui apache guacamole dengan mengakses ip server dan tambahkan port 8080 serta directory guacamole, contoh nya seperti berikut:
http://172.17.8.56:8080/guacamole/#/
Lalu masukan username dan password default apache guacamole yaitu guacadmin


