{"id":2272,"date":"2019-02-23T21:05:36","date_gmt":"2019-02-23T18:05:36","guid":{"rendered":"http:\/\/kifarunix.com\/?p=2272"},"modified":"2019-04-08T14:14:54","modified_gmt":"2019-04-08T11:14:54","slug":"how-to-install-and-configure-guacamole-on-fedora-29","status":"publish","type":"post","link":"https:\/\/kifarunix.com\/how-to-install-and-configure-guacamole-on-fedora-29\/","title":{"rendered":"How to Install and Configure Guacamole on Fedora 29"},"content":{"rendered":"<p>This guide describes how to install and configure Guacamole on Fedora 29. We have covered similar setups in our previous guides on Debian 9.8 and Ubuntu 18.04. You can check them by following the links below.<\/p>\n<ul>\n<li><a href=\"https:\/\/kifarunix.com\/how-to-install-and-setup-guacamole-on-debian-9-8\/\" target=\"_blank\" rel=\"noopener noreferrer\">How to Install and Setup Guacamole on Debian 9.8<\/a><\/li>\n<li><a title=\"How to Setup Guacamole Web-based Remote Desktop Access Tool on Ubuntu 18.04\" href=\"https:\/\/kifarunix.com\/how-to-setup-guacamole-web-based-remote-desktop-access-tool-on-ubuntu-18-04\/\" target=\"_blank\" rel=\"bookmark noopener noreferrer\">How to Setup Guacamole Web-based Remote Desktop Access Tool on Ubuntu 18.04<\/a><\/li>\n<\/ul>\n<p>If you also need to learn how to transfer files over Guacamole, check our tutorial here;<\/p>\n<ul>\n<li class=\"entry-title td-module-title\"><a title=\"How to Enable RDP\/SSH File Transfer Over Guacamole\" href=\"https:\/\/kifarunix.com\/how-to-enable-rdp-ssh-file-transfer-over-guacamole\/\" target=\"_blank\" rel=\"bookmark noopener noreferrer\">How to Enable RDP\/SSH File Transfer Over Guacamole<\/a><\/li>\n<\/ul>\n<h2>Install and Configure Guacamole on Fedora 29<\/h2>\n<p>The installation covers installation and setup of <code>Guacamole-server<\/code> as well <code>Guacamole client<\/code>. Guacamole server (<code>guacd<\/code>) provides contains all the required server-side components required by Guacamole to connect to remote desktops. G<span class=\"package\">uacamole-client on the other hand provides all the all Java and JavaScript components of Guacamole that make up the web application which serves the HTML5 Guacamole client to users that connect to Guacamole server.<br \/>\n<\/span><\/p>\n<h3>Installing Guacamole Server on Fedora 29<\/h3>\n<p>Luckily, the latest release of the Guacamole server (v 0.9.14) is available on the default Fedora 29 repositories. Just power up your terminal and execute the following commands to install Guacamole server (guacd) and all the other required packages for the remote connection protocols that Guacamole server supports.<\/p>\n<p>Disable SELinux or set it up on permissive mode but be cautious of the repercussions of this. Otherwise, leave it on enforcing mode if at all you understand how it functions.<\/p>\n<pre>sed -i 's\/=enforcing\/=permissive\/' \/etc\/selinux\/config\r\nsystemctl reboot -i<\/code><\/pre>\n<p>After that, proceed to install Guacamole server.<\/p>\n<pre>dnf update\r\ndnf install guacd libguac-client-rdp libguac-client-ssh libguac-client-vnc libguac-client-telnet<\/code><\/pre>\n<p>Once the installation is done, start and enable Guacamole server (guacd) to run on system reboot.<\/p>\n<pre>systemctl start guacd\r\nsystemctl enable guacd<\/code><\/pre>\n<p>By default, Guacamole server listens on TCP port 4822. You need to open this port on firewall.<\/p>\n<h3>Installing Apache Tomcat<\/h3>\n<p>Once the server is installed, run the command below to install Tomcat Java servelet container that serves Guacamole client and all the required dependencies.<\/p>\n<pre>dnf install tomcat tomcat-webapps<\/code><\/pre>\n<p>Start and enable Tomcat.<\/p>\n<pre>systemctl start tomcat\r\nsystemctl enable tomcat<\/code><\/pre>\n<p>Apache Tomcat listens on TCP port 8080. Hence open access to this port on firewall by running the command below;<\/p>\n<pre>firewall-cmd --permanent --add-port=8080\/tcp\r\nfirewall-cmd --reload<\/code><\/pre>\n<p>Verify that Tomcat is ready to server the client requests by navigating to the browser and entering the URL, <code>http:\/\/IP_Address:8080<\/code> and you should land on the Tomcat test page.<\/p>\n<h3>Installing Guacamole Client on Fedora 29<\/h3>\n<p>The Guacamole client is available as a binary. To install it, just pull it from the <a href=\"https:\/\/sourceforge.net\/projects\/guacamole\/files\/current\/binary\/\" target=\"_blank\" rel=\"noopener noreferrer\">Guacamole binaries downloads page<\/a> as shown below.<\/p>\n<pre>wget https:\/\/sourceforge.net\/projects\/guacamole\/files\/current\/binary\/guacamole-0.9.14.war<\/code><\/pre>\n<p>To install the Guacamole client binary, just move it to the main configuration directory renaming it as follows.<\/p>\n<pre>mv guacamole-0.9.14.war \/etc\/guacamole\/guacamole.war<\/code><\/pre>\n<p>After that, link the Guacamole client to Apache Tomcat webapps configuration directory.<\/p>\n<pre>ln -s \/etc\/guacamole\/guacamole.war \/var\/lib\/tomcat\/webapps\/<\/code><\/pre>\n<h3>Configuring Guacamole Server<\/h3>\n<p>After the installation of the Guacamole server daemon, you need define how to Guacamole client will connect to the Guacamole server (guacd) under the <code>\/etc\/guacamole\/guacamole.properties<\/code> configuration file. Within this configuration, you need to simply define Guacamole server hostname, port, user mapping configuration file, authentication provider.<\/p>\n<pre>vim \/etc\/guacamole\/guacamole.properties<\/code><\/pre>\n<pre>guacd-hostname: localhost\r\nguacd-port:    4822\r\nuser-mapping:    \/etc\/guacamole\/user-mapping.xml\r\nauth-provider:    net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider<\/code><\/pre>\n<p>you need to configure authentication method and create users who can access Guacamole server. To begin with, create the Guacamole general configuration directory. This file is reference by the Guacamole home environment variable, <code class=\"varname\">GUACAMOLE_HOME<\/code>.<\/p>\n<pre>mkdir \/etc\/guacamole<\/code><\/pre>\n<p>In regards to authentication methods, Guacamole supports LDAP, backend databases, local file etc. Reading users and connection details from local file, usually <code class=\"filename\">user-mapping.xml<\/code>, is the default method used by Guacamole. We are going to use the default authentication method in this guide.<\/p>\n<h3>Configure default authentication<\/h3>\n<p>The default authentication method for Guacamole involves reading usernames and passwords from an XML file, <code class=\"filename\">\/etc\/guacamole\/user-mapping.xml<\/code>.<\/p>\n<pre>vim \/etc\/guacamole\/user-mapping.xml<\/code><\/pre>\n<pre>&lt;user-mapping&gt;\r\n        \r\n    &lt;!-- Per-user authentication and config information --&gt;\r\n\r\n    &lt;!-- A user using md5 to hash the password\r\n         amos user and its md5 hashed password below is used to \r\n             login to Guacamole Web UI--&gt;\r\n    &lt;authorize \r\n<strong>            username=\"amos\"<\/strong>\r\n<strong>            password=\"602361b61d6818197680784e1112e3ee\"<\/strong>\r\n<strong>            encoding=\"md5\"&gt;<\/strong>\r\n    &lt;\/authorize&gt;\r\n\r\n&lt;\/user-mapping&gt;<\/code><\/pre>\n<p>For every defined user, you need generate MD5 hashed password. The MD5 password hashes can be generated as shown below;<\/p>\n<pre>echo -n Your_Password | openssl md5\r\n(stdin)= 602361b61d6818197680784e1112e3ee<\/code><\/pre>\n<p>You can as well specify authorized connections for each user.<\/p>\n<pre>&lt;user-mapping&gt;\r\n        \r\n    &lt;!-- Per-user authentication and config information --&gt;\r\n\r\n    &lt;!-- A user using md5 to hash the password\r\n         amos user and its md5 hashed password below is used to \r\n             login to Guacamole Web UI--&gt;\r\n    &lt;authorize \r\n            username=\"amos\"\r\n            password=\"602361b61d6818197680784e1112e3ee\"\r\n            encoding=\"md5\"&gt;\r\n        &lt;connection name=\"SSH Connection\"&gt;\r\n            &lt;protocol&gt;ssh&lt;\/protocol&gt;\r\n            &lt;param name=\"hostname\"&gt;192.168.43.203&lt;\/param&gt;\r\n            &lt;param name=\"port\"&gt;22&lt;\/param&gt;\r\n            &lt;param name=\"username\"&gt;amos&lt;\/param&gt;\r\n        &lt;\/connection&gt;\r\n        &lt;connection name=\"RDP connection\"&gt;\r\n            &lt;protocol&gt;rdp&lt;\/protocol&gt;\r\n            &lt;param name=\"hostname\"&gt;192.168.43.73&lt;\/param&gt;\r\n            &lt;param name=\"port\"&gt;3389&lt;\/param&gt;\r\n            &lt;param name=\"username\"&gt;mibeyki&lt;\/param&gt;\r\n        &lt;\/connection&gt;\r\n\r\n    &lt;\/authorize&gt;\r\n\r\n&lt;\/user-mapping&gt;<\/code><\/pre>\n<p>Next, the Apache Tomcat servelet container should\u00a0 be able to read all the configurations defined under <code>\/etc\/guacamole<\/code> directory. Hence, add the GUACAMOLE_HOME environment variable to the serverlet configuration file as shown below;<\/p>\n<pre>echo \"GUACAMOLE_HOME=\/etc\/guacamole\" &gt;&gt; \/etc\/default\/tomcat<\/code><\/pre>\n<p>Restart both Tomcat and Guacamole server.<\/p>\n<pre>systemctl restart tomcat\r\nsystemctl restart guacd<\/code><\/pre>\n<p>Guacamole UI can be accessed with the URL, <code>http:\/\/Server_IP:8080\/guacamole<\/code>.<\/p>\n<p><a href=\"http:\/\/kifarunix.com\/wp-content\/uploads\/2019\/02\/guacamole-login.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2278\" src=\"http:\/\/kifarunix.com\/wp-content\/uploads\/2019\/02\/guacamole-login.png\" alt=\"Install and Configure Guacamole on Fedora 29\" width=\"957\" height=\"723\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2019\/02\/guacamole-login.png 957w, https:\/\/kifarunix.com\/wp-content\/uploads\/2019\/02\/guacamole-login-768x580.png 768w\" sizes=\"(max-width: 957px) 100vw, 957px\" \/><\/a><\/p>\n<p>When you login, you should be able to see the two connections defined above.<\/p>\n<p><a href=\"http:\/\/kifarunix.com\/wp-content\/uploads\/2019\/02\/guacamole-interface.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2277\" src=\"http:\/\/kifarunix.com\/wp-content\/uploads\/2019\/02\/guacamole-interface.png\" alt=\"Install and Configure Guacamole on Fedora 29\" width=\"1915\" height=\"329\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2019\/02\/guacamole-interface.png 1915w, https:\/\/kifarunix.com\/wp-content\/uploads\/2019\/02\/guacamole-interface-768x132.png 768w\" sizes=\"(max-width: 1915px) 100vw, 1915px\" \/><\/a><\/p>\n<p>To initiate a connection, click on the connection type. For example, if I click on the SSH connection, this will take me to Password prompt. After successful authentication, you should get into the remote server&#8217;s terminal.<\/p>\n<p><a href=\"http:\/\/kifarunix.com\/wp-content\/uploads\/2019\/02\/guacamole-SSH-connection.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2279\" src=\"http:\/\/kifarunix.com\/wp-content\/uploads\/2019\/02\/guacamole-SSH-connection.png\" alt=\"Install and Configure Guacamole on Fedora 29\" width=\"1244\" height=\"466\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2019\/02\/guacamole-SSH-connection.png 1244w, https:\/\/kifarunix.com\/wp-content\/uploads\/2019\/02\/guacamole-SSH-connection-768x288.png 768w\" sizes=\"(max-width: 1244px) 100vw, 1244px\" \/><\/a><\/p>\n<p>To ensure that you got good fonts, install the following fonts.<\/p>\n<pre>dnf install terminus-fonts terminus-fonts-console dejavu-sans-mono-fonts<\/code><\/pre>\n<p>Well, that is a basic introduction into how to install and configure Guacamole on Fedora 29. You can learn more about Guacamole and its configuration by following the reference link below.<\/p>\n<p>Reference<\/p>\n<ul>\n<li><a href=\"https:\/\/guacamole.apache.org\/doc\/gug\/\" target=\"_blank\" rel=\"noopener noreferrer\">Guacamole Manual<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>This guide describes how to install and configure Guacamole on Fedora 29. We have covered similar setups in our previous guides on Debian 9.8 and<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_lock_modified_date":false,"footnotes":""},"categories":[121,214],"tags":[289,215,336],"class_list":["post-2272","post","type-post","status-publish","format-standard","hentry","category-howtos","category-remote-desktop","tag-fedora-29","tag-guacamole","tag-guacd","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-50"],"_links":{"self":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/2272"}],"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\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/comments?post=2272"}],"version-history":[{"count":6,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/2272\/revisions"}],"predecessor-version":[{"id":2544,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/2272\/revisions\/2544"}],"wp:attachment":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/media?parent=2272"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/categories?post=2272"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/tags?post=2272"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}