Instal Apache Guacamole di Ubuntu 21.04

Dalam panduan ini, kita akan belajar cara menginstal  Apache Guacamole  di Ubuntu 21.04. Apache Guacamole adalah gateway desktop jarak jauh berbasis web HTML5 tanpa client yang menyediakan akses jarak jauh ke server dan desktop melalui browser web. Ini mendukung protokol standar seperti VNC, RDP, dan SSH.

Instal Apache Guacamole di Ubuntu 21.04

Guacamole terdiri dari dua bagian;

  • guacamole-server, yang menyediakan proksi guacd dan semua komponen sisi server asli yang diperlukan oleh Guacamole untuk terhubung ke desktop jarak jauh.
  • guacamole-client yang menyediakan client untuk dilayani oleh wadah servlet yang biasanya  Tomcat.

Anda perlu menginstal kedua komponen ini untuk mengatur client desktop jarak jauh berbasis web Apache Guacamole.

Instal Guacamole Server di Ubuntu 21.04

Jalankan Pembaruan sistem

Pastikan cache paket sistem Anda mutakhir;

apt update

Instal Alat Bangun yang Diperlukan

Untuk menginstal guacamole-server, Anda perlu membangunnya dari sumbernya. Oleh karena itu, ini mengharuskan Anda menginstal alat pembangunan yang diperlukan sebelum Anda dapat mulai membangun komponen server guacamole;

apt install -y build-essential libcairo2-dev libjpeg-turbo8-dev libpng-dev  libtool-bin libossp-uuid-dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev  freerdp2-dev libpango1.0-dev libssh2-1-dev libvncserver-dev libtelnet-dev  libssl-dev libvorbis-dev libwebp-dev

Deskripsi lengkap alat dependensi ini tersedia di   bagian dependensi yang diperlukan.

Membangun Server Guacamole di Ubuntu 21.04

Untuk membangun server guacamole, download tarball arsip sumber terbaru dari halaman rilis Guacamole. Apache Guacamole 1.3.0 adalah versi rilis terbaru pada tulisan ini.

Anda cukup menjalankan perintah di bawah ini untuk mengdownload Apache Guacamole 1.3.0.

wget https://downloads.apache.org/guacamole/1.3.0/source/guacamole-server-1.3.0.tar.gz

Setelah downloadan selesai, ekstrak tarball sumber.

tar xzf guacamole-server-1.3.0.tar.gz

Arahkan ke direktori kode sumber server guacamole;

cd guacamole-server-1.3.0

Jalankan  configure skrip untuk memeriksa apakah ada ketergantungan yang diperlukan yang hilang dan untuk mengadaptasi server Guacamole ke sistem Anda.

./configure --with-init-dir=/etc/init.d

Untuk opsi konfigurasi lainnya, jalankan, ./configure –help.

... ------------------------------------------------ guacamole-server version 1.3.0 ------------------------------------------------ Library status: freerdp2............ yes pango............... yes libavcodec.......... yes libavformat.......... yes libavutil........... yes libssh2............. yes libssl.............. yes libswscale.......... yes libtelnet........... yes libVNCServer........ yes libvorbis........... yes libpulse............ no libwebsockets....... no libwebp............. yes wsock32............. no Protocol support: Kubernetes.... no RDP........... yes SSH........... yes Telnet........ yes VNC........... yes Services / tools: guacd...... yes guacenc.... yes guaclog.... yes FreeRDP plugins: /usr/lib/x86_64-linux-gnu/freerdp2 Init scripts: /etc/init.d Systemd units: no Type "make" to compile guacamole-server.

Perhatikan di luar  configure skrip.

Kompilasi dan instal Guacamole Server di Ubuntu 21.04;

make
make install

Selanjutnya, jalankan ldconfig perintah untuk membuat tautan dan cache yang diperlukan ke perpustakaan bersama terbaru yang ditemukan di direktori server guacamole.

ldconfig

Menjalankan Guacamole-Server di Ubuntu 21.04

Reload file konfigurasi systemd dan mulai dan aktifkan guacd (Guacamole Daemon) untuk berjalan saat boot setelah instalasi.

systemctl daemon-reload
systemctl start guacd
systemctl enable guacd

Untuk memeriksa statusnya;

systemctl status guacd
● guacd.service - LSB: Guacamole proxy daemon Loaded: loaded (/etc/init.d/guacd; generated) Active: active (running) since Sat 2021-03-27 05:12:24 UTC; 1s ago Docs: man:systemd-sysv-generator(8) Process: 22887 ExecStart=/etc/init.d/guacd start (code=exited, status=0/SUCCESS) Tasks: 1 (limit: 1042) Memory: 9.9M CGroup: /system.slice/guacd.service └─22891 /usr/local/sbin/guacd -p /var/run/guacd.pid Mar 27 05:12:24 hirsute systemd[1]: Starting LSB: Guacamole proxy daemon... Mar 27 05:12:24 hirsute guacd[22888]: Guacamole proxy daemon (guacd) version 1.3.0 started Mar 27 05:12:24 hirsute guacd[22887]: Starting guacd: Mar 27 05:12:24 hirsute guacd[22888]: guacd[22888]: INFO: Guacamole proxy daemon (guacd) version 1.3.0 started Mar 27 05:12:24 hirsute guacd[22887]: SUCCESS Mar 27 05:12:24 hirsute guacd[22891]: Listening on host 127.0.0.1, port 4822 Mar 27 05:12:24 hirsute systemd[1]: Started LSB: Guacamole proxy daemon.

Instal Tomcat Servlet

Apache Tomcat digunakan untuk menyajikan konten client guacamole kepada user yang terhubung ke server guacamole melalui browser web. Untuk menginstal Tomcat, jalankan perintah di bawah ini;

apt install tomcat9 tomcat9-admin tomcat9-common tomcat9-user -y

Tomcat9 dimulai dan diaktifkan untuk berjalan pada boot sistem saat instalasi. Periksa status dengan menjalankan perintah di bawah ini;

systemctl status tomcat9.service
● tomcat9.service - Apache Tomcat 9 Web Application Server Loaded: loaded (/lib/systemd/system/tomcat9.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2021-03-27 05:17:40 UTC; 2min 40s ago Docs: https://tomcat.apache.org/tomcat-9.0-doc/index.html Process: 24611 ExecStartPre=/usr/libexec/tomcat9/tomcat-update-policy.sh (code=exited, status=0/SUCCESS) Main PID: 24615 (java) Tasks: 29 (limit: 1042) Memory: 72.8M CGroup: /system.slice/tomcat9.service └─24615 /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/var/lib/tomcat9/conf/logging.properties -Djava.util.logging.manager=org.apache.jul> Mar 27 05:17:45 hirsute tomcat9[24615]: Deployment of deployment descriptor [/etc/tomcat9/Catalina/localhost/host-manager.xml] has finished in [1,800] ms Mar 27 05:17:45 hirsute tomcat9[24615]: Deploying deployment descriptor [/etc/tomcat9/Catalina/localhost/manager.xml]

Apache Tomcat mendengarkan pada port 8080/tcp secara default;

ss -altnp | grep 80
LISTEN 0 100 *:8080 *:* users:(("java",pid=24615,fd=37))

Untuk mengizinkan akses eksternal ke serverlet, buka port serverlet 8080/tcp di UFW.

ufw allow 8080/tcp

Menginstal Client Guacamole di Ubuntu 21.04

guacamole-client berisi menyediakan aplikasi web yang akan melayani client Guacamole HTML5 kepada user yang terhubung ke server Anda. Aplikasi web kemudian akan terhubung ke guacd atas nama user yang terhubung untuk melayani desktop jarak jauh apa pun yang diizinkan untuk mereka akses.

Buat direktori konfigurasi Guacamole;

mkdir /etc/guacamole

Download Guacamole-client Binary

Client Guacamole dapat diinstal dari kode sumber atau dari biner siap pakai. Instalasi biner digunakan dalam demo ini.

Download Guacamole-client dari  halaman rilis Guacamole  untuk versi terbaru masing-masing (v1.3.0 pada tulisan ini) dan simpan di direktori konfigurasi yang dibuat di atas.

Untuk mengdownload versi rilis saat ini, v1.3.0 pada tulisan ini, cukup jalankan perintah di bawah ini;

wget https://downloads.apache.
org/guacamole/1.3.0/binary/guacamole-1.3.0.war -O /etc/guacamole/guacamole.war

Buat tautan simbolis dari client guacamole ke direktori webapps Tomcat seperti yang ditunjukkan di bawah ini;

ln -s /etc/guacamole/guacamole.war /var/lib/tomcat9/webapps/

Mulai ulang Tomcat untuk menyebarkan aplikasi web baru;

systemctl restart tomcat9

Mulai ulang daemon guacd juga;

systemctl restart guacd

Konfigurasikan Apache Guacamole di Ubuntu 21.04

Guacamole memiliki dua file konfigurasi utama;

  • /etc/guacamole yang direferensikan oleh  GUACAMOLE_HOME variabel lingkungan
  • /etc/guacamole/guacamole.properties yang merupakan file konfigurasi utama yang digunakan oleh Guacamole dan ekstensinya.

Ada juga ekstensi guacamole dan konfigurasi perpustakaan. Anda perlu membuat direktori untuk konfigurasi ini;

mkdir /etc/guacamole/{extensions,lib}

Atur variabel lingkungan direktori home guacamole dan tambahkan ke  /etc/default/tomcat9 file konfigurasi.

echo "GUACAMOLE_HOME=/etc/guacamole" >> /etc/default/tomcat9

Konfigurasikan Koneksi Server Guacamole

Untuk menentukan bagaimana Guacamole terhubung ke  guacd, buat  guacamole.properties file di bawah  /etc/guacamole direktori dengan konten berikut.

vim /etc/guacamole/guacamole.properties
guacd-hostname: localhost guacd-port: 4822 user-mapping: /etc/guacamole/user-mapping.xml auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider

Setelah itu, simpan dan keluar dari file konfigurasi.

Selanjutnya, tautkan direktori konfigurasi Guacamole ke direktori servlet Tomcat seperti yang ditunjukkan di bawah ini.

ln -s /etc/guacamole /usr/share/tomcat9/.guacamole

Konfigurasikan Metode Otentikasi Guacamole

Metode otentikasi default Guacamole membaca semua user dan koneksi dari satu file bernama  user-mapping.xml.

Dalam file ini, Anda perlu mendefinisikan users allowed to access Guacamole web UI, the servers to connect to dan the method of connection.

Metode otentikasi lainnya didukung, tetapi di luar cakupan tutorial ini.

Untuk memulainya, buat hash password MD5 untuk user yang akan digunakan untuk masuk ke interface user web Guacamole. Replace you password accordingly;

echo -n password | openssl md5

Keluaran;

(stdin)= 5f4dcc3b5aa765d61d8327deb882cf99

atau

printf '%s' password | md5sum

Keluaran;

5f4dcc3b5aa765d61d8327deb882cf99 -

Pastikan untuk mengganti password dengan password Anda yang kuat.

Selanjutnya, buat file otentikasi user default, user-mapping.xmldengan konten berikut.

vim /etc/guacamole/user-mapping.xml
<user-mapping> <!-- Per-user authentication and config information --> <!-- A user using md5 to hash the password guacadmin user and its md5 hashed password below is used to   login to Guacamole Web UI--> <authorize username="guacadmin" password="5f4dcc3b5aa765d61d8327deb882cf99" encoding="md5"> <!-- First authorized Remote connection -->  <connection name="Ubuntu 20.04 Server SSH"> <protocol>ssh</protocol> <param name="hostname">192.168.57.3</param> <param name="port">22</param> </connection> <!-- Second authorized remote connection -->  <connection name="Windows 7 RDP"> <protocol>rdp</protocol> <param name="hostname">192.168.56.103</param> <param name="port">3389</param> <param name="username">koromicha</param> <param name="ignore-cert">true</param> </connection> </authorize> </user-mapping>

Jika Anda tidak menentukan nama user dan password dalam file, Anda akan diminta untuk memberikannya saat mencoba masuk, yang menurut saya agak aman.

Jika Anda perlu mendefinisikan nama user dan password secara eksplisit di file konfigurasi, tambahkan parameternya;

<param name="username">USERNAME</param> <param name="password">PASSWORD</param>

Simpan dan keluar dari file konfigurasi.

Mulai ulang Tomcat dan guacd untuk melakukan perubahan.

systemctl restart tomcat9 guacd

Pastikan untuk memeriksa syslog,  /var/log/syslog atau  /var/log/tomcat9/CATALINA-* untuk masalah apa pun.

Mengakses Apache Guacamole dari Browse

Server Apache Guacamole sekarang telah disiapkan. Anda dapat mengaksesnya dari browser web menggunakan alamat  http://server-IP:8080/guacamole.

Gunakan kredensial untuk user yang Anda buat hash MD5 untuk passwordnya di atas.

Setelah login berhasil, Anda masuk ke dasbor web Apache Guacamole dan Anda seharusnya dapat melihat koneksi yang ditambahkan.

Klik pada koneksi ke nama untuk memulai login jarak jauh.

Misalnya, untuk ssh ke server Ubuntu saya, cukup klik pada nama koneksi. Ini akan memberi Anda prompt login;

Untuk masuk ke Windows 7 melalui RDP, cukup klik pada Windows 7;

Dan di sana Anda pergi. Masukkan password Anda dan lanjutkan ke desktop Anda.

Anda sekarang dapat menambahkan lebih banyak koneksi ke Guacamole Anda. Itu menandai akhir dari panduan kami tentang menginstal Apache Guacamole di Ubuntu 21.04.

Panduan terkait;

Konfigurasikan Guacamole SSL/TLS dengan Nginx Reverse Proxy

Cara Mengaktifkan Transfer File RDP/SSH Melalui Guacamole

Bacaan lebih lanjut

Panduan Pengguna Guacamole

tutorial lainnya

Instal Alat Desktop Jarak Jauh NoMachine di Kali Linux 2020

Instal dan Siapkan Chrome Desktop Jarak Jauh di Ubuntu 20.04

Instal Apache Guacamole di Ubuntu 20.04