Installieren und Verwenden von Guacamole Remote Desktop auf CentOS 8
Apache Guacamole ist eine kostenlose, quelloffene, webbasierte und clientlose Remote-Desktop-Anwendung, die Standardprotokolle wie VNC, RDP und SSH unterstützt. Es ermöglicht Ihnen den Zugriff auf Linux- und Windows-PCs von einem Webbrowser aus über RDP, SSH oder VNC. Es ist clientlos, so dass Sie keine Plugins oder Client-Software installieren müssen. Es besteht aus zwei Komponenten Guacamole Server und Guacamole Client. Guacamole Server stellt serverseitige und native Komponenten bereit, die für die Verbindung mit dem Remote-PC erforderlich sind, während Guacamole Client eine HTML 5-Webanwendung ist, die für die Verbindung mit dem Remote-PC verwendet wird.
In diesem Tutorial zeigen wir Ihnen, wie Sie den Guacamole-Server auf CentOS 8 installieren.
Voraussetzungen
- Ein Server, auf dem CentOS 8 läuft.
- Der Server ist mit einem Root-Passwort konfiguriert.
Erste Schritte
Zunächst müssen Sie einige erforderliche Pakete auf Ihrem Server installieren. Sie können alle Pakete mit dem folgenden Befehl installieren:
dnf install -y unzip curl make cmake wget gcc zlib-devel compat-openssl10
Nachdem Sie alle erforderlichen Pakete installiert haben, müssen Sie die EPEL-, PowerTools- und Devel-Repos in Ihrem System aktivieren. Sie können sie mit dem folgenden Befehl aktivieren:
dnf install epel-release -y dnf config-manager --set-enabled PowerTools dnf config-manager --enable Devel
Als Nächstes installieren Sie andere erforderliche Tools mit dem folgenden Befehl:
dnf install cairo-devel libuv-devel libjpeg-turbo-devel libjpeg-devel libpng-devel libtool uuid-devel freerdp-devel pango-devel libvncserver-devel pulseaudio-libs-devel openssl-devel libvorbis-devel libwebp-devel libssh2-devel libtheora opus lame-libs
Deaktivieren Sie als Nächstes das Devel-Repo mit dem folgenden Befehl:
dnf config-manager --disable Devel
Als nächstes müssen Sie die telnet-Bibliothek in Ihrem System kompilieren.
Laden Sie sie zunächst mit dem folgenden Befehl herunter:
curl -s https://api.github.com/repos/seanmiddleditch/libtelnet/releases/latest | grep browser_download_url | cut -d '"' -f 4 | wget -qi -
Nach dem Herunterladen entpacken Sie die heruntergeladene Datei mit dem folgenden Befehl:
tar -xf libtelnet-*.tar.gz
Wechseln Sie als nächstes in das extrahierte Verzeichnis und konfigurieren Sie es mit dem folgenden Befehl:
cd libtelnet-*/ ./configure
Als nächstes installieren Sie es mit dem folgenden Befehl auf Ihrem System:
make make install
Sobald es installiert ist, können Sie mit dem nächsten Schritt fortfahren.
Java installieren
Guacamole ist eine Java-basierte Software, daher muss Java auf Ihrem Server installiert sein. Wenn es nicht installiert ist, können Sie es mit dem folgenden Befehl installieren:
dnf install java-11-openjdk-devel
Sobald es installiert ist, überprüfen Sie die Java-Version mit dem folgenden Befehl:
java -version
Sie sollten die folgende Ausgabe erhalten:
openjdk version "11.0.9.1" 2020-11-04 OpenJDK Runtime Environment (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04) OpenJDK 64-Bit Server VM (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)
Tomcat installieren
Apache Tomcat wird verwendet, um die Inhalte des Guacamole-Clients bereitzustellen. Daher müssen Sie Tomcat auf Ihrem Server installieren.
Erstellen Sie zunächst mit dem folgenden Befehl einen separaten Benutzer und eine Gruppe für Tomcat:
groupadd --system tomcat useradd -d /usr/share/tomcat -r -s /bin/false -g tomcat tomcat
Als nächstes laden Sie die neueste Version von Tomcat mit dem folgenden Befehl herunter:
wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.43/bin/apache-tomcat-9.0.43.tar.gz
Sobald der Download abgeschlossen ist, extrahieren Sie die heruntergeladene Datei mit dem folgenden Befehl:
tar -xvf apache-tomcat-9.0.43.tar.gz
Verschieben Sie als nächstes den Tomcat in das Verzeichnis /usr/share
mv apache-tomcat-9.0.43 /usr/share/tomcat
Legen Sie als Nächstes die richtigen Eigentumsrechte für das Tomcat-Verzeichnis fest:
chown -R tomcat:tomcat /usr/share/tomcat/
Wenn Sie damit fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Erstellen einer Systemd-Dienstdatei für Tomcat
Als nächstes müssen Sie eine systemd-Dienstdatei für Tomcat erstellen. Sie können sie mit dem folgenden Befehl erstellen:
nano /etc/systemd/system/tomcat.service
Fügen Sie die folgenden Zeilen ein:
[Unit] Description=Tomcat Server After=syslog.target network.target [Service] Type=forking User=tomcat Group=tomcat Environment=JAVA_HOME=/usr/lib/jvm/jre Environment='JAVA_OPTS=-Djava.awt.headless=true' Environment=CATALINA_HOME=/usr/share/tomcat Environment=CATALINA_BASE=/usr/share/tomcat Environment=CATALINA_PID=/usr/share/tomcat/temp/tomcat.pid Environment='CATALINA_OPTS=-Xms512M -Xmx1024M' ExecStart=/usr/share/tomcat/bin/catalina.sh start ExecStop=/usr/share/tomcat/bin/catalina.sh stop [Install] WantedBy=multi-user.target
Speichern und schließen Sie die Datei und laden Sie dann den systemd-Daemon mit dem folgenden Befehl neu:
systemctl daemon-reload
Starten Sie anschließend den Tomcat-Dienst und aktivieren Sie, dass er beim Neustart des Systems gestartet wird:
systemctl start tomcat systemctl enable tomcat
Sie können den Tomcat-Status auch mit dem folgenden Befehl überprüfen:
systemctl status tomcat
Sie sollten die folgende Ausgabe erhalten:
? tomcat.service - Tomcat Server Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2021-02-16 09:34:45 EST; 6s ago Process: 26546 ExecStart=/usr/share/tomcat/bin/catalina.sh start (code=exited, status=0/SUCCESS) Main PID: 26551 (java) Tasks: 35 (limit: 12523) Memory: 89.7M CGroup: /system.slice/tomcat.service ??26551 /usr/lib/jvm/jre/bin/java -Djava.util.logging.config.file=/usr/share/tomcat/conf/logging.properties -Djava.util.logging.man> Feb 16 09:34:45 centos8 systemd[1]: Starting Tomcat Server... Feb 16 09:34:45 centos8 systemd[1]: Started Tomcat Server.
Apache Guacamole installieren
Laden Sie zunächst die neueste Version von Guacamole mit dem folgenden Befehl herunter:
wget https://downloads.apache.org/guacamole/1.3.0/source/guacamole-server-1.3.0.tar.gz
Sobald der Download abgeschlossen ist, extrahieren Sie die heruntergeladene Datei mit dem folgenden Befehl:
tar -xvzf guacamole-server-1.3.0.tar.gz
Wechseln Sie anschließend in das entpackte Verzeichnis und konfigurieren Sie es mit dem folgenden Befehl:
cd guacamole-server-1.3.0 ./configure --with-init-dir=/etc/init.d
Installieren Sie es anschließend mit dem folgenden Befehl auf Ihrem System:
make make install ldconfig
Laden Sie anschließend den systemd-Daemon mit dem folgenden Befehl neu:
systemctl daemon-reload
Als Nächstes starten Sie den Guacamole-Dienst und aktivieren ihn so, dass er beim Neustart des Systems gestartet wird:
systemctl start guacd systemctl enable guacd
Sie können den Status von Guacamole mit dem folgenden Befehl überprüfen:
systemctl status guacd
Sie sollten die folgende Ausgabe erhalten:
? guacd.service - LSB: Guacamole proxy daemon Loaded: loaded (/etc/rc.d/init.d/guacd; generated) Active: active (running) since Tue 2021-02-16 09:37:15 EST; 4s ago Docs: man:systemd-sysv-generator(8) Process: 35723 ExecStart=/etc/rc.d/init.d/guacd start (code=exited, status=0/SUCCESS) Tasks: 1 (limit: 12523) Memory: 12.1M CGroup: /system.slice/guacd.service ??35726 /usr/local/sbin/guacd -p /var/run/guacd.pid Feb 16 09:37:15 centos8 systemd[1]: Starting LSB: Guacamole proxy daemon... Feb 16 09:37:15 centos8 guacd[35723]: Starting guacd: guacd[35724]: INFO: Guacamole proxy daemon (guacd) version 1.3.0 started Feb 16 09:37:15 centos8 guacd[35723]: SUCCESS Feb 16 09:37:15 centos8 guacd[35726]: Listening on host 127.0.0.1, port 4822 Feb 16 09:37:15 centos8 systemd[1]: Started LSB: Guacamole proxy daemon.
Guacamole-Client installieren
Als nächstes erstellen Sie ein Verzeichnis für Guacamole und laden die Guacamole-Client-Datei mit dem folgenden Befehl herunter:
mkdir /etc/guacamole wget https://downloads.apache.org/guacamole/1.3.0/binary/guacamole-1.3.0.war
Nach dem Download verschieben Sie die heruntergeladene Datei in das Verzeichnis /etc/guacamole:
mv guacamole-1.3.0.war /etc/guacamole/guacamole.war
Als nächstes erstellen Sie einen symbolischen Link der Datei guacamole.war in das Verzeichnis /usr/share/tomcat:
ln -s /etc/guacamole/guacamole.war /usr/share/tomcat/webapps/
Als nächstes setzen Sie das Guacamole-Home-Verzeichnis mit folgendem Befehl:
echo "GUACAMOLE_HOME=/etc/guacamole" | tee -a /etc/default/tomcat
Als nächstes erstellen Sie eine Guacamole-Konfigurationsdatei mit dem folgenden Befehl:
nano /etc/guacamole/guacamole.properties
Fügen Sie die folgenden Zeilen ein:
guacd-hostname: localhost guacd-port: 4822 user-mapping: /etc/guacamole/user-mapping.xml auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
Speichern und schließen Sie die Datei und erstellen Sie einen symbolischen Link auf das Verzeichnis /etc/guacamole:
ln -s /etc/guacamole /usr/share/tomcat/.guacamole
Guacamole konfigurieren
Als nächstes müssen Sie eine Guacamole-Benutzerzuordnungsdatei erstellen, um den Remote-Server zu definieren, mit dem Sie sich von Guacamole aus verbinden möchten.
Generieren Sie zunächst ein geheimes Passwort mit dem folgenden Befehl:
echo -n your-password | openssl md5
Sie sollten die folgende Ausgabe sehen:
(stdin)= 0f6e4a1df0cf5ee97c2066953bed21b2
Als nächstes erstellen Sie eine user-mapping.xml-Datei mit dem folgenden Befehl:
nano /etc/guacamole/user-mapping.xml
Fügen Sie die Details Ihres entfernten Windows- und Linux-Servers wie unten gezeigt hinzu:
<user-mapping> <authorize username="admin" password="0f6e4a1df0cf5ee97c2066953bed21b2" encoding="md5"> <!-- First authorized Remote connection --> <connection name="CentOS 8"> <protocol>ssh</protocol> <param name="hostname">69.87.218.51</param> <param name="port">22</param> </connection> <connection name="Windows Server"> <protocol>rdp</protocol> <param name="hostname">15.185.162.149</param> <param name="port">3389</param> <param name="username">administrator</param> </connection> </authorize> </user-mapping>
Speichern und schließen Sie die Datei und starten Sie dann sowohl Guacamole als auch den Tomcat-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart tomcat guacd
Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Firewall konfigurieren
Als nächstes müssen Sie die Ports 4822 und 8080 durch eine Firewall zulassen. Sie können sie mit dem folgenden Befehl zulassen:
firewall-cmd --permanent --add-port=4822/tcp firewall-cmd --permanent --add-port=8080/tcp
Laden Sie anschließend die Firewalld neu, um die Änderungen zu übernehmen:
firewall-cmd --reload
Zugriff auf Guacamole Web UI
Öffnen Sie nun Ihren Webbrowser und rufen Sie die Guacamole-Web-Oberfläche über die URL http://your-server-ip:8080/guacamole auf. Sie sollten den folgenden Bildschirm sehen:
Geben Sie Ihren Admin-Benutzernamen und Ihr Passwort ein und klicken Sie auf die Schaltfläche Login. Sie sollten das Guacamole-Dashboard im folgenden Bildschirm sehen:
Auf dem obigen Bildschirm können Sie sowohl Windows- als auch Linux-Server sehen. Sie können auf klicken, um die Remote-Server zu verbinden und zu verwalten.
Fazit
Herzlichen Glückwunsch! Sie haben den Guacamole-Server auf CentOS 8 erfolgreich installiert und konfiguriert. Sie können nun weitere Remote-Server zu Ihrem Guacamole-Server hinzufügen und diese über einen Webbrowser verwalten.