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