Zum Inhalt springen

Apache/Guacamole: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
DanielZorin (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
(38 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
'''Apache Guacamole''' - Gateway für den Fernzugriff auf Computersysteme
'''Apache/Guacamole''' - Gateway zum Fernzugriff auf Computersysteme


== Beschreibung ==
== Beschreibung ==
'''Apache Guacamole''' ist ein freies und quelloffenes Gateway für den Fernzugriff auf Computersysteme, welches von der [[Apache Software Foundation]] betreut wird.
'''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 Maschine|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.
Plattformunabhängig ermöglicht es Benutzern, ohne einen dedizierten Client über [[Webbrowser]] auf entfernte [[Computer]] oder [[Virtuelle Maschine|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 [[Remote Desktop Protocol|RDP]], [[VNC]] oder [[SSH File Transfer Protocol|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.
Für den Fernzugriff nutzt Guacamole die Komponente guacd, die Protokolle wie [[Remote Desktop Protocol|RDP]], [[VNC]] oder [[SSH File Transfer Protocol|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 ==
== 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 und Frontend|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 ===
Guacamole besteht aus mehreren logisch getrennten Komponenten:
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 (Programmiersprache)|Java]] programmiert und wird in einem Servlet-Container, wie [[Apache Tomcat]] oder [[Jetty (Webserver)|Jetty]], ausgeführt. Auf der Clientseite, die im Webbrowser abläuft, kommt [[JavaScript]] zum Einsatz.


=== Dienst „guacd“ ===
* Webanwendung (Guacamole-Client)
„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.
* guacd (Guacamole Proxy Daemon)
* Protokollmodule (RDP, VNC, SSH usw.)
* gemeinsame Bibliothek ''libguac''


== Geschichte ==
Im Jahr 2010 entwickelte Michael Jumper Guacamole zunächst als Client für VNC basierend auf HTML5. Dabei wurden Komponenten eines zuvor existierenden browserbasierten Telnet-Clients mit dem Namen „RealMint“ verwendet.


Um die Weiterentwicklung und Unterstützung von Guacamole zu gewährleisten, gründete sich die Firma Glyptodon LLC.


Im Jahr 2016 übergab Glyptodon das Projekt an die Apache Software Foundation. Dort begann für Guacamole eine Phase der Inkubation. Nach deren erfolgreichem Abschluss im Jahr 2017 avancierte Guacamole zum Top-Level-Projekt unter dem Dach der Apache Software Foundation, seither bekannt als Apache Guacamole.
* Im Hintergrund arbeitet der Dienst "guacd", welcher als [[Backend und Frontend|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


Als Projekt der Apache Software Foundation steht Guacamole unter der [[Apache-Lizenz]] und wird von einer Gemeinschaft von Beitragenden entwickelt. Diskussionen zur Entwicklung und Unterstützung finden in den Mailinglisten des Projekts statt, Beiträge werden durch das Eröffnen von [[Pull Request]]s gegenüber den [[GitHub]]-Repositories des Projekts geleistet. Guacamole folgt den Praktiken zur verantwortungsvollen Offenlegung und bietet eine private Liste, über die Sicherheitsprobleme gemeldet und behandelt werden können.
=== Frontend ===
; Webanwendung
Die Webanwendung dient als Benutzeroberfläche und ist für Authentifizierung sowie Autorisierung zuständig
* Die [[Webanwendung]] ist eine Schnittstelle, über die Benutzer mit Guacamole interagieren, auf entfernte Computersysteme zugreifen und diese über einen Browser verwalten können
* Die Serverseite ist als Java-Webanwendung implementiert und läuft in einem Servlet-Container wie Apache Tomcat oder Jetty
* Im [[Webbrowser]] wird eine [[JavaScript]]-Anwendung ausgeführt, die Ein- und Ausgabedaten (Tastatur, Maus, Bildschirm) über das Guacamole-Protokoll an ''guacd'' überträgt bzw. von dort empfängt


Im Juli 2020 wurden zwei Sicherheitslücken mit mittlerer Schwere in Guacamole entdeckt, die es einem Angreifer, der bereits einen RDP-Server kompromittiert hatte, potenziell ermöglichen könnten, ein Guacamole-Gateway zu kontrollieren.
Die Schwachstellen wurden offiziell in Apache Guacamole 1.2.0 behoben und danach bekannt gegeben.




== Weblinks ==
=== Backend ===
; guacd
''guacd'' fungiert als Backend-Dienst und Protokoll-Proxy zwischen der Webanwendung und den Zielsystemen.
 
* nimmt Verbindungsanforderungen der Webanwendung entgegen,
* stellt Sitzungen zu entfernten Systemen über die jeweils konfigurierten Fernzugriffsprotokolle her,
* übersetzt Datenströme zwischen dem Guacamole-Protokoll und den nativen Protokollen (RDP, VNC, SSH usw.),
* kapselt die Protokolldetails und stellt eine einheitliche Schnittstelle für die Webanwendung bereit
 
; Fernzugriffsprotokolle
Die Unterstützung für konkrete Fernzugriffsprotokolle wird durch dynamisch ladbare Client-Plugins bereitgestellt.
 
* Weder ''guacd'' noch die Webanwendung müssen die Details der einzelnen Fernzugriffsprotokolle kennen
* Sowohl ''guacd'' als auch die Plugins verwenden die gemeinsame Bibliothek ''libguac'', die das Guacamole-Protokoll implementiert und die Kommunikation mit der Webanwendung abstrahiert
 
== Anwendungsbereiche ==
Typische Einsatzgebiete von Guacamole sind Umgebungen, in denen zentraler, browserbasierter Fernzugriff benötigt wird
 
* Bereitstellung von administrativem Remotezugriff auf Server und Netzwerkgeräte ohne direkten Zugriff auf deren Management-Schnittstellen
* Zugriff auf Labor-, Schulungs- oder Poolrechner, bei denen Bedienoberflächen über das Web bereitgestellt werden
* Betrieb als zentraler Jump-Host, über den Verbindungen in abgeschottete Netzwerksegmente geführt werden
* Ersatz oder Ergänzung [[VPN]]-Lösungen, wenn ausschließlich grafischer oder terminalbasierter Zugriff notwendig ist
 
== Authentifizierung / Autorisierung ==
 
;Authentifizierung
Die Authentifizierung in Guacamole ist modular aufgebaut und kann über unterschiedliche Backends erfolgen:
 
* Die integrierte Datenbankauthentifizierung ermöglicht die Verwaltung von Benutzern, Gruppen und Berechtigungen innerhalb eines relationalen Datenbanksystems. 
:* Zugriffsrechte auf Verbindungen, Ordner und Freigaben werden direkt in der Datenbank definiert.
 
* Eine Authentifizierung über [[OpenID Connect]] oder SAML erlaubt die Integration in bestehende Identity-Provider-Infrastrukturen. 
:* Single-Sign-On ermöglicht eine zentrale Anmeldung für unterschiedliche Dienste. 
:* Anspruchsbasierte Zuordnung von Rollen und Rechten vereinfacht die zentrale Verwaltung.
 
* Es können auch externe Verzeichnisdienste wie LDAP oder Active Directory für die zentrale Benutzerverwaltung angeschlossen werden
 
;Autorisierung
 
Die Autorisierung erfolgt objektbasiert. 
:* Zugriffe auf Verbindungen, Ordner, Parameter und administrative Funktionen werden durch Berechtigungen gesteuert 
:* Rechte können Benutzern direkt oder über Gruppen zugewiesen werden
 
 
== Sicherheit ==
Beim Betrieb von Guacamole sind insbesondere folgende Punkte relevant:
 
* Obligatorische durchgängige HTTPS-Verschlüsselung zwischen Browser und Gateway
* Platzierung von Guacamole in einer [[DMZ|demilitarisierten Zone]] mit eingeschränktem Zugriff auf interne Systeme
* Härtung des guacd-Dienstes und der Protokollmodule, insbesondere im Hinblick auf exponierte RDP- und VNC-Zugänge
:* Verwenden Sie für RDP und VNC zuverlässige Authentifizierungsmechanismen und Protokollversionen mit Verschlüsselung
:* Einführung einer Begrenzung der Anfragehäufigkeit und eines Schutzes vor Brute-Force-Angriffen
* Protokollierung von Anmeldevorgängen und Sitzungsaufbauten zu Audit- und Nachvollziehbarkeitszwecken
:* Authentifizierungsprotokolle sicher speichern
 
 
== Troubleshooting ==
 
=== XRDP Tastatur ===
; Lösung des Problems mit der Eingabe von Zeichen in anderen Sprachen als Englisch
: Um deutsche Zeichen über XRDP in Guacamole korrekt eingeben zu können, musst du in den Verbindungseinstellungen als Tastaturlayout ''German'' auswählen.
 
== Anhang ==
=== Siehe auch ===
<div style="column-count:2">
<categorytree hideroot=on mode="pages">Apache/Guacamole</categorytree>
</div>
----
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}
 
=== Dokumentation ===
<!--
; Man-Page
# [https://manpages.debian.org/stable/procps/pgrep.1.de.html prep(1)]
 
; Info-Pages
-->
 
=== Links ===
==== Projekt ====
==== Weblinks ====
# https://de.wikipedia.org/wiki/Apache_Guacamole
# https://de.wikipedia.org/wiki/Apache_Guacamole
# [https://guacamole.apache.org/ Website zu Apache Guacamole]
# https://guacamole.apache.org
# https://guacamole.apache.org/doc/1.4.0/gug/guacamole-docker.html


== TMP =
[[Kategorie:Apache/Guacamole]]
|Hersteller  = Apache Software Foundation
|Erscheinungsjahr  = 17.03.2010
|AktuelleVersion  = <!-- wikidata -->
|AktuelleVersionFreigabeDatum = <!-- wikidata -->
|Betriebssystem  = Server: Linux
|Programmiersprache = C und Java (Server), JavaScript (Client)
|Lizenz    = Apache-Lizenz 2.0
|Website    = https://guacamole.apache.org


[[Kategorie:Apache-Projekt]]
</noinclude>

Aktuelle Version vom 2. Dezember 2025, 16:10 Uhr

Apache/Guacamole - Gateway zum 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 besteht aus mehreren logisch getrennten Komponenten:

  • Webanwendung (Guacamole-Client)
  • guacd (Guacamole Proxy Daemon)
  • Protokollmodule (RDP, VNC, SSH usw.)
  • gemeinsame Bibliothek libguac


  • 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

Frontend

Webanwendung

Die Webanwendung dient als Benutzeroberfläche und ist für Authentifizierung sowie Autorisierung zuständig

  • Die Webanwendung ist eine Schnittstelle, über die Benutzer mit Guacamole interagieren, auf entfernte Computersysteme zugreifen und diese über einen Browser verwalten können
  • Die Serverseite ist als Java-Webanwendung implementiert und läuft in einem Servlet-Container wie Apache Tomcat oder Jetty
  • Im Webbrowser wird eine JavaScript-Anwendung ausgeführt, die Ein- und Ausgabedaten (Tastatur, Maus, Bildschirm) über das Guacamole-Protokoll an guacd überträgt bzw. von dort empfängt


Backend

guacd

guacd fungiert als Backend-Dienst und Protokoll-Proxy zwischen der Webanwendung und den Zielsystemen.

  • nimmt Verbindungsanforderungen der Webanwendung entgegen,
  • stellt Sitzungen zu entfernten Systemen über die jeweils konfigurierten Fernzugriffsprotokolle her,
  • übersetzt Datenströme zwischen dem Guacamole-Protokoll und den nativen Protokollen (RDP, VNC, SSH usw.),
  • kapselt die Protokolldetails und stellt eine einheitliche Schnittstelle für die Webanwendung bereit
Fernzugriffsprotokolle

Die Unterstützung für konkrete Fernzugriffsprotokolle wird durch dynamisch ladbare Client-Plugins bereitgestellt.

  • Weder guacd noch die Webanwendung müssen die Details der einzelnen Fernzugriffsprotokolle kennen
  • Sowohl guacd als auch die Plugins verwenden die gemeinsame Bibliothek libguac, die das Guacamole-Protokoll implementiert und die Kommunikation mit der Webanwendung abstrahiert

Anwendungsbereiche

Typische Einsatzgebiete von Guacamole sind Umgebungen, in denen zentraler, browserbasierter Fernzugriff benötigt wird

  • Bereitstellung von administrativem Remotezugriff auf Server und Netzwerkgeräte ohne direkten Zugriff auf deren Management-Schnittstellen
  • Zugriff auf Labor-, Schulungs- oder Poolrechner, bei denen Bedienoberflächen über das Web bereitgestellt werden
  • Betrieb als zentraler Jump-Host, über den Verbindungen in abgeschottete Netzwerksegmente geführt werden
  • Ersatz oder Ergänzung VPN-Lösungen, wenn ausschließlich grafischer oder terminalbasierter Zugriff notwendig ist

Authentifizierung / Autorisierung

Authentifizierung

Die Authentifizierung in Guacamole ist modular aufgebaut und kann über unterschiedliche Backends erfolgen:

  • Die integrierte Datenbankauthentifizierung ermöglicht die Verwaltung von Benutzern, Gruppen und Berechtigungen innerhalb eines relationalen Datenbanksystems.
  • Zugriffsrechte auf Verbindungen, Ordner und Freigaben werden direkt in der Datenbank definiert.
  • Eine Authentifizierung über OpenID Connect oder SAML erlaubt die Integration in bestehende Identity-Provider-Infrastrukturen.
  • Single-Sign-On ermöglicht eine zentrale Anmeldung für unterschiedliche Dienste.
  • Anspruchsbasierte Zuordnung von Rollen und Rechten vereinfacht die zentrale Verwaltung.
  • Es können auch externe Verzeichnisdienste wie LDAP oder Active Directory für die zentrale Benutzerverwaltung angeschlossen werden
Autorisierung

Die Autorisierung erfolgt objektbasiert.

  • Zugriffe auf Verbindungen, Ordner, Parameter und administrative Funktionen werden durch Berechtigungen gesteuert
  • Rechte können Benutzern direkt oder über Gruppen zugewiesen werden


Sicherheit

Beim Betrieb von Guacamole sind insbesondere folgende Punkte relevant:

  • Obligatorische durchgängige HTTPS-Verschlüsselung zwischen Browser und Gateway
  • Platzierung von Guacamole in einer demilitarisierten Zone mit eingeschränktem Zugriff auf interne Systeme
  • Härtung des guacd-Dienstes und der Protokollmodule, insbesondere im Hinblick auf exponierte RDP- und VNC-Zugänge
  • Verwenden Sie für RDP und VNC zuverlässige Authentifizierungsmechanismen und Protokollversionen mit Verschlüsselung
  • Einführung einer Begrenzung der Anfragehäufigkeit und eines Schutzes vor Brute-Force-Angriffen
  • Protokollierung von Anmeldevorgängen und Sitzungsaufbauten zu Audit- und Nachvollziehbarkeitszwecken
  • Authentifizierungsprotokolle sicher speichern


Troubleshooting

XRDP Tastatur

Lösung des Problems mit der Eingabe von Zeichen in anderen Sprachen als Englisch
Um deutsche Zeichen über XRDP in Guacamole korrekt eingeben zu können, musst du in den Verbindungseinstellungen als Tastaturlayout German auswählen.

Anhang

Siehe auch


Dokumentation

Links

Projekt

Weblinks

  1. https://de.wikipedia.org/wiki/Apache_Guacamole
  2. https://guacamole.apache.org
  3. https://guacamole.apache.org/doc/1.4.0/gug/guacamole-docker.html