Wie installiert man den webbasierten Guacamole Remote Desktop Client auf Ubuntu 20.04 LTS

Guacamole ist ein kostenloses, quelloffenes und webbasiertes Remote-Desktop-Control-Panel zur Verwaltung von Linux- und Windows-Systemen über den Webbrowser. Es unterstützt Standardprotokolle wie VNC, RDP, SSH und Kubernetes, und Sie brauchen keine Software auf dem Client-Computer zu installieren. Es unterstützt die Zwischenablage, die Dateiübertragung über SFTP und ermöglicht Ihnen die Verwaltung mehrerer Remote-Desktop-Sitzungen.

In diesem Tutorial zeigen wir Ihnen, wie Sie den Guacamole Remote-Desktop-Client auf dem Ubuntu 20.04-Server installieren und konfigurieren.

Voraussetzungen

  • Ein Server mit Ubuntu 20.04 mit mindestens 2 GB RAM.
  • Der Server ist mit einem Root-Passwort konfiguriert.

Erste Schritte

Zuerst müssen Sie Ihr System auf die neueste stabile Version aktualisieren. Sie können dies tun, indem Sie alle Systempakete mit dem folgenden Befehl aktualisieren:

apt-get update -y

Sobald Ihr System aktualisiert ist, starten Sie Ihr System neu, um die Änderungen zu übernehmen.

Erforderliche Abhängigkeiten installieren

Zuerst müssen Sie einige Abhängigkeiten auf Ihrem Server installieren, um das Guacamole aus den Quellen zu kompilieren. Sie können alle diese Abhängigkeiten mit dem folgenden Befehl installieren:

apt-get install make 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 -y

Sobald alle Abhängigkeiten installiert sind, können Sie mit dem nächsten Schritt fortfahren.

Tomcat-Server installieren

Guacamole verwendet Tomcat, um Guacamole-Client-Inhalte für Benutzer bereitzustellen, die sich über den Webbrowser mit dem Guacamole-Server verbinden. Der Tomcat-Server muss also auf Ihrem Server installiert sein. Wenn er nicht installiert ist, können Sie ihn mit dem folgenden Befehl installieren:

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

Nach der Installation des Tomcat-Servers starten Sie den Tomcat-Dienst und aktivieren ihn beim Systemneustart mit folgendem Befehl:

systemctl start tomcat9
systemctl enable tomcat9

Sie können den Status des Tomcat-Dienstes auch mit dem folgenden Befehl überprüfen:

systemctl status tomcat9

Sie sollten die folgende Ausgabe erhalten:

? tomcat9.service - Apache Tomcat 9 Web Application Server
     Loaded: loaded (/lib/systemd/system/tomcat9.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2020-08-25 14:48:50 UTC; 29min ago
       Docs: https://tomcat.apache.org/tomcat-9.0-doc/index.html
    Process: 27982 ExecStartPre=/usr/libexec/tomcat9/tomcat-update-policy.sh (code=exited, status=0/SUCCESS)
   Main PID: 27990 (java)
      Tasks: 38 (limit: 4691)
     Memory: 241.5M
     CGroup: /system.slice/tomcat9.service
             ??27990 /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/var/lib/tomcat9/conf/logging.properties -Djava.util.l>

Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Guacamole installieren

Standardmäßig ist das Guacamole-Paket nicht im Standard-Repository von Ubuntu 20.04 verfügbar. Sie müssen es also aus den Quellen kompilieren.

Laden Sie zunächst die neueste Version des Guacamole-Pakets von der Apache-Website mit dem folgenden Befehl herunter:

wget https://downloads.apache.org/guacamole/1.1.0/source/guacamole-server-1.1.0.tar.gz

Sobald der Download abgeschlossen ist, extrahieren Sie die heruntergeladene Datei mit dem folgenden Befehl:

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

Wechseln Sie dann in das extrahierte Verzeichnis und führen Sie das configure-Skript aus, um zu prüfen, ob eine erforderliche Abhängigkeit fehlt oder nicht:

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

Wenn alles in Ordnung ist, sollten Sie die folgende Ausgabe sehen:

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

   Protocol support:

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

   Services / tools:

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

   FreeRDP plugins: /usr/lib/x86_64-linux-gnu/freerdp2
   Init scripts: /etc/init.d
   Systemd units: no

Type "make" to compile guacamole-server.

Kompilieren und installieren Sie nun den Guacamole-Server, indem Sie den folgenden Befehl ausführen:

make
make install

Führen Sie als nächstes den folgenden Befehl aus, um den Cache Ihres Systems mit den installierten Bibliotheken zu aktualisieren:

ldconfig

Als nächstes aktivieren und starten Sie den Guacamole-Dienst mit folgendem Befehl

systemctl enable guacd
systemctl start guacd

Sie können nun den Status des Guacamole-Dienstes mit dem folgenden Befehl überprüfen:

systemctl status guacd

Sie sollten die folgende Ausgabe erhalten:

? guacd.service - LSB: Guacamole proxy daemon
     Loaded: loaded (/etc/init.d/guacd; generated)
     Active: active (running) since Tue 2020-08-25 12:02:26 UTC; 4s ago
       Docs: man:systemd-sysv-generator(8)
    Process: 27536 ExecStart=/etc/init.d/guacd start (code=exited, status=0/SUCCESS)
      Tasks: 1 (limit: 4691)
     Memory: 10.1M
     CGroup: /system.slice/guacd.service
             ??27555 /usr/local/sbin/guacd -p /var/run/guacd.pid

Aug 25 12:02:26 ubuntu2004 systemd[1]: Starting LSB: Guacamole proxy daemon...
Aug 25 12:02:26 ubuntu2004 guacd[27551]: Guacamole proxy daemon (guacd) version 1.1.0 started
Aug 25 12:02:26 ubuntu2004 guacd[27536]: Starting guacd:
Aug 25 12:02:26 ubuntu2004 guacd[27551]: Starting guacd:
Aug 25 12:02:26 ubuntu2004 guacd[27551]: uacd[27551]: INFO:        Guacamole proxy daemon (guacd) versio
Aug 25 12:02:26 ubuntu2004 systemd[1]: Started LSB: Guacamole proxy daemon.
Aug 25 12:02:26 ubuntu2004 guacd[27555]: Listening on host 127.0.0.1, port 4822
Aug 25 12:02:26 ubuntu2004 guacd[27536]: uacd[275

Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Guacamole-Client installieren

Als nächstes müssen Sie den Guacamole-Client auf Ihrem Server installieren. Der Guacamole-Client ist in Java geschrieben und ist plattformübergreifend. Dies wird die endgültige HTML5-Anwendung bilden, die Ihnen präsentiert wird.

Laden Sie zunächst die Guacamole-Binärdatei mit dem folgenden Befehl herunter:

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

Nachdem Sie die Guacamole-Binärdatei heruntergeladen haben, kopieren Sie sie mit folgendem Befehl in das Verzeichnis /etc/guacamole:

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

Erstellen Sie als nächstes einen symbolischen Link des Guacamole-Clients zum Tomcat-Webapps-Verzeichnis mit folgendem Befehl: /etc/guacamole

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

Starten Sie schließlich den Tomcat- und Guacamole-Dienst neu, um die neue Webanwendung bereitzustellen:

systemctl restart tomcat9
systemctl restart guacd

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Konfigurieren von Guacomole

Als nächstes müssen Sie Benutzer und Verbindungen konfigurieren, damit Guacamole ordnungsgemäß funktioniert.

Erstellen Sie zunächst eine Guacamole-Hauptkonfigurationsdatei mit dem Namen guacamole.properties.

nano /etc/guacamole/guacamole.properties

Fügen Sie die folgenden Zeilen hinzu:

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

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Als nächstes müssen Sie Verzeichnisse für Bibliothek und Erweiterung erstellen. Sie können sie mit dem folgenden Befehl erstellen:

mkdir /etc/guacamole/{extensions,lib}

Als Nächstes setzen Sie die Umgebungsvariable guacamole home directory und fügen sie der Konfigurationsdatei /etc/default/tomcat9 hinzu.

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

Als nächstes müssen Sie eine Datei namens user-mapping.xml erstellen, um den Benutzer zu definieren, der auf die Guacamole-Web-Benutzeroberfläche zugreifen darf.

Bevor Sie sie erstellen, erzeugen Sie mit dem folgenden Befehl einen md5-Hash für das Passwort:

echo -n yoursecurepassword | openssl md5

Sie sollten die folgende Ausgabe sehen:

(stdin)= 55b38b03e7587a45fd886977842ff9b8

Hinweis: Merken Sie sich das obige md5-Passwort. Sie müssen dieses in der Datei user-mapping.xml definieren.

Erstellen Sie dann eine neue user-mapping.xml mit dem folgenden Befehl:

nano /etc/guacamole/user-mapping.xml
<user-mapping>
    <authorize 
            username="admin"
            password="55b38b03e7587a45fd886977842ff9b8"
            encoding="md5">

        <connection name="Ubuntu20.04-Server">
            <protocol>ssh</protocol>
            <param name="hostname">192.168.10.50</param>
            <param name="port">22</param>
            <param name="username">root</param>
        </connection>
        <connection name="Windows Server">
            <protocol>rdp</protocol>
            <param name="hostname">192.168.10.51</param>
            <param name="port">3389</param>
        </connection>
    </authorize>
</user-mapping>

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Wo:

  • 192.168.10.50 die IP-Adresse des entfernten Ubuntu-Servers ist.
  • 192.168.10.51 ist die IP-Adresse des entfernten Windows-Servers.

Starten Sie als Nächstes den Tomcat- und Guacamole-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart tomcat9
systemctl restart guacd

Zu diesem Zeitpunkt sind der Guacamole-Server und -Client installiert und konfiguriert.

Zugriff auf die Guacamole-Webschnittstelle

Öffnen Sie nun Ihren Webbrowser und greifen Sie über die URL http://your-server-ip:8080/guacamole auf die Guacamole-Webschnittstelle zu. Sie werden auf die Anmeldeseite von Guacamole weitergeleitet:

Guacamole-Anmeldung

Geben Sie den Benutzernamen und das Passwort ein, das Sie in der Datei user-mapping.xml definiert haben, und klicken Sie auf die Schaltfläche Login. Sie sollten das Guacamole-Dashboard auf der folgenden Seite sehen:

Guacamole-Armaturenbrett

Klicken Sie nun auf den Ubuntu20.04-Server, um den Remote-Server über das SSH-Protokoll zu verbinden. Sie sollten den Anmeldebildschirm des Ubuntu-Servers sehen, wie unten dargestellt:

Guacamole Fernanmeldung

Geben Sie das Root-Passwort Ihres Ubuntu-Servers ein und drücken Sie Enter. Sie werden auf dem Ubuntu-Server wie unten gezeigt eingeloggt:

Shell-Anmeldung über Guacamole

Konfigurieren Sie Nginx für Guacamole

Es wird empfohlen, Nginx als Reverse-Proxy zu konfigurieren, um über den Port 80 auf Guacamole zuzugreifen.

Installieren Sie zunächst den Nginx-Webserver mit dem folgenden Befehl:

apt-get install nginx -y

Nach der Installation von Nginx erstellen Sie eine neue Nginx-Konfigurationsdatei für den virtuellen Host:

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

Fügen Sie die folgenden Zeilen hinzu:

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/ /;
        }

}

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Aktivieren Sie dann den virtuellen Host von Nginx mit dem folgenden Befehl:

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

Starten Sie anschließend den Nginx-Dienst neu, um die Konfigurationsänderungen zu übernehmen:

systemctl restart nginx

Jetzt können Sie über die URL http://your-server-ip auf Ihr Guacamole zugreifen.

Schlussfolgerung

Herzlichen Glückwunsch! Sie haben den Guacamole Remote-Desktop-Client erfolgreich auf dem Ubuntu 20.04-Server installiert und konfiguriert. Sie können nun weitere RDP- oder VNC-Verbindungen zu Ihrem Guacamole hinzufügen und damit beginnen, diese über die webbasierte Schnittstelle zu verwalten.

Das könnte dich auch interessieren …