Zum Inhalt springen

Apache/Guacamole: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
DanielZorin (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 12: Zeile 12:


== Komponenten ==
== Komponenten ==
* 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
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 und Frontend|Backend]]-Dienst fungiert
* 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
* Dieser Dienst übersetzt und optimiert dynamisch native Protokolle in das spezifische Guacamole-Protokoll, um eine effiziente Kommunikation und Darstellung im Webbrowser zu ermöglichen
Zeile 20: Zeile 28:
; Webanwendung
; Webanwendung
Die Webanwendung dient als Benutzeroberfläche und ist für Authentifizierung sowie Autorisierung zuständig
Die Webanwendung dient als Benutzeroberfläche und ist für Authentifizierung sowie Autorisierung zuständig
* Sie implementiert nicht direkt Fernzugriffsprotokolle
* Die [[Webanwendung]] ist eine Schnittstelle, über die Benutzer mit Guacamole interagieren, auf entfernte Computersysteme zugreifen und diese über einen Browser verwalten können
* Stattdessen verlässt sie sich auf den Dienst "guacd", der diese Protokolle ins Guacamole-Protokoll übersetzt
* Die Serverseite ist als Java-Webanwendung implementiert und läuft in einem Servlet-Container wie Apache Tomcat oder Jetty
* 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
* 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
* Auf der Clientseite, die im Webbrowser abläuft, kommt [[JavaScript]] zum Einsatz
 
 


=== Backend ===
=== Backend ===
; guacd
; guacd
* Anfragen von Webanwendungen annehmen und Verbindungen zu entfernten Computersystemen herstellen
''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
; Fernzugriffsprotokolle
lädt dynamisch Unterstützung für verschiedene Fernzugriffsprotokolle
Die Unterstützung für konkrete Fernzugriffsprotokolle wird durch dynamisch ladbare Client-Plugins bereitgestellt.
* was bedeutet, dass weder "guacd" noch die Webanwendung die Einzelheiten der verschiedenen Fernzugriffsprotokolle kennen müssen
 
* 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 ==


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
=== 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 ==
== Anhang ==

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