{"id":23299,"date":"2024-10-12T10:46:15","date_gmt":"2024-10-12T07:46:15","guid":{"rendered":"https:\/\/kifarunix.com\/?p=23299"},"modified":"2024-10-12T10:46:18","modified_gmt":"2024-10-12T07:46:18","slug":"how-to-install-apache-guacamole-on-ubuntu-24-04","status":"publish","type":"post","link":"https:\/\/kifarunix.com\/how-to-install-apache-guacamole-on-ubuntu-24-04\/","title":{"rendered":"How to Install Apache Guacamole on Ubuntu 24.04"},"content":{"rendered":"\n<p>In this guide, we are going to learn how to install Apache Guacamole on Ubuntu 24.04. Apache Guacamole&nbsp;is a clientless HTML5 web based remote desktop gateway which provides remote access to servers and desktops through a web browser. It supports standard protocols like VNC, RDP, and SSH.<\/p>\n\n\n\n<div class=\"wp-block-rank-math-toc-block\" id=\"rank-math-toc\"><h2>Table of Contents<\/h2><nav><ul><li><a href=\"#install-apache-guacamole-on-ubuntu-22-04\">Install Apache Guacamole on Ubuntu 24.04<\/a><ul><li><a href=\"#run-system-update\">Run System Update<\/a><\/li><li><a href=\"#check-available-version-of-guacamole-on-default-ubuntu-repos\">Check Available Version of Guacamole on Default Ubuntu Repos<\/a><\/li><li><a href=\"#install-required-build-tools\">Install Required Build Tools<\/a><\/li><li><a href=\"#building-guacamole-server-on-ubuntu-22-04\">Building\u00a0Guacamole-Server on Ubuntu 24.04<\/a><\/li><li><a href=\"#running-guacamole-server\">Running Guacamole-Server<\/a><\/li><li><a href=\"#install-tomcat-servlet\">Install Tomcat Servlet<\/a><\/li><li><a href=\"#installing-guacamole-client-on-ubuntu-22-04\">Installing Guacamole Client on Ubuntu 24.04<\/a><ul><li><a href=\"#download-guacamole-client-binary\">Download Guacamole-client Binary<\/a><\/li><\/ul><\/li><\/ul><\/li><li><a href=\"#configure-apache-guacamole-on-ubuntu-22-04\">Configure Apache Guacamole on Ubuntu 24.04<\/a><ul><li><a href=\"#configure-guacamole-server-connections\">Configure Guacamole Server Connections<\/a><\/li><li><a href=\"#configure-guacamole-authentication-method\">Configure Guacamole Authentication Method<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"install-apache-guacamole-on-ubuntu-22-04\">Install Apache Guacamole on Ubuntu 24.04<\/h2>\n\n\n\n<p>Guacamole is made up of two parts;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>guacamole-server<\/code>, which provides the&nbsp;guacd&nbsp;proxy&nbsp;and all the native, server-side components required by Guacamole to connect to remote desktops.<\/li>\n\n\n\n<li><code>guacamole-client<\/code>&nbsp;which provides the client to be served by the servlet container which is usually&nbsp;<code>Tomcat<\/code>.<\/li>\n<\/ul>\n\n\n\n<p>You need to install both of these components to setup Apache Guacamole web-based remote desktop client.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"run-system-update\">Run System Update<\/h3>\n\n\n\n<p>Ensure your system package cache is up-to-date;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">apt update<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"check-available-version-of-guacamole-on-default-ubuntu-repos\">Check Available Version of Guacamole on Default Ubuntu Repos<\/h3>\n\n\n\n<p>Guacamole is available on the default Ubuntu 24.04 repositories. However, available version is not up-to-date;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt-cache policy guacd<\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>guacd:\n  Installed: (none)\n  Candidate: 1.3.0-1.3ubuntu1\n  Version table:\n     1.3.0-1.3ubuntu1 500\n        500 http:\/\/de.archive.ubuntu.com\/ubuntu noble\/universe amd64 Packages\n<\/code><\/pre>\n\n\n\n<p>To get the latest release version of Guacamole running on Ubuntu 24.04, you need to build it from the source.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"install-required-build-tools\">Install Required Build Tools<\/h3>\n\n\n\n<p>To install guacamole-server, you need to build it from the source. This, therefore, requires that you need install the required build tools before you can start to build guacamole-server component;<\/p>\n\n\n\n<pre class=\"scroll-box\"><code>apt install -y build-essential \\\n\tlibcairo2-dev \\\n\tlibjpeg-turbo8-dev \\\n\tlibpng-dev \\\n\tlibtool-bin \\\n        uuid-dev \\\n\tlibossp-uuid-dev \\\n\tlibavcodec-dev \\\n\tlibavformat-dev \\\n\tlibavutil-dev \\\n\tlibswscale-dev \\\n        freerdp2-dev \\\n\tlibpango1.0-dev \\\n\tlibssh2-1-dev \\\n\tlibvncserver-dev \\\n\tlibtelnet-dev \\\n\tlibwebsockets-dev \\\n\tlibssl-dev \\\n\tlibvorbis-dev \\\n\tlibwebp-dev \\\n\tlibpulse-dev\n<\/code><\/pre>\n\n\n\n<p>A comprehensive description of these dependency tools is available on&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/guacamole.apache.org\/doc\/gug\/installing-guacamole.html#required-dependencies\" target=\"_blank\">required dependencies<\/a>&nbsp;section.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"building-guacamole-server-on-ubuntu-22-04\">Building&nbsp;Guacamole-Server on Ubuntu 24.04<\/h3>\n\n\n\n<p>To build guacamole-server, download the latest source archive tarball from <a href=\"https:\/\/guacamole.apache.org\/releases\/\" target=\"_blank\" rel=\"noreferrer noopener\">Guacamole releases page<\/a>. Guacamole 1.5.5 is the latest release version as of this writing. You can simply run the command below;<\/p>\n\n\n\n<p>Replace the value of the VER variable with the current release of Guacamole.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>VER=1.5.5<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>wget https:\/\/downloads.apache.org\/guacamole\/${VER}\/source\/guacamole-server-${VER}.tar.gz<\/code><\/pre>\n\n\n\n<p>Once the download is done, extract the source tarball.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tar xzf guacamole-server-${VER}.tar.gz<\/code><\/pre>\n\n\n\n<p>Navigate to guacamole server source code directory;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd guacamole-server-${VER}<\/code><\/pre>\n\n\n\n<p>Run the&nbsp;<code>configure<\/code>&nbsp;script to check if any required dependency is missing and to adapt Guacamole server to your system.<\/p>\n\n\n\n<p>Ubuntu 24.04 ships with OpenSSL 3.x and Guacamole requires openssl 1.x to successfully compile and install. The warning related to this are treated as errors and thus the compilation process will fail. As a result, you can disable the Warnings from being treated as errors and compile Guacamole on Ubuntu 24.04.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CFLAGS=-Wno-error .\/configure --with-systemd-dir=\/etc\/systemd\/system\/<\/code><\/pre>\n\n\n\n<p>For more configure options, run, <code>.\/configure --help<\/code>.<\/p>\n\n\n\n<pre class=\"scroll-box\"><code>\n------------------------------------------------\nguacamole-server version 1.5.5\n------------------------------------------------\n\n   Library status:\n\n     freerdp2 ............ yes\n     pango ............... yes\n     libavcodec .......... yes\n     libavformat.......... yes\n     libavutil ........... yes\n     libssh2 ............. yes\n     libssl .............. yes\n     libswscale .......... yes\n     libtelnet ........... yes\n     libVNCServer ........ yes\n     libvorbis ........... yes\n     libpulse ............ yes\n     libwebsockets ....... yes\n     libwebp ............. yes\n     wsock32 ............. no\n\n   Protocol support:\n\n      Kubernetes .... yes\n      RDP ........... yes\n      SSH ........... yes\n      Telnet ........ yes\n      VNC ........... yes\n\n   Services \/ tools:\n\n      guacd ...... yes\n      guacenc .... yes\n      guaclog .... yes\n\n   FreeRDP plugins: \/usr\/lib\/x86_64-linux-gnu\/freerdp2\n   Init scripts: no\n   Systemd units: \/etc\/systemd\/system\/\n\nType \"make\" to compile guacamole-server.\n<\/code><\/pre>\n\n\n\n<p>Pay attention to out of the <code>configure<\/code> script.<\/p>\n\n\n\n<p>Compile and install Guacamole Server on Ubuntu 24.04;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>make<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>make install<\/code><\/pre>\n\n\n\n<p>Next, run the&nbsp;<strong><code>ldconfig<\/code><\/strong>&nbsp;command to create the necessary links and cache to the most recent shared libraries found in the guacamole server directory.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>ldconfig<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"running-guacamole-server\">Running Guacamole-Server<\/h3>\n\n\n\n<p>Start and enable guacd (Guacamole Daemon) to run on boot after  the installation.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>systemctl enable --now guacd<\/code><\/pre>\n\n\n\n<p>To check the status;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>systemctl status guacd<\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>\u25cf guacd.service - Guacamole Server\n     Loaded: loaded (\/etc\/systemd\/system\/guacd.service; enabled; preset: enabled)\n     Active: active (running) since Sat 2024-10-12 05:45:05 UTC; 6s ago\n       Docs: man:guacd(8)\n   Main PID: 44663 (guacd)\n      Tasks: 1 (limit: 9507)\n     Memory: 10.0M (peak: 10.1M)\n        CPU: 16ms\n     CGroup: \/system.slice\/guacd.service\n             \u2514\u250044663 \/usr\/local\/sbin\/guacd -f\n\nOct 12 05:45:05 svr-velo-02 systemd[1]: Started guacd.service - Guacamole Server.\nOct 12 05:45:05 svr-velo-02 guacd[44663]: Guacamole proxy daemon (guacd) version 1.5.5 started\nOct 12 05:45:05 svr-velo-02 guacd[44663]: guacd[44663]: INFO:        Guacamole proxy daemon (guacd) version 1.5.5 started\nOct 12 05:45:05 svr-velo-02 guacd[44663]: guacd[44663]: INFO:        Listening on host 127.0.0.1, port 4822\nOct 12 05:45:05 svr-velo-02 guacd[44663]: Listening on host 127.0.0.1, port 4822\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"install-tomcat-servlet\">Install Tomcat Servlet<\/h3>\n\n\n\n<p>Apache Tomcat is used to serve guacamole client content to users that connects to guacamole server via the web browser. To install Tomcat, run the command below;<\/p>\n\n\n\n<p>Guacamole client, as of this writing is not compatible with latest releases of Apache Tomcat and hence, still requires Apache Tomcat9.<\/p>\n\n\n\n<p>While you can install Apache Tomcat9 by building from the source as outlines in this guide;<\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/how-to-install-tomcat-9-on-debian-12\/\" target=\"_blank\" rel=\"noreferrer noopener\">How to Install Tomcat 9 on Debian 12<\/a><\/p>\n\n\n\n<p>in this guide, we will use Ubuntu 22.04 Jammy Updates universe repos to install Apache Tomcat9;<\/p>\n\n\n\n<p>Install Ubuntu 22.04 Jammy updates universe repos on Ubuntu 24.04;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo 'deb http:\/\/ke.archive.ubuntu.com\/ubuntu\/ jammy-updates universe' > \/etc\/apt\/sources.list.d\/tomcat9.list<\/code><\/pre>\n\n\n\n<p>Run system update;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt update<\/code><\/pre>\n\n\n\n<p>Install Apache Tomcat9 on Ubuntu 24.04;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">apt install tomcat9 tomcat9-admin tomcat9-common tomcat9-user -y<\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>Reading package lists... Done\nBuilding dependency tree... Done\nReading state information... Done\nThe following additional packages will be installed:\n  ca-certificates-java default-jre-headless java-common libapr1t64 libeclipse-jdt-core-java libpcsclite1 libtcnative-1 libtomcat9-java openjdk-21-jre-headless\nSuggested packages:\n  default-jre pcscd tomcat9 libnss-mdns fonts-dejavu-extra fonts-ipafont-gothic fonts-ipafont-mincho fonts-wqy-microhei | fonts-wqy-zenhei fonts-indic tomcat9-docs tomcat9-examples\nThe following NEW packages will be installed:\n  ca-certificates-java default-jre-headless java-common libapr1t64 libeclipse-jdt-core-java libpcsclite1 libtcnative-1 libtomcat9-java openjdk-21-jre-headless tomcat9 tomcat9-admin tomcat9-common tomcat9-user\n0 upgraded, 13 newly installed, 0 to remove and 168 not upgraded.\nNeed to get 59.6 MB of archives.\nAfter this operation, 220 MB of additional disk space will be used.\nGet:1 http:\/\/de.archive.ubuntu.com\/ubuntu noble\/main amd64 ca-certificates-java all 20240118 [11.6 kB]\nGet:2 http:\/\/de.archive.ubuntu.com\/ubuntu noble\/main amd64 java-common all 0.75+exp1 [6,798 B]       \nGet:3 http:\/\/de.archive.ubuntu.com\/ubuntu noble\/main amd64 libpcsclite1 amd64 2.0.3-1build1 [21.4 kB]\nGet:4 http:\/\/de.archive.ubuntu.com\/ubuntu noble-updates\/main amd64 openjdk-21-jre-headless amd64 21.0.4+7-1ubuntu2~24.04 [46.6 MB]\nGet:5 http:\/\/ke.archive.ubuntu.com\/ubuntu jammy-updates\/universe amd64 tomcat9-common all 9.0.58-1ubuntu0.1 [60.9 kB]\nGet:6 http:\/\/de.archive.ubuntu.com\/ubuntu noble\/main amd64 default-jre-headless amd64 2:1.21-75+exp1 [3,094 B]\nGet:7 http:\/\/de.archive.ubuntu.com\/ubuntu noble-updates\/main amd64 libapr1t64 amd64 1.7.2-3.1ubuntu0.1 [108 kB]\nGet:8 http:\/\/de.archive.ubuntu.com\/ubuntu noble\/universe amd64 libeclipse-jdt-core-java all 3.32.0+eclipse4.26-2 [6,438 kB]\nGet:9 http:\/\/de.archive.ubuntu.com\/ubuntu noble-updates\/universe amd64 libtomcat9-java all 9.0.70-2ubuntu0.1 [6,161 kB]\nGet:10 http:\/\/ke.archive.ubuntu.com\/ubuntu jammy-updates\/universe amd64 tomcat9 all 9.0.58-1ubuntu0.1 [37.0 kB]\nGet:11 http:\/\/ke.archive.ubuntu.com\/ubuntu jammy-updates\/universe amd64 tomcat9-admin all 9.0.58-1ubuntu0.1 [68.8 kB]\nGet:12 http:\/\/de.archive.ubuntu.com\/ubuntu noble\/universe amd64 libtcnative-1 amd64 1.2.35-1build2 [93.9 kB]\nGet:13 http:\/\/ke.archive.ubuntu.com\/ubuntu jammy-updates\/universe amd64 tomcat9-user all 9.0.58-1ubuntu0.1 [33.6 kB]\nFetched 59.6 MB in 1s (57.6 MB\/s)\nSelecting previously unselected package ca-certificates-java.\n(Reading database ... 91757 files and directories currently installed.)\nPreparing to unpack ...\/00-ca-certificates-java_20240118_all.deb ...\nUnpacking ca-certificates-java (20240118) ...\nSelecting previously unselected package java-common.\nPreparing to unpack ...\/01-java-common_0.75+exp1_all.deb ...\nUnpacking java-common (0.75+exp1) ...\nSelecting previously unselected package libpcsclite1:amd64.\nPreparing to unpack ...\/02-libpcsclite1_2.0.3-1build1_amd64.deb ...\nUnpacking libpcsclite1:amd64 (2.0.3-1build1) ...\nSelecting previously unselected package openjdk-21-jre-headless:amd64.\nPreparing to unpack ...\/03-openjdk-21-jre-headless_21.0.4+7-1ubuntu2~24.04_amd64.deb ...\nUnpacking openjdk-21-jre-headless:amd64 (21.0.4+7-1ubuntu2~24.04) ...\nSelecting previously unselected package default-jre-headless.\nPreparing to unpack ...\/04-default-jre-headless_2%3a1.21-75+exp1_amd64.deb ...\nUnpacking default-jre-headless (2:1.21-75+exp1) ...\nSelecting previously unselected package libapr1t64:amd64.\nPreparing to unpack ...\/05-libapr1t64_1.7.2-3.1ubuntu0.1_amd64.deb ...\nUnpacking libapr1t64:amd64 (1.7.2-3.1ubuntu0.1) ...\nSelecting previously unselected package libeclipse-jdt-core-java.\nPreparing to unpack ...\/06-libeclipse-jdt-core-java_3.32.0+eclipse4.26-2_all.deb ...\nUnpacking libeclipse-jdt-core-java (3.32.0+eclipse4.26-2) ...\nSelecting previously unselected package libtomcat9-java.\nPreparing to unpack ...\/07-libtomcat9-java_9.0.70-2ubuntu0.1_all.deb ...\nUnpacking libtomcat9-java (9.0.70-2ubuntu0.1) ...\nSelecting previously unselected package tomcat9-common.\nPreparing to unpack ...\/08-tomcat9-common_9.0.58-1ubuntu0.1_all.deb ...\nUnpacking tomcat9-common (9.0.58-1ubuntu0.1) ...\nSelecting previously unselected package tomcat9.\nPreparing to unpack ...\/09-tomcat9_9.0.58-1ubuntu0.1_all.deb ...\nUnpacking tomcat9 (9.0.58-1ubuntu0.1) ...\nSelecting previously unselected package tomcat9-admin.\nPreparing to unpack ...\/10-tomcat9-admin_9.0.58-1ubuntu0.1_all.deb ...\nUnpacking tomcat9-admin (9.0.58-1ubuntu0.1) ...\nSelecting previously unselected package tomcat9-user.\nPreparing to unpack ...\/11-tomcat9-user_9.0.58-1ubuntu0.1_all.deb ...\nUnpacking tomcat9-user (9.0.58-1ubuntu0.1) ...\nSelecting previously unselected package libtcnative-1:amd64.\nPreparing to unpack ...\/12-libtcnative-1_1.2.35-1build2_amd64.deb ...\nUnpacking libtcnative-1:amd64 (1.2.35-1build2) ...\nSetting up java-common (0.75+exp1) ...\nSetting up libeclipse-jdt-core-java (3.32.0+eclipse4.26-2) ...\nSetting up libpcsclite1:amd64 (2.0.3-1build1) ...\nSetting up libtomcat9-java (9.0.70-2ubuntu0.1) ...\nSetting up libapr1t64:amd64 (1.7.2-3.1ubuntu0.1) ...\nSetting up ca-certificates-java (20240118) ...\nNo JRE found. Skipping Java certificates setup.\nSetting up libtcnative-1:amd64 (1.2.35-1build2) ...\nSetting up openjdk-21-jre-headless:amd64 (21.0.4+7-1ubuntu2~24.04) ...\nupdate-alternatives: using \/usr\/lib\/jvm\/java-21-openjdk-amd64\/bin\/java to provide \/usr\/bin\/java (java) in auto mode\nupdate-alternatives: using \/usr\/lib\/jvm\/java-21-openjdk-amd64\/bin\/jpackage to provide \/usr\/bin\/jpackage (jpackage) in auto mode\nupdate-alternatives: using \/usr\/lib\/jvm\/java-21-openjdk-amd64\/bin\/keytool to provide \/usr\/bin\/keytool (keytool) in auto mode\nupdate-alternatives: using \/usr\/lib\/jvm\/java-21-openjdk-amd64\/bin\/rmiregistry to provide \/usr\/bin\/rmiregistry (rmiregistry) in auto mode\nupdate-alternatives: using \/usr\/lib\/jvm\/java-21-openjdk-amd64\/lib\/jexec to provide \/usr\/bin\/jexec (jexec) in auto mode\nProcessing triggers for libc-bin (2.39-0ubuntu8.1) ...\nProcessing triggers for rsyslog (8.2312.0-3ubuntu9) ...\nProcessing triggers for man-db (2.12.0-4build2) ...\nProcessing triggers for ca-certificates-java (20240118) ...\nAdding debian:ACCVRAIZ1.pem\nAdding debian:AC_RAIZ_FNMT-RCM.pem\nAdding debian:AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.pem\nAdding debian:Actalis_Authentication_Root_CA.pem\nAdding debian:AffirmTrust_Commercial.pem\nAdding debian:AffirmTrust_Networking.pem\nAdding debian:AffirmTrust_Premium_ECC.pem\nAdding debian:AffirmTrust_Premium.pem\nAdding debian:Amazon_Root_CA_1.pem\nAdding debian:Amazon_Root_CA_2.pem\nAdding debian:Amazon_Root_CA_3.pem\nAdding debian:Amazon_Root_CA_4.pem\nAdding debian:ANF_Secure_Server_Root_CA.pem\nAdding debian:Atos_TrustedRoot_2011.pem\nAdding debian:Atos_TrustedRoot_Root_CA_ECC_TLS_2021.pem\nAdding debian:Atos_TrustedRoot_Root_CA_RSA_TLS_2021.pem\nAdding debian:Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem\nAdding debian:Baltimore_CyberTrust_Root.pem\nAdding debian:BJCA_Global_Root_CA1.pem\nAdding debian:BJCA_Global_Root_CA2.pem\nAdding debian:Buypass_Class_2_Root_CA.pem\nAdding debian:Buypass_Class_3_Root_CA.pem\nAdding debian:CA_Disig_Root_R2.pem\nAdding debian:Certainly_Root_E1.pem\nAdding debian:Certainly_Root_R1.pem\nAdding debian:Certigna.pem\nAdding debian:Certigna_Root_CA.pem\nAdding debian:certSIGN_Root_CA_G2.pem\nAdding debian:certSIGN_ROOT_CA.pem\nAdding debian:Certum_EC-384_CA.pem\nAdding debian:Certum_Trusted_Network_CA_2.pem\nAdding debian:Certum_Trusted_Network_CA.pem\nAdding debian:Certum_Trusted_Root_CA.pem\nAdding debian:CFCA_EV_ROOT.pem\nAdding debian:CommScope_Public_Trust_ECC_Root-01.pem\nAdding debian:CommScope_Public_Trust_ECC_Root-02.pem\nAdding debian:CommScope_Public_Trust_RSA_Root-01.pem\nAdding debian:CommScope_Public_Trust_RSA_Root-02.pem\nAdding debian:Comodo_AAA_Services_root.pem\nAdding debian:COMODO_Certification_Authority.pem\nAdding debian:COMODO_ECC_Certification_Authority.pem\nAdding debian:COMODO_RSA_Certification_Authority.pem\nAdding debian:DigiCert_Assured_ID_Root_CA.pem\nAdding debian:DigiCert_Assured_ID_Root_G2.pem\nAdding debian:DigiCert_Assured_ID_Root_G3.pem\nAdding debian:DigiCert_Global_Root_CA.pem\nAdding debian:DigiCert_Global_Root_G2.pem\nAdding debian:DigiCert_Global_Root_G3.pem\nAdding debian:DigiCert_High_Assurance_EV_Root_CA.pem\nAdding debian:DigiCert_TLS_ECC_P384_Root_G5.pem\nAdding debian:DigiCert_TLS_RSA4096_Root_G5.pem\nAdding debian:DigiCert_Trusted_Root_G4.pem\nAdding debian:D-TRUST_BR_Root_CA_1_2020.pem\nAdding debian:D-TRUST_EV_Root_CA_1_2020.pem\nAdding debian:D-TRUST_Root_Class_3_CA_2_2009.pem\nAdding debian:D-TRUST_Root_Class_3_CA_2_EV_2009.pem\nAdding debian:emSign_ECC_Root_CA_-_C3.pem\nAdding debian:emSign_ECC_Root_CA_-_G3.pem\nAdding debian:emSign_Root_CA_-_C1.pem\nAdding debian:emSign_Root_CA_-_G1.pem\nAdding debian:Entrust.net_Premium_2048_Secure_Server_CA.pem\nAdding debian:Entrust_Root_Certification_Authority_-_EC1.pem\nAdding debian:Entrust_Root_Certification_Authority_-_G2.pem\nAdding debian:Entrust_Root_Certification_Authority_-_G4.pem\nAdding debian:Entrust_Root_Certification_Authority.pem\nAdding debian:ePKI_Root_Certification_Authority.pem\nAdding debian:e-Szigno_Root_CA_2017.pem\nAdding debian:GDCA_TrustAUTH_R5_ROOT.pem\nAdding debian:GlobalSign_ECC_Root_CA_-_R4.pem\nAdding debian:GlobalSign_ECC_Root_CA_-_R5.pem\nAdding debian:GlobalSign_Root_CA.pem\nAdding debian:GlobalSign_Root_CA_-_R3.pem\nAdding debian:GlobalSign_Root_CA_-_R6.pem\nAdding debian:GlobalSign_Root_E46.pem\nAdding debian:GlobalSign_Root_R46.pem\nAdding debian:GLOBALTRUST_2020.pem\nAdding debian:Go_Daddy_Class_2_CA.pem\nAdding debian:Go_Daddy_Root_Certificate_Authority_-_G2.pem\nAdding debian:GTS_Root_R1.pem\nAdding debian:GTS_Root_R2.pem\nAdding debian:GTS_Root_R3.pem\nAdding debian:GTS_Root_R4.pem\nAdding debian:HARICA_TLS_ECC_Root_CA_2021.pem\nAdding debian:HARICA_TLS_RSA_Root_CA_2021.pem\nAdding debian:Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem\nAdding debian:Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem\nAdding debian:HiPKI_Root_CA_-_G1.pem\nAdding debian:Hongkong_Post_Root_CA_3.pem\nAdding debian:IdenTrust_Commercial_Root_CA_1.pem\nAdding debian:IdenTrust_Public_Sector_Root_CA_1.pem\nAdding debian:ISRG_Root_X1.pem\nAdding debian:ISRG_Root_X2.pem\nAdding debian:Izenpe.com.pem\nAdding debian:Microsec_e-Szigno_Root_CA_2009.pem\nAdding debian:Microsoft_ECC_Root_Certificate_Authority_2017.pem\nAdding debian:Microsoft_RSA_Root_Certificate_Authority_2017.pem\nAdding debian:NAVER_Global_Root_Certification_Authority.pem\nAdding debian:NetLock_Arany_=Class_Gold=_F\u0151tan\u00fas\u00edtv\u00e1ny.pem\nAdding debian:OISTE_WISeKey_Global_Root_GB_CA.pem\nAdding debian:OISTE_WISeKey_Global_Root_GC_CA.pem\nAdding debian:QuoVadis_Root_CA_1_G3.pem\nAdding debian:QuoVadis_Root_CA_2_G3.pem\nAdding debian:QuoVadis_Root_CA_2.pem\nAdding debian:QuoVadis_Root_CA_3_G3.pem\nAdding debian:QuoVadis_Root_CA_3.pem\nAdding debian:Sectigo_Public_Server_Authentication_Root_E46.pem\nAdding debian:Sectigo_Public_Server_Authentication_Root_R46.pem\nAdding debian:Secure_Global_CA.pem\nAdding debian:SecureSign_RootCA11.pem\nAdding debian:SecureTrust_CA.pem\nAdding debian:Security_Communication_ECC_RootCA1.pem\nAdding debian:Security_Communication_RootCA2.pem\nAdding debian:Security_Communication_RootCA3.pem\nAdding debian:Security_Communication_Root_CA.pem\nAdding debian:SSL.com_EV_Root_Certification_Authority_ECC.pem\nAdding debian:SSL.com_EV_Root_Certification_Authority_RSA_R2.pem\nAdding debian:SSL.com_Root_Certification_Authority_ECC.pem\nAdding debian:SSL.com_Root_Certification_Authority_RSA.pem\nAdding debian:SSL.com_TLS_ECC_Root_CA_2022.pem\nAdding debian:SSL.com_TLS_RSA_Root_CA_2022.pem\nAdding debian:Starfield_Class_2_CA.pem\nAdding debian:Starfield_Root_Certificate_Authority_-_G2.pem\nAdding debian:Starfield_Services_Root_Certificate_Authority_-_G2.pem\nAdding debian:SwissSign_Gold_CA_-_G2.pem\nAdding debian:SwissSign_Silver_CA_-_G2.pem\nAdding debian:SZAFIR_ROOT_CA2.pem\nAdding debian:Telia_Root_CA_v2.pem\nAdding debian:TeliaSonera_Root_CA_v1.pem\nAdding debian:TrustAsia_Global_Root_CA_G3.pem\nAdding debian:TrustAsia_Global_Root_CA_G4.pem\nAdding debian:Trustwave_Global_Certification_Authority.pem\nAdding debian:Trustwave_Global_ECC_P256_Certification_Authority.pem\nAdding debian:Trustwave_Global_ECC_P384_Certification_Authority.pem\nAdding debian:T-TeleSec_GlobalRoot_Class_2.pem\nAdding debian:T-TeleSec_GlobalRoot_Class_3.pem\nAdding debian:TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem\nAdding debian:TunTrust_Root_CA.pem\nAdding debian:TWCA_Global_Root_CA.pem\nAdding debian:TWCA_Root_Certification_Authority.pem\nAdding debian:UCA_Extended_Validation_Root.pem\nAdding debian:UCA_Global_G2_Root.pem\nAdding debian:USERTrust_ECC_Certification_Authority.pem\nAdding debian:USERTrust_RSA_Certification_Authority.pem\nAdding debian:vTrus_ECC_Root_CA.pem\nAdding debian:vTrus_Root_CA.pem\nAdding debian:XRamp_Global_CA_Root.pem\ndone.\nSetting up tomcat9-common (9.0.58-1ubuntu0.1) ...\nSetting up default-jre-headless (2:1.21-75+exp1) ...\nSetting up tomcat9-user (9.0.58-1ubuntu0.1) ...\nSetting up tomcat9-admin (9.0.58-1ubuntu0.1) ...\nSetting up tomcat9 (9.0.58-1ubuntu0.1) ...\nCreating group 'tomcat' with GID 988.\nCreating user 'tomcat' (Apache Tomcat) with UID 988 and GID 988.\n\nCreating config file \/etc\/tomcat9\/tomcat-users.xml with new version\n\nCreating config file \/etc\/tomcat9\/web.xml with new version\n\nCreating config file \/etc\/tomcat9\/server.xml with new version\n\nCreating config file \/etc\/tomcat9\/logging.properties with new version\n\nCreating config file \/etc\/tomcat9\/context.xml with new version\n\nCreating config file \/etc\/tomcat9\/catalina.properties with new version\n\nCreating config file \/etc\/tomcat9\/jaspic-providers.xml with new version\n\nCreating config file \/etc\/logrotate.d\/tomcat9 with new version\n\nCreating config file \/etc\/default\/tomcat9 with new version\nCreated symlink \/etc\/systemd\/system\/multi-user.target.wants\/tomcat9.service \u2192 \/usr\/lib\/systemd\/system\/tomcat9.service.\nProcessing triggers for rsyslog (8.2312.0-3ubuntu9) ...\nScanning processes...                                                                                                                                                                                              \nScanning candidates...                                                                                                                                                                                             \nScanning linux images...                                                                                                                                                                                           \n\nRunning kernel seems to be up-to-date.\n\nRestarting services...\n\nService restarts being deferred:\n \/etc\/needrestart\/restart.d\/dbus.service\n systemctl restart systemd-logind.service\n systemctl restart unattended-upgrades.service\n\nNo containers need to be restarted.\n\nUser sessions running outdated binaries:\n kifarunix @ session #3: sshd[1392]\n kifarunix @ user manager service: systemd[989]\n\nNo VM guests are running outdated hypervisor (qemu) binaries on this host.\n<\/code><\/pre>\n\n\n\n<p>Disable Ubuntu 22.04 Jammy updates universe repos and run system package cache update;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed -i 's\/^\/#\/' \/etc\/apt\/sources.list.d\/tomcat9.list<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>apt update<\/code><\/pre>\n\n\n\n<p>Tomcat9 is started and enabled to run on system boot upon installation.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl status tomcat9<\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>\u25cf tomcat9.service - Apache Tomcat 9 Web Application Server\n     Loaded: loaded (\/usr\/lib\/systemd\/system\/tomcat9.service; enabled; preset: enabled)\n     Active: active (running) since Sat 2024-10-12 07:02:07 UTC; 3min 1s ago\n       Docs: https:\/\/tomcat.apache.org\/tomcat-9.0-doc\/index.html\n    Process: 7799 ExecStartPre=\/usr\/libexec\/tomcat9\/tomcat-update-policy.sh (code=exited, status=0\/SUCCESS)\n   Main PID: 7804 (java)\n      Tasks: 35 (limit: 4614)\n     Memory: 150.3M (peak: 154.7M)\n        CPU: 5.639s\n     CGroup: \/system.slice\/tomcat9.service\n             \u2514\u25007804 \/usr\/lib\/jvm\/default-java\/bin\/java -Djava.util.logging.config.file=\/var\/lib\/tomcat9\/conf\/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.awt.headl>\n\nOct 12 07:02:09 noble tomcat9[7804]: Deployment of deployment descriptor [\/etc\/tomcat9\/Catalina\/localhost\/host-manager.xml] has finished in [1,051] ms\nOct 12 07:02:09 noble tomcat9[7804]: Deploying deployment descriptor [\/etc\/tomcat9\/Catalina\/localhost\/manager.xml]\nOct 12 07:02:09 noble tomcat9[7804]: The path attribute with value [\/manager] in deployment descriptor [\/etc\/tomcat9\/Catalina\/localhost\/manager.xml] has been ignored\nOct 12 07:02:10 noble tomcat9[7804]: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in the>\nOct 12 07:02:10 noble tomcat9[7804]: Deployment of deployment descriptor [\/etc\/tomcat9\/Catalina\/localhost\/manager.xml] has finished in [413] ms\nOct 12 07:02:10 noble tomcat9[7804]: Deploying web application directory [\/var\/lib\/tomcat9\/webapps\/ROOT]\nOct 12 07:02:10 noble tomcat9[7804]: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in the>\nOct 12 07:02:10 noble tomcat9[7804]: Deployment of web application directory [\/var\/lib\/tomcat9\/webapps\/ROOT] has finished in [398] ms\nOct 12 07:02:10 noble tomcat9[7804]: Starting ProtocolHandler [\"http-nio-8080\"]\nOct 12 07:02:10 noble tomcat9[7804]: Server startup in [1962] milliseconds\n<\/code><\/pre>\n\n\n\n<p>If UFW is running, allow Tomcat&nbsp; through it.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ufw allow 8080\/tcp<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"installing-guacamole-client-on-ubuntu-22-04\">Installing Guacamole Client on Ubuntu 24.04<\/h3>\n\n\n\n<p>guacamole-client&nbsp;contains provides web application that will serve the HTML5 Guacamole client to users that connect to your server.&nbsp;The web application will then connect to&nbsp;guacd&nbsp;on behalf of connected users in order to serve them any remote desktop they are authorized to access.<\/p>\n\n\n\n<p>Create Guacamole configuration directory;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir \/etc\/guacamole<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"download-guacamole-client-binary\">Download Guacamole-client Binary<\/h4>\n\n\n\n<p>Guacamole client can be installed from a source code or from ready binary. Binary installation is used in this demo. Download Guacamole-client from <a href=\"https:\/\/guacamole.apache.org\/releases\/\" target=\"_blank\" rel=\"noreferrer noopener\">Guacamole releases page<\/a> for the respective latest version (v1.5.5 as of this writing) and store it in the configuration directory created above;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>VER=1.5.5<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>wget https:\/\/downloads.apache.org\/guacamole\/${VER}\/binary\/guacamole-${VER}.war -O \/etc\/guacamole\/guacamole.war<\/code><\/pre>\n\n\n\n<p>Create a symbolic link of the guacamole client to Tomcat webapps directory as shown below;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>ln -s \/etc\/guacamole\/guacamole.war \/var\/lib\/tomcat9\/webapps\/<\/code><\/pre>\n\n\n\n<p>Restart Tomcat to deploy the new web application;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>systemctl restart tomcat9<\/code><\/pre>\n\n\n\n<p>Restart guacd&nbsp;daemon as well;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>systemctl restart guacd<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"configure-apache-guacamole-on-ubuntu-22-04\">Configure Apache Guacamole on Ubuntu 24.04<\/h2>\n\n\n\n<p>Guacamole has two major configuration files;&nbsp;<code>\/etc\/guacamole<\/code>&nbsp;which is referenced by the&nbsp;<code>GUACAMOLE_HOME<\/code>&nbsp;environment variable and&nbsp;<code>\/etc\/guacamole\/guacamole.properties<\/code>&nbsp;which is the main configuration file used by Guacamole and its extensions.<\/p>\n\n\n\n<p>There are also guacamole extensions and libraries configurations. You need to create the directories for these configs;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>mkdir \/etc\/guacamole\/{extensions,lib}<\/code><\/pre>\n\n\n\n<p>Set the guacamole home directory environment variable and add it to <code><strong>\/etc\/default\/tomcat9<\/strong><\/code> configuration file.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>echo \"GUACAMOLE_HOME=\/etc\/guacamole\" &gt;&gt; \/etc\/default\/tomcat9<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"configure-guacamole-server-connections\">Configure Guacamole Server Connections<\/h4>\n\n\n\n<p>To define how Guacamole connects to&nbsp;<code>guacd<\/code>, create the&nbsp;<code>guacamole.properties<\/code>&nbsp;file under <code><strong>\/etc\/guacamole<\/strong><\/code> directory with the following content.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>vim \/etc\/guacamole\/guacamole.properties<\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>guacd-hostname: localhost\nguacd-port:     4822\nuser-mapping:   \/etc\/guacamole\/user-mapping.xml\nauth-provider:  net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider\n<\/code><\/pre>\n\n\n\n<p>After that, save the configuration file and link the Guacamole configurations directory to Tomcat servlet directory as shown below.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>ln -s \/etc\/guacamole \/usr\/share\/tomcat9\/.guacamole<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"configure-guacamole-authentication-method\">Configure Guacamole Authentication Method<\/h4>\n\n\n\n<p>Guacamole\u2019s default authentication method reads all users and connections from a single file called&nbsp;<code>user-mapping.xml<\/code>. In this file,you need to define the <strong>users allowed to access Guacamole web UI<\/strong>,<strong> the servers to connect to<\/strong> and <strong>the method of connection<\/strong>.<\/p>\n\n\n\n<p>Therefore, run the command below to create this file with the following contents.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>vim \/etc\/guacamole\/user-mapping.xml<\/code><\/pre>\n\n\n\n<p>Be sure to replace&nbsp;<strong>password<\/strong>&nbsp;with your strong password.<\/p>\n\n\n\n<pre class=\"scroll-box\"><code>&lt;user-mapping&gt;\n        \n    &lt;!-- Per-user authentication and config information --&gt;\n\n    &lt;!-- A user using md5 to hash the password\n         <strong>guacadmin user and its md5 hashed password below is used to <\/strong>\n<strong>             login to Guacamole Web UI<\/strong>--&gt;\n    &lt;authorize \n            username=\"<strong>guacadmin<\/strong>\"\n            password=\"5f4dcc3b5aa765d61d8327deb882cf99\"\n            encoding=\"md5\"&gt;\n\n        &lt;!-- First authorized Remote connection --&gt;\n<strong>        &lt;connection name=\"CentOS-Server\"&gt;\n            &lt;protocol&gt;ssh&lt;\/protocol&gt;\n            &lt;param name=\"hostname\"&gt;192.168.56.156&lt;\/param&gt;\n            &lt;param name=\"port\"&gt;22&lt;\/param&gt;\n        &lt;\/connection&gt;<\/strong>\n\n        &lt;!-- Second authorized remote connection --&gt;\n<strong>        &lt;connection name=\"Windows 7\"&gt;\n            &lt;protocol&gt;rdp&lt;\/protocol&gt;\n            &lt;param name=\"hostname\"&gt;192.168.56.122&lt;\/param&gt;\n            &lt;param name=\"port\"&gt;3389&lt;\/param&gt;<\/strong>\n            <strong>&lt;param name=\"username\"&gt;koromicha&lt;\/param&gt;\n            &lt;param name=\"ignore-cert\"&gt;true&lt;\/param&gt;\n        &lt;\/connection&gt;<\/strong>\n\n    &lt;\/authorize&gt;\n\n&lt;\/user-mapping&gt;\n<\/code><\/pre>\n\n\n\n<p>Generate the MD5 hash of passwords for the user used for logging into Guacamole web user interface. Replace you password accordingly;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>echo -n password | openssl md5<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>printf '%s' password | md5sum<\/code><\/pre>\n\n\n\n<p>If you need to explicitly define usernames and passwords, add the parameters;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>&lt;param name=\"username\"&gt;<strong>USERNAME<\/strong>&lt;\/param&gt;\n&lt;param name=\"password\"&gt;<strong>PASSWORD&lt;\/param&gt;<\/strong><\/code><\/pre>\n\n\n\n<p>Save and exit the configuration file.<\/p>\n\n\n\n<p>You can check how to enable Guacamole OpenLDAP Authentication;<\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/setup-apache-guacamole-openldap-authentication\/\" target=\"_blank\" rel=\"noreferrer noopener\">Setup Apache Guacamole OpenLDAP Authentication<\/a><\/p>\n\n\n\n<p>Restart both Tomcat and guacd to effect the changes.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>systemctl restart tomcat9 guacd<\/code><\/pre>\n\n\n\n<p>Be sure to check the syslog, <code>\/var\/log\/syslog<\/code> or <code>\/var\/log\/tomcat9\/CATALINA-*<\/code> for any issues.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"accessing-apache-guacamole-from-browse\">Accessing Apache Guacamole from Browse<\/h3>\n\n\n\n<p>Once Guacamole is setup, you can access it from web browser using the address&nbsp;<code><strong>http:\/\/server-IP:8080\/guacamole<\/strong><\/code>.<\/p>\n\n\n\n<div><a href=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/03\/apache-guacamole.png\" class=\"td-modal-image\"><div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"709\" height=\"570\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/03\/apache-guacamole.png\" alt=\"Install Apache Guacamole on Ubuntu 24.04\" class=\"wp-image-8471\" title=\"\"><\/figure><\/div><\/a><\/div>\n\n\n\n<p>Upon successful login, you get to Apache Guacamole web dashboard and you should be able to see the added connections.<\/p>\n\n\n\n<div><a href=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/03\/guacamole-web.png\" class=\"td-modal-image\"><figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1363\" height=\"357\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/03\/guacamole-web.png\" alt=\"Install Apache Guacamole on Ubuntu 24.04\" class=\"wp-image-8472\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/03\/guacamole-web.png?v=1616858477 1363w, https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/03\/guacamole-web-768x201.png?v=1616858477 768w\" sizes=\"(max-width: 1363px) 100vw, 1363px\" \/><\/figure><\/a><\/div>\n\n\n\n<p>Click on a connection to name to initiate remote login. For example, SSHing into my CentOS-serve gets a me password prompt since we already defined the user;<\/p>\n\n\n\n<div><a href=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/03\/guacamole-ssh.png\" class=\"td-modal-image\"><figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1099\" height=\"460\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/03\/guacamole-ssh.png\" alt=\"Install Apache Guacamole on Ubuntu 24.04\" class=\"wp-image-8473\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/03\/guacamole-ssh.png?v=1616858513 1099w, https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/03\/guacamole-ssh-768x321.png?v=1616858513 768w\" sizes=\"(max-width: 1099px) 100vw, 1099px\" \/><\/figure><\/a><\/div>\n\n\n\n<p>To login to Windows 7 via RDP, just click on Windows 7;<\/p>\n\n\n\n<div><a href=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/03\/windows7-guacamole.png\" class=\"td-modal-image\"><figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1363\" height=\"697\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/03\/windows7-guacamole.png\" alt=\"Install Apache Guacamole on Ubuntu 24.04\" class=\"wp-image-8474\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/03\/windows7-guacamole.png?v=1616858538 1363w, https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/03\/windows7-guacamole-768x393.png?v=1616858538 768w\" sizes=\"(max-width: 1363px) 100vw, 1363px\" \/><\/figure><\/a><\/div>\n\n\n\n<p>And there you go. Enter your password and proceed to your desktop.<\/p>\n\n\n\n<p>If windows login fail with the error;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2022\/04\/fix-guacamole-Security-negotiation-failed.png\" alt=\"Guacamole: How to fix RDP server closed\/refused connection: Security negotiation failed (wrong security type?)\" title=\"\"><figcaption class=\"wp-element-caption\">Guacamole Windows RDP Connection Issue<\/figcaption><\/figure>\n\n\n\n<p>The follow the guide below to fix it;<\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/guacamole-how-to-fix-rdp-server-closed-refused-connection-security-negotiation-failed-wrong-security-type\/\" target=\"_blank\" rel=\"noreferrer noopener\">Guacamole: How to fix RDP server closed\/refused connection: Security negotiation failed (wrong security type?)<\/a><\/p>\n\n\n\n<p>You can now add more connections to your Guacamole. That marks the end of our guide on install Apache Guacamole on Ubuntu.<\/p>\n\n\n\n<p>Read more on Guacamole.<\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/configure-totp-two-factor-authentication-on-apache-guacamole\/\" target=\"_blank\" rel=\"noreferrer noopener\">Configure TOTP Two-Factor Authentication on Apache Guacamole<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/configure-guacamole-mysql-database-authentication\/\" target=\"_blank\" rel=\"noreferrer noopener\">Configure Guacamole MySQL Database Authentication<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this guide, we are going to learn how to install Apache Guacamole on Ubuntu 24.04. Apache Guacamole&nbsp;is a clientless HTML5 web based remote desktop<\/p>\n","protected":false},"author":10,"featured_media":12174,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_lock_modified_date":false,"footnotes":""},"categories":[121,254,917,214,253],"tags":[7582,7583,7584],"class_list":["post-23299","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-howtos","category-apache","category-guacamole","category-remote-desktop","category-web-servers","tag-apache-guacamole-ubuntu-24-04","tag-tomcat-9-ubuntu-24-04","tag-ubuntu-24-04-guacamole","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-50","resize-featured-image"],"_links":{"self":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/23299"}],"collection":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/comments?post=23299"}],"version-history":[{"count":2,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/23299\/revisions"}],"predecessor-version":[{"id":23301,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/23299\/revisions\/23301"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/media\/12174"}],"wp:attachment":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/media?parent=23299"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/categories?post=23299"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/tags?post=23299"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}