Thursday, May 21, 2020

How To Setup Apache Guacamole On Ubuntu 20.04 LTS

Video Tutorial -  https://youtu.be/cBruGm7fbEY

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Apache Guacamole 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.
Offcial Website -https://guacamole.apache.org/
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Os : Ubuntu 20.04 LTS (focal fossa) 64Bit   |  Hostname: www.yourdomain.com   |   IP Address of Server:192.168.1.10
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
lsb_release -cd  ; getconf LONG_BIT ; hostname ; hostname -I

apt install -y gcc g++ libcairo2-dev libjpeg-turbo8-dev libpng-dev libtool-bin libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev freerdp2-dev libpango1.0-dev libssh2-1-dev libvncserver-dev libtelnet-dev libssl-dev libvorbis-dev libwebp-dev build-essential net-tools curl git software-properties-common tomcat9 tomcat9-admin tomcat9-common tomcat9-user

wget https://downloads.apache.org/guacamole/1.1.0/source/guacamole-server-1.1.0.tar.gz
tar xzf guacamole-server-1.1.0.tar.gz ; cd guacamole-server-1.1.0 ;
./configure --with-init-dir=/etc/init.d
make
make install
ldconfig
systemctl enable guacd ; systemctl start guacd ; systemctl status guacd

mkdir /etc/guacamole
wget https://downloads.apache.org/guacamole/1.1.0/binary/guacamole-1.1.0.war -O /etc/guacamole/guacamole.war
ln -s /etc/guacamole/guacamole.war /var/lib/tomcat9/webapps/
systemctl restart tomcat9 ; systemctl restart guacd
mkdir /etc/guacamole/{extensions,lib} ; echo "GUACAMOLE_HOME=/etc/guacamole" >> /etc/default/tomcat9

nano /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

ln -s /etc/guacamole /usr/share/tomcat9/.guacamole
echo -n password | openssl md5

nano /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">
            <protocol>ssh</protocol>
            <param name="hostname">192.168.1.10</param>
            <param name="port">22</param>
              </connection>

        <!-- Second authorized remote connection -->
        <connection name="Windows 10">
            <protocol>rdp</protocol>
            <param name="hostname">192.168.1.100</param>
            <param name="port">3389</param>
            <param name="ignore-cert">true</param>
        </connection>
    </authorize>
</user-mapping>

systemctl restart tomcat9 guacd
http://192.168.1.10:8080/guacamole/.

apt -y install openssh-server
nano /etc/ssh/sshd_config  [ PermitRootLogin no ]
systemctl restart ssh

Example-
User-guacadmin              Password -password

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

10 comments:

  1. I tried 16.04 with 0.9.9. I tried 18.04 with 0.9.9, 1.0, 1.1 and they all had issues (couldn't log in, couldn't display, etc...)
    Your instructions were concise and got everything up and running in about 30 minutes including install of ubuntu. Thank you!

    ReplyDelete
  2. Thank you so much for the video, but i don't know the default password for admin access to http://IP:8080/guacamole/#/ ?

    ReplyDelete
  3. Worked the very first time on Ubuntu 20. I wish I would have found your page 3 days ago. Would of saved me a lot of time. Thank you!!

    ReplyDelete
  4. It worked fine, thank you but question ...
    how can i access it with just http://10.100.100.231:8080/. instead of http://10.100.100.231:8080/guacamole/
    so i can map it to my nginx reverse proxy
    also where would i add this line "proxy_buffering off;" , so its smooth over WAN , as it lags

    ReplyDelete
  5. also the settings are greyed out , any idea? so i can create users and add connections over GUI ( just like how we can do it if it was installed docker )

    ReplyDelete
  6. I get "invalid login" and came across this video trying to fix. These are the same directions I have followed and tried everything in the last 20 forum posts I have found. Something is causing it to not use my username and MD% has'ed password in the file. Any ideas? I have stepped through the setup instructions on 5-6 tutorials now and have followed them to a T and cannot login for the life of me.

    ReplyDelete
  7. What if you do not use the user-map.xml but want to use the database to manage connections?

    ReplyDelete
  8. we use login as ubuntu and what is the password we need to give to connect to that ubuntu server

    ReplyDelete