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_test [2023/07/17 16:13 CEST] 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
Drucken/exportieren