Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
allgemein:guacamole_installation_test [2023/07/07 12:31 CEST] sritterallgemein:guacamole_installation [2023/11/03 13:03 CET] sritter
Zeile 1: Zeile 1:
 <!DOCTYPE markdown> <!DOCTYPE markdown>
-<WRAP 800px>+<WRAP 900px>
  
 # Apache Guacamole # Apache Guacamole
  
-Guacamole ist eine Art VNC-Proxy, den Sie entweder lokal kompilieren und installieren müssen 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 (siehe auch [[allgemein:remotenutzung_von_bwlehrpool|Remotezugriff auf bwLehrpool-Clients]]).+Um mittels [[allgemein:remotenutzung_von_bwlehrpool|Remotezugriff auf bwLehrpool-Clients]] zugreifen zu können, benötigen Sie einen \[\[https://guacamole.apache.org/|Apache Guacamole-Server\]\]. 
 + 
 +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. 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.
Zeile 10: Zeile 12:
 # Container Setup # Container Setup
  
-Sie finden ein vorgefertigtes Docker-Compose File nebst README und Beispielen zur Konfiguration in unserem Git-Repository im Unterordner 'docker'. Die Konfiguration wird über die Datei '.env' gesteuert.+Sie finden ein vorgefertigtes Docker-Compose File nebst README und Beispielen zur Konfiguration in unserem Git-Repository (*./deployment/docker*). Die Konfiguration wird über die Datei '.env' gesteuert.
  
 *Beachten Sie, dass unter Linux Dateien die mit einem '.' (Punkt) beginnen evtl. nicht sichtbar sind. Nutzen Sie daher ggf. das Kommando 'ls -la', um auch versteckte Dateien anzuzeigen.* *Beachten Sie, dass unter Linux Dateien die mit einem '.' (Punkt) beginnen evtl. nicht sichtbar sind. Nutzen Sie daher ggf. das Kommando 'ls -la', um auch versteckte Dateien anzuzeigen.*
Zeile 18: Zeile 20:
 ``` ```
 git clone https://git.openslx.org/bwlp/bwlp-guacamole-ext.git git clone https://git.openslx.org/bwlp/bwlp-guacamole-ext.git
-cd bwlp-guacamole-ext/docker+cd bwlp-guacamole-ext/deployment/docker
 cp .env.example .env cp .env.example .env
 ``` ```
  
-Editieren Sie dort mindestens IP/Hostname der Variablen 'SLX_CLIENT_LIST_URL', damit diese auf Ihren Satellitenserver verweist.+Editieren Sie dort mindestens IP/Hostname der Variablen **SLX_CLIENT_LIST_URL**, damit diese auf Ihren Satellitenserver verweist.
  
-Für den LDAP-Login müssen Sie noch die notwendingen 'LDAP_*'-Variablen anpassen. Es stehen noch weitere Konfigurationsoptionen zur Verfügung, falls nötig https://guacamole.apache.org/doc/gug/guacamole-docker.html#ldap-authentication .+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://guacamole.apache.org/doc/gug/guacamole-docker.html#ldap-authentication .
  
-**Optional:** Falls Ihr LDAP-Server ein selbstsigniertes SSL-Zertifikat verwendet, ist es unter Umständen notwendig, dass Sie dieses in das Docker-Image importieren. Editieren Sie dazu die Datei 'Dockerfile' und passen die auskommentierten Zeilen an. Kopieren Sie dann das notwendige Zertifikat z.B. ebenfalls unter './files'. Falls Sie kein spezielles Zertifikat benötigen, können Sie diesen Teil überspringen.+**Optional:** Falls Ihr LDAP-Server ein selbstsigniertes SSL-Zertifikat verwendet, ist es unter Umständen notwendig, dass Sie dieses in das Docker-Image importieren. Editieren Sie dazu die Datei 'Dockerfile' und passen die auskommentierten Zeilen an. Legen Sie dann das notwendige Zertifikat z.B. unter './dataab. Falls Sie kein spezielles Zertifikat benötigen, können Sie diesen Teil überspringen.
  
-Kopieren Sie als nächstes das für Ihre Guacamole Version passende 'bwlp-guac-plugin' nach './files/extensions'+Kopieren Sie als nächstes das für Ihre Guacamole Version passende 'bwlp-guac-plugin' nach './data/extensions'
 Die aktuell zur Verfügung stehenden Plugins finden Sie unter https://files.bwlp.ks.uni-freiburg.de/satellit/guacamole/ . Die aktuell zur Verfügung stehenden Plugins finden Sie unter https://files.bwlp.ks.uni-freiburg.de/satellit/guacamole/ .
  
Zeile 54: Zeile 56:
  
  
-## Apache Reverse Proxy einrichten+## Reverse Proxy einrichten
  
-Sie sollten einen Reverse Webproxy verwenden, um einen verschlüsselten Zugriff auf die Weboberfläche zu ermöglichen. Wir verwenden im Beispiel den Webserver Apache. Aber auch nginx ist möglich.+Im oben genannten Repository ist auch eine entsprechende Beispielkonfiguration für den Apache Webserver enthalten (*./deployment/apache2/*). Alternativ ist auch nginx als Webserver möglich. Weitere Infos dazu finden Sie in der \[\[https://guacamole.apache.org/doc/gug/|Apache Guacamole Dokumentation\]\].
  
-Zunächst müssen Sie einige Module aktivieren. +``` 
 +# Apache installieren 
 +apt install apache2 
  
-```+# Module aktivieren
 a2enmod rewrite a2enmod rewrite
 a2enmod proxy_http a2enmod proxy_http
 a2enmod ssl a2enmod ssl
 a2enmod proxy_wstunnel a2enmod proxy_wstunnel
-``` 
- 
-Anschließend kopieren Sie folgenden Inhalt z.B. nach '/etc/apache2/sites-available/bwlehrpool-remote.conf' 
- 
-**IP (10.9.8.7)** und **FQDN (bwlehrpool-remote.hs-xyz.de)** sind Platzhalter und müssen entsprechend angepasst werden: 
  
 +# Konfiguration kopieren und aktivieren
 +cp bwlp-guacamole-ext/deployment/bwlehrpool-remote.conf /etc/apache2/sites-available/bwlehrpool-remote.conf
 +a2ensite bwlehrpool-remote.conf
 ``` ```
-<VirtualHost 10.9.8.7:80> 
-        ServerName bwlehrpool-remote.hs-xyz.de 
-        ServerAdmin webmaster@test.de 
  
-        RewriteEngine On +Passen Sie **IP (10.9.8.7)** und **FQDN (bwlehrpool-remote.hs-xyz.de)** auf Ihre Umgebung an.
-        RewriteCond %{HTTPS} !=on +
-        RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] +
-</VirtualHost> +
- +
- +
-<VirtualHost 10.9.8.7:443> +
-        ServerName bwlehrpool-remote.hs-xyz.de +
-        ServerAdmin webmaster@test.de +
- +
-        SSLEngine on +
-        SSLProtocol All -SSLv2 -SSLv3 +
-        SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt +
-        SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key +
-         +
-        RewriteEngine  on +
-        RewriteRule    "^/guacamole"  "/" [R] +
- +
-        ProxyPass / http://localhost:8080/guacamole/ flushpackets=on +
-        ProxyPassReverse / http://localhost:8080/guacamole/ +
-        ProxyPassReverseCookiePath /guacamole / +
-         +
-        <Location /websocket-tunnel> +
-                Order allow,deny +
-                Allow from all +
-                ProxyPass ws://localhost:8080/guacamole/websocket-tunnel +
-                ProxyPassReverse ws://localhost:8080/guacamole/websocket-tunnel +
-        </Location> +
-        SetEnvIf Request_URI "^/tunnel" dontlog +
-        CustomLog  /var/log/apache2/guac.log common env=!dontlog +
-</VirtualHost> +
-```+
  
 ``` ```
 # Selbst signiertes Zertifikat erstellen (besser Let's Encrypt oder korrektes Hochschulzertifikat verwenden) # Selbst signiertes Zertifikat erstellen (besser Let's Encrypt oder korrektes Hochschulzertifikat verwenden)
 openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt
- 
-# Seite aktivieren: 
-a2ensite bwlehrpool-remote.conf 
  
 # Webserver neustarten # Webserver neustarten
Zeile 161: Zeile 126:
 (Anmerkung: Das derzeit aktuelle Debian 11 „Bullseye“ beinhaltet kein libjpeg-turbo8-dev, jedoch libjpeg62-turbo-dev.) (Anmerkung: Das derzeit aktuelle Debian 11 „Bullseye“ beinhaltet kein libjpeg-turbo8-dev, jedoch libjpeg62-turbo-dev.)
  
-- Guacamole 1.3.herunterladen  +- Guacamole 1.5.herunterladen  
   ````bash   ````bash
-  mkdir /usr/src && cd /usr/src +  VER=1.5.3 
-  wget https://dlcdn.apache.org/guacamole/1.3.0/binary/guacamole-1.3.0.war +  mkdir -p /usr/src && cd /usr/src 
-  wget https://dlcdn.apache.org/guacamole/1.3.0/binary/guacamole-auth-ldap-1.3.0.tar.gz +  wget https://dlcdn.apache.org/guacamole/$VER/binary/guacamole-$VER.war 
-  wget https://dlcdn.apache.org/guacamole/1.3.0/source/guacamole-server-1.3.0.tar.gz+  wget https://dlcdn.apache.org/guacamole/$VER/binary/guacamole-auth-ldap-$VER.tar.gz 
 +  wget https://dlcdn.apache.org/guacamole/$VER/source/guacamole-server-$VER.tar.gz
   ````   ````
  
-- Sources entpacken  +- Sources entpacken und Configure aufrufen
   ````   ````
-  tar xzf guacamole-server-1.3.0.tar.gz +  tar xzf guacamole-server-$VER.tar.gz 
-  ```` +  cd /usr/src/guacamole-server-$VER
- +
-- Configure aufrufen +
-  ```` +
-  cd /usr/src/guacamole-server-1.3.0+
   ./configure --with-systemd-dir=/etc/systemd/system     ./configure --with-systemd-dir=/etc/systemd/system  
   ````   ````
Zeile 183: Zeile 145:
   ````bash   ````bash
   #------------------------------------------------   #------------------------------------------------
-  guacamole-server version 1.3.0+  guacamole-server version 1.5.3
   #------------------------------------------------   #------------------------------------------------
      
Zeile 231: Zeile 193:
     make install     make install
     ldconfig     ldconfig
-  ```` 
- 
-- Guacamole Server Service   
-  ````bash 
-  systemctl enable guacd 
-  systemctl start guacd 
   ````   ````
  
Zeile 245: Zeile 201:
   mkdir /etc/guacamole   mkdir /etc/guacamole
   echo 'GUACAMOLE_HOME="/etc/guacamole"' >> /etc/environment   echo 'GUACAMOLE_HOME="/etc/guacamole"' >> /etc/environment
 +  ````
 +  
 +- Guacamole Server Service  
 +  ````bash
 +  systemctl --now enable guacd
   ````   ````
  
 ### Guacamole-Client installieren und starten ### Guacamole-Client installieren und starten
   ````bash   ````bash
-  cp /usr/src/guacamole-1.3.0.war /var/lib/tomcat9/webapps/guacamole.war+  cp /usr/src/guacamole-$VER.war /var/lib/tomcat9/webapps/guacamole.war
  
   # Verlinke die Konfigurationsdateien    # Verlinke die Konfigurationsdateien 
Zeile 257: Zeile 218:
   systemctl restart tomcat9.service   systemctl restart tomcat9.service
   systemctl restart guacd.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' bzw 'netstat -plunt' prüfen. 
 +  
 +  ````
 +  Ergänzen Sie '/etc/guacamole/guacamole.properties' mit folgender Zeile:
 +  guacd-hostname: 127.0.0.1
 +
 +  Erstellen Sie die Datei /etc/guacamole/guacd.conf mit folgendem Inhalt:
 +  [server]
 +  bind_host = 127.0.0.1
 +  bind_port = 4822
 +
 +  Nehmen Sie explizit '127.0.0.1' und nicht 'localhost'.
   ````   ````
  
Zeile 266: Zeile 243:
 ````bash ````bash
 cd /usr/src/ cd /usr/src/
-tar xvzf guacamole-auth-ldap-1.3.0.tar.gz+tar xvzf guacamole-auth-ldap-$VER.tar.gz
  
 # extensions Verzeichnis anlegen # extensions Verzeichnis anlegen
 mkdir /etc/guacamole/extensions mkdir /etc/guacamole/extensions
-cp /usr/src/guacamole-auth-ldap-1.3.0/guacamole-auth-ldap-1.3.0.jar /etc/guacamole/extensions/+cp /usr/src/guacamole-auth-ldap-$VER/guacamole-auth-ldap-$VER.jar /etc/guacamole/extensions/
 ```` ````
  
Zeile 327: Zeile 304:
 cd /etc/guacamole/extensions/ cd /etc/guacamole/extensions/
 rm -i bwlp-guac*.jar rm -i bwlp-guac*.jar
-wget https://files.bwlp.ks.uni-freiburg.de/satellit/guacamole/bwlp-guac-1.3.1-SNAPSHOT.jar+wget https://files.bwlp.ks.uni-freiburg.de/satellit/guacamole/bwlp-guac-1.5.0-SNAPSHOT.jar
  
-# Um das Plugin mit dem bwLehrpool-Satellitenserver zu verbinden, folgende Zeile in '/etc/guacamole/guacamole.properties' einfügen:+# Um das Plugin mit dem bwLehrpool-Satellitenserver zu verbinden, folgende Zeile in '/etc/guacamole/guacamole.properties' einfügen (**<SAT-IP> anpassen**):
 slx-client-list-url: https://<SAT-IP>/slx-admin/api.php?do=remoteaccess slx-client-list-url: https://<SAT-IP>/slx-admin/api.php?do=remoteaccess
 ```` ````
 +
  
 Bitte fahren Sie zum Abschluß der Installation mit dem Punkt [„Apache Reverse Proxy einrichten“](#apache_reverse_proxy_einrichten) fort. Bitte fahren Sie zum Abschluß der Installation mit dem Punkt [„Apache Reverse Proxy einrichten“](#apache_reverse_proxy_einrichten) fort.
Drucken/exportieren