Apache Guacamole

Apache Guacamole besteht aus zwei Komponenten:

  • Guacamole-Server (guacd): Der Proxy-Dämon, der die Verbindung zu entfernten Clients herstellt. Er verarbeitet alle Remote-Desktop-Protokolle wie VNC, RDP und SSH. Der gewünschte Remote-Dienst wie SSH oder RDP muss auf dem Client separat installiert und konfuguriert werden, damit dieser von guacd angesprochen werden kann.

  • Guacamole-Client (Web-Anwendung): Diese Komponente verarbeitet Benutzerinteraktionen über den Webbrowser. Wird normalerweise auf einem Webserver wie Apache Tomcat bereitgestellt.

In kleineren Umgebungen stellt man einen Guacamole-Server mit beiden Komponenten bereit, in grösseren kann man die beiden Komponenten auf mehrere Maschinen aufteilen und separat skalieren.

Server

Der Apache Guacamole Server-Daemon kommt fixfertig compiliert aus dem EPEL-Repo:

dnf -y install epel-release
dnf -y install guacd

Optionale Client-Komponenten/Connectoren:

dnf -y install libguac-client-kubernetes
dnf -y install libguac-client-rdp
dnf -y install libguac-client-ssh
dnf -y install libguac-client-telnet
dnf -y install libguac-client-vnc

systemctl enable --now guacd.service

Server - Compiliert

Hier für RHEL 8 beschrieben. Quelle: https://guacamole.apache.org/doc/gug/installing-guacamole.html

dnf -y install yum-utils
yum config-manager --set-enabled powertools
dnf -y install epel-release

Dependencies installieren:

# required dependencies
dnf -y install cairo-devel libjpeg-turbo-devel libjpeg-devel libpng-devel libtool libuuid-devel

Anschliessend die optionalen, pro Protokoll benötigten Pakete installieren.

# optional dependencies
dnf -y install freerdp-devel pango-devel libssh2-devel libgcrypt-devel libvncserver-devel libwebsockets-devel openssl-devel libwebp-devel

Für ffmpeg das RPMFusion-Repo aktivieren. Hier auf RHEL 8:

dnf -y install --nogpgcheck https://dl.fedoraproject.org/pub/epel/epel-release-latest-$(rpm -E %rhel).noarch.rpm
dnf -y install --nogpgcheck https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %rhel).noarch.rpm https://mirrors.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-$(rpm -E %rhel).noarch.rpm
# optional dependencies
dnf -y install ffmpeg-devel

Server-Software beziehen:

VER=1.5.5
curl --output guacamole-server.tar.gz https://dlcdn.apache.org/guacamole/$VER/source/guacamole-server-$VER.tar.gz

Checksumme verfifizieren:

curl https://downloads.apache.org/guacamole/$VER/source/guacamole-server-$VER.tar.gz.sha256
sha256sum guacamole-server.tar.gz

Server compilieren und starten:

tar -xzf guacamole-server.tar.gz
cd guacamole-server-$VER/

./configure --with-systemd-dir=/etc/systemd/system
make
make install

restorecon -v /etc/systemd/system/guacd.service
systemctl daemon-reload
systemctl enable --now guacd.service

Server - Konfiguration

TODO

Client

Apache Tomcat installieren. Dann:

VER=1.5.5
curl --output /var/lib/tomcat/webapps/guacamole.war https://apache.org/dyn/closer.lua/guacamole/$VER/binary/guacamole-$VER.war

Built on 2024-07-16