Apache Guacamole: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
| Zeile 36: | Zeile 36: | ||
=== Installation über Docker Compose === | === Installation über Docker Compose === | ||
1. | 1. Vorbereitung des Arbeitskatalogs | ||
<syntaxhighlight lang="bash" highlight="1" copy line> | |||
mkdir /opt/guacamole-docker && cd /opt/guacamole-docker | |||
</syntaxhighlight> | |||
2. Zunächst muss eine Datei namens ''docker-compose.yml'' mit folgendem Inhalt erstellt werden: | |||
<syntaxhighlight lang="yaml" highlight="" copy line> | <syntaxhighlight lang="yaml" highlight="" copy line> | ||
| Zeile 139: | Zeile 138: | ||
|} | |} | ||
4. | 3. Jetzt muss die Struktur der Guacamole-Datenbank vorbereitet werden. | ||
<syntaxhighlight lang="bash" highlight="1" copy line> | |||
docker run --rm guacamole/guacamole:latest /opt/guacamole/bin/initdb.sh --mysql > initdb.sql | |||
</syntaxhighlight> | |||
* Dieser Befehl generiert das SQL-Schema Guacamole, ohne das die Datenbank die erforderlichen Tabellen und Anfangsdatensätze nicht erstellen kann | |||
4. Start der Container | |||
<syntaxhighlight lang="bash" highlight="1" copy line> | |||
docker compose up -d | |||
</syntaxhighlight> | |||
* Die Weboberfläche ist unter folgender Adresse erreichbar: ''http://<IP_or_Domain_Name>:8080/'' | |||
<noinclude> | <noinclude> | ||
== Anhang == | == Anhang == | ||
=== Siehe auch === | === Siehe auch === | ||
Version vom 24. November 2025, 14:47 Uhr
Apache Guacamole - Gateway für den Fernzugriff auf Computersysteme
Beschreibung
Apache Guacamole ist ein freies und quelloffenes Gateway für den Fernzugriff auf Computersysteme, welches von der Apache Software Foundation betreut wird
Plattformunabhängig ermöglicht es Benutzern, ohne einen dedizierten Client über Webbrowser auf entfernte Computer oder virtuelle Maschinen zuzugreifen
- Administratoren können den Zugriff durch ein erweiterbares System für Authentifizierung und Autorisierung regeln, sodass Zielcomputer sicher hinter Guacamole isoliert werden können, ohne direkt im Internet erreichbar zu sein
Für den Fernzugriff nutzt Guacamole die Komponente guacd, die Protokolle wie RDP, VNC oder SSH für den Zugriff auf die jeweiligen Ressourcen verwendet
- Da Guacamole keinen spezifischen Client benötigt, ist keine Agenteninstallation auf den Zielressourcen erforderlich
- Durch die Integration des Clients in Webbrowser können Benutzer ohne zusätzliche Fernwartungssoftware auf ihre Computersysteme zugreifen
Komponenten
Guacamole setzt sich aus verschiedenen Komponenten zusammen
- Die Webanwendung bildet die Schnittstelle, über die die Benutzer mit Guacamole interagieren können
- Diese stellt die visuelle Oberfläche bereit, mit der entfernte Computersysteme über den Browser aufgerufen und gesteuert werden können
- Im Hintergrund arbeitet der Dienst "guacd", welcher als Backend-Dienst fungiert
- Dieser Dienst übersetzt und optimiert dynamisch native Protokolle in das spezifische Guacamole-Protokoll, um eine effiziente Kommunikation und Darstellung im Webbrowser zu ermöglichen
Webanwendung
Die Webanwendung dient als Benutzeroberfläche und ist für Authentifizierung sowie Autorisierung zuständig
- Sie implementiert nicht direkt Fernzugriffsprotokolle
- Stattdessen verlässt sie sich auf den Dienst "guacd", der diese Protokolle ins Guacamole-Protokoll übersetzt
- Die Serverseite dieser Anwendung ist in Java programmiert und wird in einem Servlet-Container, wie Apache Tomcat oder Jetty, ausgeführt
- Auf der Clientseite, die im Webbrowser abläuft, kommt JavaScript zum Einsatz
Dienst "guacd"
"guacd" ist ein Backend-Dienst, der Anfragen von der Webanwendung entgegennimmt und Verbindungen zu entfernten Computersystemen herstellt
- Dabei lädt "guacd" dynamisch Unterstützung für verschiedene Fernzugriffsprotokolle, was bedeutet, dass weder "guacd" noch die Webanwendung die Einzelheiten der verschiedenen Fernzugriffsprotokolle kennen müssen
- Sowohl "guacd" als auch die dazugehörigen Client-Plugins greifen auf die Bibliothek "libguac" zurück, die das Guacamole-Protokoll abstrahiert und die Kommunikation mit der Webanwendung erleichtert
Installation
Installation über Docker Compose
1. Vorbereitung des Arbeitskatalogs
mkdir /opt/guacamole-docker && cd /opt/guacamole-docker
2. Zunächst muss eine Datei namens docker-compose.yml mit folgendem Inhalt erstellt werden:
services:
db:
image: mariadb:latest
container_name: guac-db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: "ROOT_SUPER_SECRET"
MYSQL_DATABASE: "guacamole_db"
MYSQL_USER: "guacamole_user"
MYSQL_PASSWORD: "GUAC_DB_PASSWORD"
volumes:
- db-data:/var/lib/mysql
- ./initdb.sql:/docker-entrypoint-initdb.d/initdb.sql:ro
guacd:
image: guacamole/guacd:latest
container_name: guacd
restart: unless-stopped
guacamole:
image: guacamole/guacamole:latest
container_name: guacamole
restart: unless-stopped
depends_on:
- guacd
- db
environment:
GUACD_HOSTNAME: guacd
GUACD_PORT: "4822"
MYSQL_ENABLED: "true"
MYSQL_HOSTNAME: db
MYSQL_PORT: "3306"
MYSQL_DATABASE: "guacamole_db"
MYSQL_USERNAME: "guacamole_user"
MYSQL_PASSWORD: "GUAC_DB_PASSWORD"
ports:
- "8080:8080"
| Variable | Wert | Beschreibung |
|---|---|---|
| MYSQL_ROOT_PASSWORD | ROOT_SUPER_SECRET | Root-Passwort des MariaDB-Servers |
| MYSQL_DATABASE | guacamole_db | Name der Guacamole-Datenbank, die vom MariaDB-Container erstellt und vom Guacamole-Server verwendet wird |
| MYSQL_USER | guacamole_user | Datenbankbenutzer für Guacamole (wird im MariaDB-Container angelegt und vom Guacamole-Server genutzt) |
| MYSQL_PASSWORD | GUAC_DB_PASSWORD | Passwort des Guacamole-Datenbankbenutzers |
| GUACD_HOSTNAME | guacd | Hostname bzw. Docker-Servicename des guacd-Dienstes |
| GUACD_PORT | 4822 | TCP-Port, auf dem guacd Verbindungen annimmt |
| MYSQL_ENABLED | true | Aktiviert die MySQL-/MariaDB-Authentifizierung im Guacamole-Server |
| MYSQL_HOSTNAME | db | Hostname bzw. Docker-Servicename des MariaDB-Servers |
| MYSQL_PORT | 3306 | TCP-Port des MariaDB-Servers |
| MYSQL_USERNAME | guacamole_user | Datenbankbenutzername, den der Guacamole-Server für Verbindungen verwendet |
| MYSQL_PASSWORD | GUAC_DB_PASSWORD | Passwort des von Guacamole verwendeten Datenbankbenutzers |
| WEBAPP_CONTEXT | ROOT | Kontextpfad der Guacamole-Webanwendung; ROOT platziert die Anwendung direkt unter / anstatt unter /guacamole |
3. Jetzt muss die Struktur der Guacamole-Datenbank vorbereitet werden.
docker run --rm guacamole/guacamole:latest /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
- Dieser Befehl generiert das SQL-Schema Guacamole, ohne das die Datenbank die erforderlichen Tabellen und Anfangsdatensätze nicht erstellen kann
4. Start der Container
docker compose up -d
- Die Weboberfläche ist unter folgender Adresse erreichbar: http://<IP_or_Domain_Name>:8080/
Anhang
Siehe auch
Links
Weblinks
- https://de.wikipedia.org/wiki/Apache_Guacamole
- https://guacamole.apache.org
- https://www.howtoforge.de/anleitung/so-installierst-du-apache-guacamole-unter-debian-11/
- https://computingforgeeks.com/install-and-use-guacamole-remote-desktop-on-debian/
- https://guacamole.apache.org/doc/1.4.0/gug/guacamole-docker.html