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

Wenn Sie ein Systemadministrator sind und für die Verwaltung von Windows- und Linux-Rechnern verantwortlich sind, benötigen Sie oft eine Remote-Desktop-Client-Software, um diese zu verwalten. Apache Guacamole ist eine kostenlose, quelloffene und webbasierte Remote-Desktop-Anwendung, mit der Sie über einen Webbrowser auf Ihre Desktop-Rechner zugreifen können. Es handelt sich um eine clientlose HTML5-Webanwendung, die Standardprotokolle wie VNC, RDP und SSH unterstützt. Sie brauchen keine Software oder Plugins auf dem Server zu installieren und zu installieren. Mit Guacamole können Sie einfach zwischen mehreren Remote-Desktop-Rechnern mit demselben Browser-Fenster wechseln.

In diesem Tutorial zeigen wir Ihnen, wie Sie den Apache Guacamole Remote Desktop Gateway auf einem Ubuntu 18.04 LTS-Server installieren.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 18.04 läuft.
  • Ein Root-Passwort wird auf Ihrem Server eingerichtet.

Erste Schritte

Bevor Sie beginnen, ist es ratsam, das Paket Ihres Systems auf die neueste Version zu aktualisieren. Sie können sie mit folgendem Befehl aktualisieren:

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

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

Erforderliche Abhängigkeiten installieren

Bevor Sie beginnen, müssen Sie einige Abhängigkeiten in Ihrem System installieren, um Guacamole aus den Quellen zu kompilieren. Sie können alle diese Abhängigkeiten mit dem folgenden Befehl installieren:

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

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

Tomcat-Server installieren

Als Nächstes müssen Sie Tomcat auf Ihrem Server installieren, um Guacamole-Client-Inhalte für Benutzer bereitzustellen, die sich über den Webbrowser mit dem Guacamole-Server verbinden. Sie können ihn mit dem folgenden Befehl installieren:

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

Sobald der Tomcat installiert ist, können Sie mit dem nächsten Schritt fortfahren.

Guacamole-Server installieren

Guacamole besteht aus zwei Komponenten, guacamole-server, der den guacd-Proxy und zugehörige Bibliotheken bereitstellt, und guacamole-client, der den von Ihrem Tomcat-Server zu bedienenden Client bereitstellt. Standardmäßig ist Guacamole-Server nicht im Standard-Repository von Ubuntu 18.04 verfügbar. Sie müssen ihn also aus dem Quellcode erstellen.

Laden Sie zunächst die neueste Version des Guacamole-Quellcodes mit dem folgenden Befehl herunter:

wget http://apachemirror.wuchna.com/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

Ändern Sie dann das Verzeichnis in das extrahierte Verzeichnis und konfigurieren Sie es mit dem folgenden Befehl:

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

Sobald die Konfiguration erfolgreich ist, sollten Sie die folgende Ausgabe erhalten:

   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.

Führen Sie als nächstes den folgenden Befehl aus, um den Guacamole-Server zu kompilieren:

make

Sobald die Kompilierung erfolgreich abgeschlossen ist, können Sie ihn mit folgendem Befehl installieren:

make install

Nach der Installation führen Sie den folgenden Befehl aus, um den Cache Ihres Systems mit den installierten Bibliotheken zu aktualisieren

ldconfig

Aktivieren Sie als nächstes den Guacamole-Dienst beim Booten und starten Sie ihn mit dem folgenden Befehl:

systemctl enable guacd
systemctl start guacd

Sie können den Status des Guacamole-Dienstes auch 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 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

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

Sobald der Download abgeschlossen ist, kopieren Sie sie 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/tomcat8/webapps/

Starten Sie abschließend den Tomcat- und Guacamole-Dienst neu, um die neue Webanwendung bereitzustellen

systemctl restart tomcat8
systemctl restart guacd

Konfigurieren von Guacomole

Nach der Installation von Guacamole müssen Sie Benutzer und Verbindungen konfigurieren, damit Guacamole ordnungsgemäß funktioniert.

Erstellen Sie zunächst eine Guacamole-Hauptkonfigurationsdatei namens 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. Erstellen Sie dann ein Verzeichnis lib und extensions mit dem folgenden Befehl:

mkdir /etc/guacamole/{extensions,lib}

Als nächstes wird die Umgebungsvariable guacamole home directory auf die Standardkonfigurationsdatei tomcat8 gesetzt.

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

Die Standardauthentifizierungsmethode von Guacamole liest alle Benutzer und Verbindungen aus einer einzigen Datei namens user-mapping.xml. Diese Datei definiert den Benutzer, der auf die Web-Benutzeroberfläche von Guacamole zugreifen darf, die Server, zu denen eine Verbindung hergestellt werden soll, und die Verbindungsmethode.

Generieren Sie zunächst md5-Hash für das Passwort mit dem folgenden Befehl:

echo -n yoursecurepassword | openssl md5

Sie sollten die folgende Ausgabe erhalten:

(stdin)= 55b38b03e7587a45fd886977842ff9b8

Hinweis: Merken Sie sich diesen Hash, Sie müssen ihn in der Datei user-mapping.xml angeben.

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

nano /etc/guacamole/user-mapping.xml

Fügen Sie die folgenden Zeilen hinzu:

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

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den Tomcat- und Guacamole-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart tomcat8
systemctl restart guacd

Zugang zur Web-Schnittstelle von Guacamole

An diesem Punkt wird der Guacamole-Server installiert und konfiguriert. Jetzt ist es an der Zeit, über einen Webbrowser darauf zuzugreifen.

Öffnen Sie Ihren Webbrowser und geben Sie die URL http://your-server-ip:8080/guacamole/ ein. Sie werden auf die Anmeldeseite für Apache Guacamole weitergeleitet:

Guacamole-Anmeldung

Geben Sie den Benutzernamen und das Passwort ein, das Sie in der Datei user-mapping.xml angegeben haben, und klicken Sie auf die Schaltfläche Login. Sie sollten das Apache-Guacamole-Standard-Dashboard mit allen Verbindungen sehen:

Neueste Verbindungen

Klicken Sie nun auf den Ubuntu-Server und Sie werden aufgefordert, das Passwort für den Benutzer einzugeben, das Sie in der user-mapping.xml wie unten dargestellt definiert haben:

Shell-Anmeldung

Geben Sie das Passwort Ihres Systembenutzers ein und drücken Sie Enter. Sie melden sich dann wie unten gezeigt am Ubuntu-Server an:

Erfolgreich beim Server angemeldet

Konfigurieren Sie Nginx als Reverse-Proxy für Guacamole

Als nächstes müssen Sie Nginx als Reverse-Proxy konfigurieren, um auf das Guacamole-Dashboard zuzugreifen. Installieren Sie zunächst den Nginx-Webserver mit dem folgenden Befehl:

apt-get install nginx -y

Nach der Installation 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 Nginx-Host mit dem folgenden Befehl:

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

Überprüfen Sie dann Nginx mit folgendem Befehl auf einen Syntaxfehler:

nginx -t

Sie sollten die folgende Ausgabe erhalten:

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

Schließlich starten Sie den Nginx-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart nginx

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

Schlussfolgerung

Herzlichen Glückwunsch! Sie haben das Guacamole Remote Desktop Gateway erfolgreich auf dem Ubuntu 18.04 Server installiert. Sie können nun einen weiteren Remote-Server hinzufügen, den Sie über einen Webbrowser fernverwalten möchten.

Das könnte Dich auch interessieren …