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:
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:
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:
Geben Sie das Passwort Ihres Systembenutzers ein und drücken Sie Enter. Sie melden sich dann wie unten gezeigt am Ubuntu-Server an:
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.