Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| allgemein:guacamole_installation [2023/07/17 16:26 CEST] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | allgemein:guacamole_installation [2024/11/29 11:55 CET] (aktuell) – sritter | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | < | ||
| + | <WRAP 900px> | ||
| + | |||
| + | # Apache Guacamole | ||
| + | |||
| + | Um mittels [[allgemein: | ||
| + | |||
| + | Guacamole ist eine Art VNC-Proxy, den Sie entweder lokal kompilieren und installieren oder mittels Docker in Containern betreiben können. Mit einem zusätzlichen bwLehrpool-Plugin können Sie dann über eine einfache Weboberfläche Ihre bwLehrpool-Clients per Webbrowser zugänglich machen. | ||
| + | |||
| + | Da Inbetriebnahme und Updates von Guacamole mit Docker deutlich einfacher und schneller als eine lokale Installation ist, beschränken wir uns hier auf die Containerlösung. | ||
| + | |||
| + | # Docker Setup | ||
| + | |||
| + | Die folgende Anleitung setzt ein gewisses Basiswissen zu Docker voraus, auf das hier nicht näher eingegangen werden kann. Bitte orientieren Sie sich an der offiziellen Dokumentation unter \[\[https:// | ||
| + | |||
| + | Es ist zudem ratsam Docker nicht aus den Paketquellen Ihrer Linux-Distribution zu installieren. Folgen Sie stattdessen auch hier der offiziellen Anleitung: | ||
| + | |||
| + | \[\[https:// | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | # Guacamole Container Setup | ||
| + | |||
| + | Sie finden ein vorgefertigtes Docker-Compose File nebst README und Beispielen zur Konfiguration in unserem Git-Repository (*./ | ||
| + | |||
| + | *Beachten Sie, dass unter Linux Dateien die mit einem ' | ||
| + | |||
| + | Klonen Sie das Repository und kopieren als ersten Schritt die Konfigurationsdatei ' | ||
| + | |||
| + | ``` | ||
| + | git clone https:// | ||
| + | cd bwlp-guacamole-ext/ | ||
| + | cp .env.example .env | ||
| + | ``` | ||
| + | |||
| + | Editieren Sie dort mindestens IP/Hostname der Variablen **SLX_CLIENT_LIST_URL**, | ||
| + | |||
| + | Für den LDAP-Login müssen Sie noch die notwendingen **LDAP_***-Variablen anpassen. Es stehen weitere Konfigurationsoptionen zur Verfügung, falls nötig https:// | ||
| + | |||
| + | **Optional: | ||
| + | |||
| + | Kopieren Sie als nächstes das für Ihre Guacamole Version passende ' | ||
| + | Die aktuell zur Verfügung stehenden Plugins finden Sie unter https:// | ||
| + | |||
| + | Achten Sie darauf, dass immer **nur ein** bwlp-Plugin in diesem Ordner liegt! | ||
| + | |||
| + | Um die Container zu starten führen Sie abschließend einfach folgenden Befehl __in dem Verzeichnis aus__, in dem auch die Datei ' | ||
| + | |||
| + | ``` | ||
| + | docker compose up --build -d | ||
| + | ``` | ||
| + | |||
| + | Um zu prüfen, ob die Container laufen bzw. um Logs zu inspizieren: | ||
| + | ``` | ||
| + | docker ps | ||
| + | docker logs -f < | ||
| + | ``` | ||
| + | |||
| + | ---- | ||
| + | |||
| + | Wenn Sie auf eine andere Guacamole-Version wechseln möchten, editieren Sie einfach wieder die .env-Datei und starten die Container mit folgendem Kommando neu: | ||
| + | ``` | ||
| + | docker compose up --build --force-recreate -d | ||
| + | |||
| + | ``` | ||
| + | |||
| + | |||
| + | ## Reverse Proxy einrichten | ||
| + | |||
| + | Im oben genannten Repository ist auch eine entsprechende Beispielkonfiguration für den Apache Webserver enthalten (*./ | ||
| + | |||
| + | ``` | ||
| + | # Apache installieren | ||
| + | apt install apache2 | ||
| + | |||
| + | # Module aktivieren | ||
| + | a2enmod rewrite | ||
| + | a2enmod proxy_http | ||
| + | a2enmod ssl | ||
| + | a2enmod proxy_wstunnel | ||
| + | |||
| + | # Konfiguration kopieren und aktivieren | ||
| + | cp bwlp-guacamole-ext/ | ||
| + | a2ensite bwlehrpool-remote.conf | ||
| + | ``` | ||
| + | |||
| + | Passen Sie **IP (10.9.8.7)** und **FQDN (bwlehrpool-remote.hs-xyz.de)** auf Ihre Umgebung an. | ||
| + | |||
| + | ``` | ||
| + | # Selbst signiertes Zertifikat erstellen (besser Let's Encrypt oder korrektes Hochschulzertifikat verwenden) | ||
| + | openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout / | ||
| + | |||
| + | # Webserver neustarten | ||
| + | systemctl restart apache2 | ||
| + | ``` | ||
| + | |||
| + | |||
| + | ## Problembehebung | ||
| + | |||
| + | Wenn nach dem Login an der Guacamole-Anmeldemaske keine Raumgruppen oder Clients angezeigt werden, kann evtl. die Liste vom Satellitenserver nicht abgerufen werden. | ||
| + | |||
| + | Prüfen Sie, ob der Wert der Variablen ' | ||
| + | |||
| + | Sie können zur Kontrolle die Metadaten des Satellitenservers direkt innerhalb des Guacamole-Containers abrufen. | ||
| + | |||
| + | ``` | ||
| + | docker exec -it < | ||
| + | curl -k -L -v https://< | ||
| + | ``` | ||
| + | |||
| + | Dabei sollte eine json-Struktur herauskommen, | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | ## Lokale Installation (old-way) | ||
| + | |||
| + | Der Vollständigkeit halber finden Sie hier noch die alte Anleitung zur lokalen Installation. Diese wird derzeit jedoch nicht mehr gepflegt und wir empfehlen Ihnen die Nutzung der Docker Container. | ||
| + | |||
| + | ++++ Anleitung ausklappen | | ||
| + | |||
| + | # Aufsetzen eines Apache Guacamole Proxy | ||
| + | |||
| + | Um remote auf bwLehrpool-Clients zugreifen zu können ([Remotenutzung von bwLehrpool](https:// | ||
| + | |||
| + | In dieser Anleitung wird **Ubuntu 20.04.2 LTS** als Basis-OS genutzt und **Guacamole in der Version 1.5.3** verwendet. | ||
| + | |||
| + | Sie können Guacamole entweder direkt aus den Sources bauen und installieren oder alternativ in Docker-Containern bereitstellen. Zusätzlich wird ein Webserver benötigt (im Beispiel wird Apache verwendet). | ||
| + | |||
| + | ## Installation von Guacamole | ||
| + | |||
| + | - Installation benötigter Abhängigkeiten | ||
| + | ``` | ||
| + | apt install apache2 freerdp2-dev gcc libavcodec-dev libavformat-dev libavutil-dev libcairo2-dev libjpeg-turbo8-dev libossp-uuid-dev libpango1.0-dev libpng-dev libpulse-dev libssh2-1-dev libssl-dev libswscale-dev libtool-bin libvncserver-dev libvorbis-dev libwebp-dev libwebsockets-dev make tomcat9 | ||
| + | ``` | ||
| + | (Anmerkung: Das derzeit aktuelle Debian 11 „Bullseye“ beinhaltet kein libjpeg-turbo8-dev, | ||
| + | |||
| + | - Guacamole 1.5.3 herunterladen | ||
| + | ````bash | ||
| + | VER=1.5.3 | ||
| + | mkdir -p /usr/src && cd /usr/src | ||
| + | wget https:// | ||
| + | wget https:// | ||
| + | wget https:// | ||
| + | ```` | ||
| + | |||
| + | - Sources entpacken und Configure aufrufen | ||
| + | ```` | ||
| + | tar xzf guacamole-server-$VER.tar.gz | ||
| + | cd / | ||
| + | ./configure --with-systemd-dir=/ | ||
| + | ```` | ||
| + | |||
| + | - Die Ausgabe sollte bei korrekter Installation der Abhängigkeiten in etwa so aussehen: | ||
| + | ````bash | ||
| + | # | ||
| + | guacamole-server version 1.5.3 | ||
| + | # | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | pango ............... yes | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | Kubernetes .... yes | ||
| + | RDP ........... yes | ||
| + | SSH ........... yes | ||
| + | Telnet ........ no | ||
| + | VNC ........... yes | ||
| + | | ||
| + | | ||
| + | | ||
| + | guacd ...... yes | ||
| + | guacenc .... yes | ||
| + | guaclog .... yes | ||
| + | | ||
| + | | ||
| + | Init scripts: no | ||
| + | | ||
| + | | ||
| + | Type " | ||
| + | | ||
| + | ```` | ||
| + | | ||
| + | - Kompilieren und Installieren | ||
| + | ```` | ||
| + | make | ||
| + | make install | ||
| + | ldconfig | ||
| + | ```` | ||
| + | |||
| + | - GUACAMOLE_HOME anlegen und setzen | ||
| + | |||
| + | ````bash | ||
| + | # GUACAMOLE_HOME dir anlegen | ||
| + | mkdir / | ||
| + | echo ' | ||
| + | ```` | ||
| + | | ||
| + | - Guacamole Server Service | ||
| + | ````bash | ||
| + | systemctl --now enable guacd | ||
| + | ```` | ||
| + | |||
| + | ### Guacamole-Client installieren und starten | ||
| + | ````bash | ||
| + | cp / | ||
| + | |||
| + | # Verlinke die Konfigurationsdateien | ||
| + | ln -s / | ||
| + | |||
| + | # Service neustarten | ||
| + | systemctl restart tomcat9.service | ||
| + | systemctl restart guacd.service | ||
| + | ```` | ||
| + | |||
| + | ### GUACD konfigurieren | ||
| + | | ||
| + | Unter Umständen lauscht guacd fälschlicherweise ausschließlich auf IPv6, während Tomcat sich mit IPv4 zu verbinden versucht. Sie können das mittels 'ss -plunt' | ||
| + | | ||
| + | ```` | ||
| + | Ergänzen Sie '/ | ||
| + | guacd-hostname: | ||
| + | |||
| + | Erstellen Sie die Datei / | ||
| + | [server] | ||
| + | bind_host = 127.0.0.1 | ||
| + | bind_port = 4822 | ||
| + | |||
| + | Nehmen Sie explizit ' | ||
| + | | ||
| + | # Service neustarten | ||
| + | systemctl restart tomcat9.service | ||
| + | systemctl restart guacd.service | ||
| + | ```` | ||
| + | |||
| + | |||
| + | ### LDAP-Plugin installieren | ||
| + | |||
| + | Authentifizieren via LDAP ermöglichen. | ||
| + | |||
| + | ````bash | ||
| + | cd /usr/src/ | ||
| + | tar xvzf guacamole-auth-ldap-$VER.tar.gz | ||
| + | |||
| + | # extensions Verzeichnis anlegen | ||
| + | mkdir / | ||
| + | cp / | ||
| + | ```` | ||
| + | |||
| + | #### Update guacamole.properties für LDAP | ||
| + | |||
| + | Die Konfigurationsdatei guacamole.properties unter ``/ | ||
| + | **Hinweis: | ||
| + | |||
| + | ````bash | ||
| + | vi / | ||
| + | ```` | ||
| + | |||
| + | ````properties | ||
| + | # LDAP Einstellungen für Active Directory | ||
| + | # IP-Adresse oder DNS-Name eines Domänencontrollers | ||
| + | ldap-hostname: | ||
| + | # Port Nummer von LDAP | ||
| + | ldap-port: | ||
| + | # Verschlüsslungsmethode für LDAP-Verbindung | ||
| + | ldap-encryption-method: | ||
| + | # DN des Benutzer der für die Abfrage genutzt werden | ||
| + | ldap-user-base-dn: | ||
| + | # Set searchbase to search for users in subtree | ||
| + | ldap-search-bind-dn: | ||
| + | # rename attribute name to cn (default: uid) | ||
| + | ldap-username-attribute: | ||
| + | ```` | ||
| + | |||
| + | [Guacamole LDAP - weitere Informationen](https:// | ||
| + | |||
| + | #### LDAP Cert installieren | ||
| + | |||
| + | Falls Ihr LDAP Server verschlüsselt kommuniziert, | ||
| + | |||
| + | ````bash | ||
| + | # Copy your CA to dir / | ||
| + | cp CERT.crt / | ||
| + | |||
| + | # Update CA Store: | ||
| + | update-ca-certificates | ||
| + | |||
| + | # Tomcat neustarten | ||
| + | systemctl restart tomcat9 | ||
| + | ```` | ||
| + | |||
| + | ### BWLP-Plugin installieren | ||
| + | |||
| + | In diesem Schritt verknüpfen Sie Guacamole mit Ihrem Satellitenserver. Sie müssen dazu das aktuelle bwlp-guac-plugin herunterladen. | ||
| + | |||
| + | |||
| + | **Achten Sie darauf, dass immer nur ein bwlp-Plugin verwendet wird! Löschen Sie ältere Pluginversionen, | ||
| + | |||
| + | |||
| + | ````bash | ||
| + | # Das aktuelle bwlp-plugin muss im Guacamole extensions Verzeichnis abgelegt werden | ||
| + | cd / | ||
| + | rm -i bwlp-guac*.jar | ||
| + | wget https:// | ||
| + | |||
| + | # Um das Plugin mit dem bwLehrpool-Satellitenserver zu verbinden, folgende Zeile in '/ | ||
| + | slx-client-list-url: | ||
| + | ```` | ||
| + | |||
| + | |||
| + | Bitte fahren Sie zum Abschluß der Installation mit dem Punkt [„Apache Reverse Proxy einrichten“](# | ||
| + | |||
| + | ++++ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||