Changes

From Amahi Wiki
Jump to: navigation, search
6,824 bytes added ,  03:38, 18 June 2017
{{MessageBox|backgroundcolor = #faa|image =Warning.png|heading =WARNING|message =This is recommended only for advanced users, proceed with caution.}}= What is Guacamole? == [https://guacamole.incubator.apache.org/ Guacamole ] is an HTML5 remote desktop gatewaythat can be installed on Amahi 9 (Fedora 23). This guidance may work with other Amahi versions with some modification.
Guacamole provides access to desktop environments using remote desktop protocols like VNC and RDP. A centralized server acts as a tunnel and proxy, allowing access to multiple desktops through a web browser.
No browser plugins are needed, and no client software needs to be installed. The client requires nothing more than a web browser supporting HTML5 and AJAX.
== Installing REF: [http://www.tecmint.com/guacamole-access-remote-linux-windows-machines-via-web-browser/ Setting Up Web-Based Guacamole on Amahi ===== Dependencies ===The following dependencies are included so as Tool to make as many features in Guacamole available to the installer.Access Remote Linux/Windows Machines]
In terminal, = Install Guacamole =<div style="border: 1px solid #A3B1BF; padding: .8em 1em; background-color: #E6F2FF; margin: 0px 1em;">'''WARNING:''' All commands in this tutorial are executed as <code>root, install dependencies </code> (or precede with the following:<code>sudo</code>).</div>
For Fedora 23 or newer (Fedora 21, substitute <code>yum</code> for <code>dnf</code>):
sudo dnf install tomcat gcc cairo-devel libjpeg-devel libpng-devel uuid-devel freerdp-devel \
pango-devel libssh2-devel libtelnet-devel libvncserver-devel pulseaudio-libs-devel openssl-devel \
libvorbis-devel libwebp-devel wget
Some packages may be already included in your We have created a bash script to make installation simple or you can manually install using the guidance below. You '''MUST''' complete the [[Guacamole#Create Amahi Web App|Create Amahi Web App]] step prior to executing the following: wget <nowiki>https://www.dropbox.com/s/4hadafih8ahuj2n/install-guacamole. sh</nowiki> If this is so Fedora chmod 755 install-guacamole.sh ./ Amahi will skip that packageinstall-guacamole.sh
:'''NOTE:''Do NOT use this script on anything less than Amahi 9 / Fedora 23 unless you edit it first to match your systems' requirements. You will need (See [[Guacamole#Install Dependencies|Install Dependencies]] to learn what changes are necessary.) == Create Amahi Web App ==Login to your Amahi Dashboard and install the Amahi [https://www.amahi.org/apps/web-apps Web Apps] plug-in to use this guidance. Ensure you '''enable''' [[Advanced Settings]].
=== Preparing Amahi ===
Login to your Amahi Dashboard and choose "Set Up" in the upper right.
Now select the "Apps" tab.
Click on "Webapps" and on the page that comes up choose the "New Web App" button at the bottom.
Fill in the name (guacamole) and leave everything else as it is.
=== Setting up MySQL Authentication ===Edit ''####-guacamole.conf'' in '''/etc/httpd/conf.d''' (replacing #### with the appropriate number): vi /etc/httpd/conf.d/####-guacamole.conf Right below the ''ServerAlias'' line, add the following: ProxyPass / <nowiki>http://localhost:8080/guacamole/</nowiki> ProxyPassReverse / <nowiki>http://localhost:8080/guacamole/</nowiki> ==== Creating Again, if you use vi for creating this file, press the <i>Esc</i> key to get back in command mode and <i>:wq</i> to write the Database changes and quit vi. Restart Apache systemctl restart httpd ==Install Dependencies ==Due to the Fedora 23 ''freerdp'' packages being unstable, we must use the CentOS stable version. hda(Do not do this if you are installing on Fedora 21 or below) To install, execute the following:<pre>wget https://www.dropbox.com/s/p2uc1rcpckky75v/libxkbfile-create1.0.8-db5.el7.x86_64.rpmwget https://www.dropbox.com/s/0tjm7q93z9pw0hj/freerdp-libs-1.0.2-6.el7_2.1.x86_64.rpmwget https://www.dropbox.com/s/aysml7coehz0hqi/freerdp-devel-1.0.2-6.el7_2.1.x86_64.rpmrpm -Uvh libxkbfile-1.0.8-5.el7.x86_64.rpmrpm -Uvh freerdp-libs-1.0.2-6.el7_2.1.x86_64.rpmrpm -Uvh freerdp-devel-1.0.2-6.el7_2.1.x86_64.rpm</pre>  Now install the Fedora dependencies:For Fedora 23 or newer (Fedora 21, substitute <code>yum</code> for <code>dnf</code> andadd <code>freerdp-devel</code> to the list of dependencies): dnf install tomcat gcc cairo-devel libjpeg-devel libpng-devel uuid-devel pango-devel \ libssh2-devel libtelnet-devel libvncserver-devel pulseaudio-libs-devel openssl-devel \ libvorbis-devel libwebp-devel dejavu-sans-mono-fonts terminus-fonts terminus-fonts-user guacdbconsole
==Configure MySQL Authentication ==== Installing = Install MySQL Authentication Module ====
Create a working directory and move there
sudo mkdir -p /var/hda/web-apps/guacamole/sqlauth && cd /var/hda/web-apps/guacamole/sqlauth
Download Guacamole's authorization module
sudo wget <nowiki>http://sourceforge.net/projects/guacamole/files/current/extensions/guacamole-auth-jdbc-0.9.9.tar.gz</nowiki>
Unpack it
sudo tar -zxf guacamole-auth-jdbc-0.9.9.tar.gz
Download MySQL and Java Connector
sudo wget <nowiki>http://dev.mysql.com/get/Downloads/Connector/j/mysql-connector-java-5.1.38.tar.gz</nowiki>
Unpack it
sudo tar -zxf mysql-connector-java-5.1.38.tar.gz
Create directories for the extensions in Tomcat's folders
sudo mkdir -p /usr/share/tomcat/.guacamole/{extensions,lib}
Move the modules to their respective directories.
sudo mv guacamole-auth-jdbc-0.9.9/mysql/guacamole-auth-jdbc-mysql-0.9.9.jar /usr/share/tomcat/.guacamole/extensions/ sudo mv mysql-connector-java-5.1.38/mysql-connector-java-5.1.38-bin.jar /usr/share/tomcat/.guacamole/lib/
Restart MariaDB
sudo systemctl restart mariadb === Create the Database === hda-create-db-and-user guacdb === Configure Database Settings ===Create a directory for the configuration file.service mkdir -p /etc/guacamole/ Create a file called "guacamole.properties" in that directory vi /etc/guacamole/guacamole.properties Press the <i>i</i> key to begin inserting text into the guacamole.properties file and include the following contents: # MySQL properties mysql-hostname: localhost mysql-port: 3306 mysql-database: guacdb mysql-username: guacdb mysql-password: guacdb # Additional settings mysql-default-max-connections-per-user: 0 mysql-default-max-group-connections-per-user: 0
If you use vi for creating this file, press the <i>Esc</i> key to get back in command mode and <i>:wq</i> to write the changes and quit vi. Now create a symbolic link of this file for Tomcat ln -s /etc/guacamole/guacamole.properties /usr/share/tomcat/.guacamole/ ==== Loading Load Guacamole's schema into the MySQL Tables =Data ===
The schema for MySQL was downloaded in the previous process.
Just change directories to the files location
cd /var/hda/web-apps/guacamole/sqlauth/guacamole-auth-jdbc-0.9.9/mysql/schema/
and run the following command:
sudo cat ./*.sql | mysql -u root uroot -p hdaguacdb
::'''WARNING:''' Please see [[Database Root Password]] for the appropriate login password. === Installing Install Guacamole Server ===
Guacamole uses "guacd", a Guacamole server and a Guacamole Client for users to connect to the "guacd" server. We first install Guacamole Server.
Download Guacamole Server
sudo wget <nowiki>https://sourceforge.net/projects/guacamole/files/current/source/guacamole-server-0.9.9.tar.gz</nowiki>
Unpackage it
Configure, make and install it.
sudo ./configure --with-init-dir=/etc/init.d sudo make sudo make install sudo ldconfig
=== Installing Install Guacamole Client ===
Create a new directory and move to it.
sudo mkdir -p /var/lib/guacamole && cd /var/lib/guacamole/
Download Guacamole Client.
sudo wget <nowiki>http://sourceforge.net/projects/guacamole/files/current/binary/guacamole-0.9.9.war -O guacamole.war</nowiki>
Create a symbolic link of the file for Tomcat.
sudo ln -s /var/lib/guacamole/guacamole.war /var/lib/tomcat/webapps/
==Update Amahi Web App Files = =Create Symbolic links between guacamole in Tomcat and Amahi's web app directory ln -s /var/lib/tomcat/webapps/guacamole/* /var/hda/web-apps/guacamole/html Make sure the owner of all the file is ''apache'' and the group is ''users''. chown -R apache:users /var/hda/web-apps/guacamole == Start Guacamole Server ==Restart Tomcat. ​systemctl restart tomcat Start Guacamole Server. /etc/init.d/guacd start Configure Guacamole Server to start at boot. systemctl enable tomcat chkconfig guacd on = Log In to Guacamole =You can access the web login screen for Guacamole from computers in the network via '''<nowiki>http://****:8080/guacamole</nowiki>''' (Where the ''****'' is the IP address of your Amahi server). The default user name/password is ''guacadmin''/''guacadmin''. You can change your password by editing your own user in the administration screen. = Access Outside the Network =If you want Guacamole's Configuration File web interface to be accessible outside of your LAN you will have to forward a random, unused port (1111, for example) to port 8080 in your router.  Then when you access Guacamole from outside your LAN you will need to add ''/guacamole'' to the end of your url. (<nowiki>http://servername.yourhda.com:1111/guacamole</nowiki>). If you do not add ''/guacamole'' to your url, you will see a blank page since you did not specify which application in Tomcat you wanted to access. The safest and most secure method to access Guacamole is using [https://www.amahi.org/apps/openvpn OpenVPN] and an [[OpenVPN_clients|OpenVPN client]] from a smart phone, tablet, or computer. = Making Preset Connections in Guacamole = In Guacamole, an administrative User can create Connections that will be available to Guacamole users. ==Enabling RDP in Windows Home and Basic Editions ==Create "Remote Desktop Protocol (RDP) is a proprietary protocol developed by Microsoft, which provides a user with a graphical interface to connect to another computer over a network connection." ''1'' If you do not have Windows pro or ultimate versions you have to run a directory patch that activates RDP. RDP Wrapper Library is an option for the configuration fileenabling RDP features. (Use this at your own risk. Please read RDP Wrapper Library literature and follow directions to install. Any problems are to be addressed with RDP Wrapper Library support.) sudo mkdir -p https://github.com/etcstascorp/guacamolerdpwrap/releases If you have Windows Professional or Ultimate, you will need to "Allow Remote Access to Your Computer." (A simple Internet search of this phrase with your Windows version offers many tutorials on this.) == Guacamole RDP Connections to Windows Computers ==After you have login to Guacamole click on your login name in the upper right . In the drop-down menu choose "Settings." Click on the Connections tab on the settings page. Click the "New Connection" button.  Below are some VERY basic settings for an RDP connection in Guacamole:  Name: whatever you want to call it (One can put "RDP" within the name so as to differentiate between connections types in the list) Location: ROOT Protocol: RDP  Maximum number of connections: 2 Maximum number of connections per user:2
Create a file called "guacamole Host Name: The fixed IP address of the computer to which you wished to connect. (For example ''192.168.properties" in that directory sudo vi /etc/guacamole/guacamole1.properties10'')
Press All the <i>i</i> key to begin inserting text into the guacamoleother settings are left either blank or as they were.properties file and include the following contents: # MySQL properties mysql-hostname: localhost mysql-port: 3306 mysql-database: guacdb mysql-username: guacdb mysql-password: guacdb # Additional settings mysql-default-max-connections-per-user: 0 mysql-default-max-group-connections-per-user: 0
Note: Using RDP, only one device at a time can be logged in under a specific user. If you use vi for creating this fileare logging into a Windows computer by the user "Fred" by RDP using Guacamole, press the <i>Esc</i> key to get back any other device signed in command mode as "Fred" will be logged out. The side effect is that, when using RDP, a technician (using Guacamole) and <i>:wq</i> to write client (on their Window computer) cannot see the changes same active desktop simultaneously. As a workaround, one can set up a VNC and quit vian RDP connection for each Windows computer. RDP can be quicker and more fluid so use RDP when working alone and VNC when one needs to see what is currently happening on a Users computer under their account.
Now create a symbolic link of this file for Tomcat sudo ln Special Note: Once settings are in place, users can click on their User Name in the upper right corner and choose "Home" from the drop-s /etc/guacamole/guacamole.properties /usr/share/tomcat/down menu to return to the home screen and use pre-configured connections.guacamole/
=== Starting Guacamole Server =VNC Connections to Computers ==Restart Tomcat"In computing, Virtual Network Computing (VNC) is a graphical desktop sharing system that uses the Remote Frame Buffer protocol (RFB) to remotely control another computer. It transmits the keyboard and mouse events from one computer to another, relaying the graphical screen updates back in the other direction, over a network. sudo ​service tomcat restart​"''2''
Start In order to connect through Guacamole Serverto a client device by VNC, one needs to install VNC client software on the device and configure it to the user's desired specifications.sudo /etc/init In this publication, we will use a Windows based client and UltraVNC software, though this is by no means prescriptive for everyone.d/guacd start
Configure ===Guacamole Server VNC Connections to start at bootWindows Computers =======UltraVNC Settings for Windows====Be sure to install UltraVNC to run as a service on the client system. sudo chkconfig tomcat Once UltraVNC is installed on # chkconfig guacd the Windows computer, right-click onthe system tray icon and choose "Admin Properties" from the menu that comes up. Set the following values:
== Configuring Guacamole Display Number or Ports to use: Select Ports and Amahi ==Create Symbolic links between guacamole in Tomcat set Main and Amahi's webapp directoryHttp so something specific (e.g. 5904, 5804) sudo ln Authentication: Set both the VNC Password and the View-s /var/lib/tomcat/webapps/guacamole/* /var/hda/web-apps/guacamole/htmlOnly Password. (Write them down. You will need it later.)
As root, create Click "OK" and then give permission for the program to make changes to your system.htaccess file in /var/hda/web-apps/guacamole/html vi /var/hda/web-apps/guacamole/html/.htaccess
Press ====Guacamole Settings to Connect to the <i>i</i> key Windows client====After logging in to begin inserting text into Guacamole click on your login name in the upper right .htaccess file and include In the following:drop-down menu choose "Settings." RewriteEngine OnClick on the Connections tab on the settings page. RewriteCond %{SERVER_PORT} 80 RewriteRule (Click the "New Connection" button.*) <nowiki>http://%{HTTP_HOST}:8080/guacamole</nowiki> [R,L]
Again, if you use vi Below are some VERY basic settings for creating this file, press the <i>Esc</i> key to get back a VNC connection in command mode and <i>Guacamole:wq</i> to write the changes and quit vi.
Make sure Name: whatever you want to call it (One can put "VNC" within the owner of all name so as to differentiate between connections types in the file is apache and the group is users.list) Location: ROOT sudo chown -R apacheProtocol:users /var/hda/web-apps/guacamoleVNC
Restart Apache Maximum number of connections: 2 sudo service httpd restartMaximum number of connections per user:2
== Logging In Host Name: The fixed IP address of the computer to which you wished to Guacamole ==connect. (For example ''192.168.1.10'')You can access Port: The Main port number which was set in the web login screen for Guacamole from Windows UltraVNC client software (e.g. 5904). Password: The VNC Password set earlier in the server at <nowiki>http://localhost:8080/guacamole</nowiki>Windows UltraVNC client software.
From All the other computers in the network you can access Guacamole by '''<nowiki>http://****:8080/guacamole</nowiki>''' (Where the "****" is the ip address of your Amahi server)settings are left either blank or as they were.
The default user is "guacadmin"Special Note: Once settings are in place, with users can click on their User Name in the default password of upper right corner and choose "guacadminHome". You can change your password by editing your own user in from the drop-down menu to return to the administration home screenand use pre-configured connections.
With everything configured correctly you should be able to access the web login screen through Amahi at == References ==''1'<nowiki>http' https://guacamoleen.yourhdanamewikipedia.com:8080/guacamoleorg/<wiki/nowiki>'''Remote_Desktop_Protocol
== Port Forwarding ==If you want Guacamole's web interface to be accessible outside of your LAN you will have to forward a random'2'' Richardson, T.; Stafford-Fraser, Q.; Wood, K. R.; Hopper, unused port A. (1111, for example1998) to port 8080 in your router. Then when you access Guacamole from outside your LAN you will need to add "/guacamoleVirtual network computing" to the end of your url(PDF). (serverblahblahIEEE Internet Computing.yourhda2: 33.comdoi:111110.1109/guacamole) If you do not add "/guacamole" to your url, you will see a blank page since you did not specify which application in Tomcat you wanted to access4236.656066.
12,424

edits