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:

Guacamole Anmeldung

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:

Guacamole Remote-Desktop

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.

Das könnte dich auch interessieren …