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:44 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
Zeile 12: 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 20: 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
 ``` ```
Zeile 28: Zeile 28:
 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 . 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. Legen Sie dann das notwendige Zertifikat z.B. unter './files' ab. 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 './data' ab. 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 56: Zeile 56:
  
  
-## Reverse Webproxy 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 163: 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 185: Zeile 145:
   ````bash   ````bash
   #------------------------------------------------   #------------------------------------------------
-  guacamole-server version 1.3.0+  guacamole-server version 1.5.3
   #------------------------------------------------   #------------------------------------------------
      
Zeile 233: Zeile 193:
     make install     make install
     ldconfig     ldconfig
-  ```` 
- 
-- Guacamole Server Service   
-  ````bash 
-  systemctl enable guacd 
-  systemctl start guacd 
   ````   ````
  
Zeile 247: 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 259: 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 268: 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 329: 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