de web-gebaseerde Guacamole Remote Desktop Client te installeren op Ubuntu 18.04 LTS

Als je systeembeheerder bent en verantwoordelijk voor het beheer van Windows en Linux machines, dan heb je vaak remote desktop client software nodig om ze te beheren. Apache Guacamole is een gratis, open-source en web-gebaseerde remote desktop toepassing waarmee je via een web browser toegang kunt krijgen tot je desktop machines. Het is een clientloze HTML5 webapplicatie die standaard protocollen als VNC, RDP, en SSH ondersteunt. Je hoeft geen en client software of plugins op de server te installeren. Met Guacamole kun je gemakkelijk tussen meerdere remote desktop machines wisselen met hetzelfde browser venster.

In deze handleiding laten we zien hoe je Apache Guacamole remote desktop gateway installeert op een Ubuntu 18.04 LTS server.

Vereisten

  • Een server met Ubuntu 18.04.
  • Een root wachtwoord is ingesteld op je server.

Aan de slag

Alvorens te beginnen is het een goed idee om de pakketten van je systeem bij te werken tot de nieuwste versie. Je kunt ze bijwerken met het volgende commando:

apt-get update -y
apt-get upgrade -y

Als alle pakketten zijn bijgewerkt, herstart je je systeem om de veranderingen toe te passen.

Installeer de vereiste afhankelijkheden

Alvorens te beginnen moet je enkele afhankelijkheden in je systeem installeren om Guacamole vanaf de broncode te kunnen compileren. Je kunt ze allemaal installeren met het volgende commando:

apt-get install gcc-6 g++-6 libossp-uuid-dev libavcodec-dev libpango1.0-dev libssh2-1-dev libcairo2-dev libjpeg-turbo8-dev libpng-dev libavutil-dev libswscale-dev libfreerdp-dev libvncserver-dev libssl-dev libvorbis-dev libwebp-dev -y

Als alle pakketten geïnstalleerd zijn, kun je verder gaan met de volgende stap.

Installeer Tomcat Server

Vervolgens moet je Tomcat in je server installeren om guacamole client inhoud te serveren aan gebruikers die via de web browser verbinding maken met de guacamole server. Je kunt het installeren met het volgende commando:

apt-get install tomcat8 tomcat8-admin tomcat8-common tomcat8-user -y

Als de Tomcat geïnstalleerd is, kun je verder gaan met de volgende stap.

Installeer Guacamole Server

Guacamole is gescheiden in twee componenten, guacamole-server die de guacd proxy en verwante bibliotheken levert, en guacamole-client die de client levert die door je Tomcat server geserveerd moet worden. Guacamole-server is standaard niet beschikbaar in de Ubuntu 18.04 standaard repository. Je zult het dus vanaf de broncode moeten bouwen.

Download eerst de nieuwste versie van Guacamole broncode met het volgende commando:

wget http://apachemirror.wuchna.com/guacamole/1.1.0/source/guacamole-server-1.1.0.tar.gz

Zodra de download voltooid is, pak je het gedownloade bestand uit met het volgende commando:

tar -xvzf guacamole-server-1.1.0.tar.gz

Verander vervolgens de directory in de uitgepakte directory en configureer het met het volgende commando:

cd guacamole-server-1.1.0
./configure --with-init-dir=/etc/init.d

Als de configuratie geslaagd is, zou je de volgende uitvoer moeten krijgen:

   Library status:

     freerdp2 ............ no
     pango ............... yes
     libavcodec .......... yes
     libavutil ........... yes
     libssh2 ............. yes
     libssl .............. yes
     libswscale .......... yes
     libtelnet ........... no
     libVNCServer ........ yes
     libvorbis ........... yes
     libpulse ............ no
     libwebsockets ....... no
     libwebp ............. yes
     wsock32 ............. no

   Protocol support:

      Kubernetes .... no
      RDP ........... no
      SSH ........... yes
      Telnet ........ no
      VNC ........... yes

   Services / tools:

      guacd ...... yes
      guacenc .... yes
      guaclog .... yes

   FreeRDP plugins: no
   Init scripts: /etc/init.d
   Systemd units: no

Type "make" to compile guacamole-server.

Voer vervolgens het volgende commando uit om guacamole-server te compileren:

make

Zodra de compilatie met succes voltooid is, kun je het installeren met het volgende commando:

make install

Eenmaal geïnstalleerd, voer dan het volgende commando uit om je systeem’s cache van geïnstalleerde bibliotheken bij te werken

ldconfig

Schakel vervolgens de Guacamole service in om bij het opstarten te starten en start hem met het volgende commando:

systemctl enable guacd
systemctl start guacd

Je kunt ook de status van de Guacamole dienst controleren met het volgende commando:

systemctl status guacd

Je zou de volgende uitvoer moeten krijgen:

? guacd.service - LSB: Guacamole proxy daemon
   Loaded: loaded (/etc/init.d/guacd; generated)
   Active: active (running) since Sat 2020-04-11 14:48:03 UTC; 7s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 28833 ExecStart=/etc/init.d/guacd start (code=exited, status=0/SUCCESS)
    Tasks: 1 (limit: 2359)
   CGroup: /system.slice/guacd.service
           ??28847 /usr/local/sbin/guacd -p /var/run/guacd.pid

Apr 11 14:48:03 ubuntu1804 systemd[1]: Starting LSB: Guacamole proxy daemon...
Apr 11 14:48:03 ubuntu1804 guacd[28834]: Guacamole proxy daemon (guacd) version 1.1.0 started
Apr 11 14:48:03 ubuntu1804 guacd[28833]: Starting guacd: guacd[28834]: INFO:        Guacamole proxy daemon (guacd) version 1.1.0 started
Apr 11 14:48:03 ubuntu1804 guacd[28833]: SUCCESS
Apr 11 14:48:03 ubuntu1804 systemd[1]: Started LSB: Guacamole proxy daemon.
Apr 11 14:48:03 ubuntu1804 guacd[28847]: Listening on host 127.0.0.1, port 4822

Installeer Guacamole Client

Vervolgens moet je Guacamole client op je server installeren. Guacamole client is geschreven in Java en is cross-platform. Dit zal de uiteindelijke HTML5 toepassing vormen die je gepresenteerd krijgt.

Download eerst het Guacamole binaire bestand met het volgende commando:

wget https://mirrors.estointernet.in/apache/guacamole/1.1.0/binary/guacamole-1.1.0.war

Als de download voltooid is, kopieer je het naar de /etc/guacamole directory:

mkdir /etc/guacamole
mv guacamole-1.1.0.war /etc/guacamole/guacamole.war

Maak vervolgens een symbolische link van de guacamole client naar de Tomcat webapps directory met het volgende commando:

ln -s /etc/guacamole/guacamole.war /var/lib/tomcat8/webapps/

Herstart tenslotte de Tomcat en Guacamole dienst om de nieuwe webapplicatie in te zetten

systemctl restart tomcat8
systemctl restart guacd

Guacomole configureren

Na de installatie van Guacamole moet je gebruikers en verbindingen instellen om Guacamole goed te laten werken.

Maak eerst een Guacamole hoofdconfiguratiebestand met de naam guacamole.properties.

nano /etc/guacamole/guacamole.properties

Voeg de volgende regels toe:

guacd-hostname: localhost
guacd-port:    4822
user-mapping:    /etc/guacamole/user-mapping.xml

Sla het bestand op en sluit het. Maak dan een lib en extensies map aan met het volgende commando:

mkdir /etc/guacamole/{extensions,lib}

Zet vervolgens de omgevingsvariabele guacamole home directory in tomcat8 standaard configuratiebestand.

echo "GUACAMOLE_HOME=/etc/guacamole" >> /etc/default/tomcat8

Guacamole’s standaard authenticatie methode leest alle gebruikers en verbindingen uit een enkel bestand dat user-mapping.xml heet. Dit bestand bepaalt de gebruiker die toegang mag krijgen tot Guacamole web UI, de servers waarmee verbinding gemaakt wordt en de verbindingsmethode.

Genereer eerst md5 hash voor het wachtwoord met het volgende commando:

echo -n yoursecurepassword | openssl md5

Je zou de volgende uitvoer moeten krijgen:

(stdin)= 55b38b03e7587a45fd886977842ff9b8

Opmerking: Onthoud deze hash, je zult hem moeten specificeren in het user-mapping.xml bestand.

Maak vervolgens een nieuw user-mapping.xml met het volgende commando:

nano /etc/guacamole/user-mapping.xml

Voeg de volgende regels toe:

<user-mapping>
    <authorize 
            username="admin"
            password="55b38b03e7587a45fd886977842ff9b8"
            encoding="md5">

        <connection name="Ubuntu-Server">
            <protocol>ssh</protocol>
            <param name="hostname">192.168.0.150</param>
            <param name="port">22<param>
            <param name="username">root</param>
        </connection>
        <connection name="Windows Server">
            <protocol>rdp</protocol>
            <param name="hostname">192.168.0.100</param>
            <param name="port">3389</param>
        </connection>
    </authorize>
</user-mapping>

Sla het bestand op en sluit het als je klaar bent. Herstart dan Tomcat en de Guacamole dienst om de veranderingen toe te passen:

systemctl restart tomcat8
systemctl restart guacd

Toegang tot de Guacamole Web Interface

Op dit punt is de Guacamole server geïnstalleerd en geconfigureerd. Nu is het tijd om hem via een web browser te benaderen.

Open je web browser en typ de URL http://your-server-ip:8080/guacamole/. Je wordt doorgestuurd naar de Apache Guacamole login pagina:

Guacamole Inloggen

Geef de gebruikersnaam en het wachtwoord op die je in het user-mapping.xml bestand hebt opgegeven en klik op de knop Login. Je zou nu het Apache Guacamole standaard dashboard moeten zien met alle verbindingen:

Recente verbindingen

Klik nu op de Ubuntu-Server en je wordt gevraagd het wachtwoord in te voeren voor de gebruiker die je in de user-mapping.xml hebt opgegeven, zoals hieronder:

Shell Inloggen

Geef je systeemgebruikers wachtwoord en druk op Enter. Je logt nu in op de Ubuntu-Server zoals hieronder getoond:

Met succes ingelogd op server

Configureer Nginx als een Reverse Proxy voor Guacamole

Vervolgens moet je Nginx instellen als een omgekeerde proxy om toegang te krijgen tot het Guacamole dashboard. Installeer eerst de Nginx webserver met het volgende commando:

apt-get install nginx -y

Maak na installatie een nieuw Nginx virtual host configuratiebestand:

nano /etc/nginx/sites-available/guacamole.conf

Voeg de volgende regels toe:

server {
        listen 80;
        server_name your-server-ip;
        access_log  /var/log/nginx/guac_access.log;
        error_log  /var/log/nginx/guac_error.log;

        location / {
                    proxy_pass http://your-server-ip:8080/guacamole/;
                    proxy_buffering off;
                    proxy_http_version 1.1;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header Upgrade $http_upgrade;
                    proxy_set_header Connection $http_connection;
                    proxy_cookie_path /guacamole/ /;
        }

}

Sla het bestand op en sluit het als je klaar bent. Schakel dan de Nginx virtuele host in met het volgende commando:

ln -s /etc/nginx/sites-available/guacamole.conf /etc/nginx/sites-enabled/

Controleer vervolgens de Nginx op eventuele syntaxfouten met het volgende commando:

nginx -t

Je zou de volgende uitvoer moeten krijgen:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Herstart tenslotte de Nginx dienst om de veranderingen toe te passen:

systemctl restart nginx

Nu kun je de Guacamole webinterface benaderen met de URL http://your-server-ip.

Conclusie

Gefeliciteerd! Je hebt Guacamole remote desktop gateway met succes geïnstalleerd op Ubuntu 18.04 server. Je kunt nu een andere remote server toevoegen die je op afstand via een web browser wilt beheren.