ADMIN

2023

12

2023-11-30T12:00:00

Container und Applikationsmanagement

TESTS

021

Containermanagement

Applikationsmanagement

Virtuelle Desktops

Kasm Workspaces 1.14.0

Lieferservice

von Dr. Christian Knermann

Veröffentlicht in Ausgabe 12/2023 - TESTS

Mit den Kasm Workspaces stellt der gleichnamige Hersteller virtuelle Desktops und Applikationen auf Basis von Linux bereit. Unter der Haube kommen dabei ressourcenschonend und flexibel Container zum Einsatz. Als Client genügt ein aktueller Webbrowser. IT-Administrator hat diesen neuartigen Ansatz zur Desktopvirtualisierung ausprobiert und war begeistert.

Der Fernzugriff auf von zentralen Servern bereitgestellte Ressourcen hat seinen Ursprung in den Anfängen der elektronischen Datenverarbeitung. In der Welt der Großrechner und auch im Umgang mit sämtlichen unixoiden Betriebssystemen und deren Urahnen waren Anwender es gewohnt, mittels schlanker Terminals auf die rare und teure Rechenleistung zuzugreifen. Und mit dem X Window System (X11) ist es für Nutzer von Unix-Derivaten und Linux seit jeher ebenso selbstverständlich, auch grafische Anwendungen auf entfernten Systemen zu starten.
Völlig neue Wege
Anfangs belächelt, da entsprechende Funktionen fehlten, hat Microsoft in Kooperation mit Citrix erst mit der Terminal Server Edition von Windows NT zur Mitte der 1990er-Jahre den Zugriff auf die grafische Oberfläche des Betriebssystems über das Netzwerk ermöglicht. So mutet es fast als Ironie der Geschichte an, dass heutzutage die Desktopvirtualisierung in größerem Maßstab, also die strukturierte und zentral verwaltete Bereitstellung von Desktops und Applikationen an eine sehr große Anzahl von Benutzern, vor allem im Windows-Umfeld anzutreffen ist.
Zwar zeigen sich Microsoft, vor allem aber Citrix und VMware, auf der Nutzerseite flexibel. Sie bieten native Clients für zahlreiche Desktop- und Mobil-Betriebssysteme, aber auch HTML5-Clients, die einen Zugriff per Browser ermöglichen. Doch Microsoft virtualisiert sowohl mit den hauseigenen Remote Desktop Services (RDS) on-premises als auch mit den Azure Virtual Desktops und den neueren Windows-365-Cloud-PCs zentral ausschließlich Systeme auf Basis von Windows Server- und Client-Betriebssystemen.
Der Fernzugriff auf von zentralen Servern bereitgestellte Ressourcen hat seinen Ursprung in den Anfängen der elektronischen Datenverarbeitung. In der Welt der Großrechner und auch im Umgang mit sämtlichen unixoiden Betriebssystemen und deren Urahnen waren Anwender es gewohnt, mittels schlanker Terminals auf die rare und teure Rechenleistung zuzugreifen. Und mit dem X Window System (X11) ist es für Nutzer von Unix-Derivaten und Linux seit jeher ebenso selbstverständlich, auch grafische Anwendungen auf entfernten Systemen zu starten.
Völlig neue Wege
Anfangs belächelt, da entsprechende Funktionen fehlten, hat Microsoft in Kooperation mit Citrix erst mit der Terminal Server Edition von Windows NT zur Mitte der 1990er-Jahre den Zugriff auf die grafische Oberfläche des Betriebssystems über das Netzwerk ermöglicht. So mutet es fast als Ironie der Geschichte an, dass heutzutage die Desktopvirtualisierung in größerem Maßstab, also die strukturierte und zentral verwaltete Bereitstellung von Desktops und Applikationen an eine sehr große Anzahl von Benutzern, vor allem im Windows-Umfeld anzutreffen ist.
Zwar zeigen sich Microsoft, vor allem aber Citrix und VMware, auf der Nutzerseite flexibel. Sie bieten native Clients für zahlreiche Desktop- und Mobil-Betriebssysteme, aber auch HTML5-Clients, die einen Zugriff per Browser ermöglichen. Doch Microsoft virtualisiert sowohl mit den hauseigenen Remote Desktop Services (RDS) on-premises als auch mit den Azure Virtual Desktops und den neueren Windows-365-Cloud-PCs zentral ausschließlich Systeme auf Basis von Windows Server- und Client-Betriebssystemen.
Und auch bei den beiden Platzhirschen, die mit ihren Produkten Citrix Virtual Apps and Desktops (CVAD, ehemals XenApp und XenDesktop) sowie VM­ware Horizon die Funktionen von Microsofts Diensten erweitern, dominiert die Desktopvirtualisierung auf Basis von Windows. Zwar bieten sowohl Citrix als auch VMware ihre Agenten auch für Linux an. In beiden Fällen ist das grundlegende Prinzip für Arbeitslasten unter Windows und Linux aber identisch. Die Hersteller binden vollwertige virtuelle oder physische Maschinen mit eigenem Betriebssystem in ihre Infrastrukturen ein, um Anwendern so den Fernzugriff zu ermöglichen.
Zur Bereitstellung zahlreicher Sitzungen in großem Maßstab setzen die Anbieter auf verschiedene Methoden der Provisionierung, die viele gleichartige Maschinen aus einem Golden Image starten und nach der Verwendung wieder recyceln. Doch abseits der Multisession-Variante von Windows 10 und 11, die Microsoft zudem exklusiv in Azure anbietet, nutzt jeder Desktop eine ausgewachsene VM als Basis. Warum nun diese ausführliche Vorgeschichte? Um zu verdeutlichen, dass Kasm Technologies, im Weiteren schlicht Kasm, mit ihren gleichnamigen Workspaces in allen Belangen grundsätzlich neue Wege beschreiten.
Fokus auf Linux
Der US-amerikanische Anbieter von Software und Clouddiensten Kasm bezeichnet seine Workspaces als Container Streaming Platform. Die Software dient der Bereitstellung von containerisierten Anwendungen und Desktops für Endbenutzer. Die Workspaces-Plattform bietet Orchestrierung und Skalierung für zahlreiche Benutzer, Schutz vor Datenverlust und eine Web-Streaming-Technologie, um die Bereitstellung von containerisierten Anwendungen im Browser zu ermöglichen. Clients benötigen also lediglich einen halbwegs aktuellen HTML5-fähigen Browser.
Der Hersteller legt den Fokus auf Linux als Basis, ist aber grundsätzlich auch in der Lage, Windows-Systeme einzubinden, worauf wir später zurückkommen. Kasm bietet seine Software in verschiedenen Varianten als Clouddienst oder zur Installation im eigenen Rechenzentrum an.
Kasm Workspaces 1.14.0
Produkt
Virtualisierung von Linux-Desktops und -Applikationen.
Hersteller
Kasm Technologies Inc.
Preis
Die Preise gelten jeweils pro Benutzer und Monat:
- Workspace for Businesses, betrieben auf eigenen Servern: Community-Edition kostenfrei für Testinstallationen, gemeinnützige Organisationen und persönliche Zwecke; Professional Edition 5 US-Dollar; Enterprise Edition 10 Dollar.
- Workspace for Businesses, betrieben als Managed Service aus der Cloud: Personal ab 5 Dollar; Teams ab 18 Dollar; Enterprise ab 25 Dollar.
- Kasm Cloud Personal, betrieben als Managed Service aus der Cloud: Cloud Browser 5 Dollar; Cloud Desktop 10 Dollar; Cloud OSINT 25 Dollar.
Systemanforderungen
- Server: Ubuntu 18.04/ 20.04/ 22.04 (amd64/arm64), Debian 10/ 11/ 12 (amd64/arm64), CentOS 7/ 8/ 9 (amd64/arm64), Oracle Linux 7/ 8/ 9 (amd64/arm64), Raspberry Pi OS (Debian) 10/ 11/ 12 (arm64); Docker 18.06 oder höher, Docker Compose 2.1.1 oder höher
- Clientbrowser: Google Chrome 49 oder höher, Microsoft Edge 14 oder höher, Mozilla Firefox 48 oder höher, Apple Safari 11 oder höher, Internet Explorer 11 (nur ohne Audio-Support)
Technische Daten
Cloudangebote für individuelle Nutzer
Unter dem Label "Kasm Cloud Personal" betreibt der Anbieter Browser, Anwendungen und Desktops für Privatpersonen in drei Ausbaustufen ausschließlich als Managed Service in der Cloud. Dabei stehen Sicherheit und Privatsphäre im Vordergrund. Kasm löscht die Arbeitsbereiche nach jeder Nutzung und erlaubt weder Software-Installationen noch Datenpersistenz. Die Tarife begrenzen jeweils die Nutzung auf eine bestimmte Anzahl an Stunden pro Monat sowie ein Timeout der Sitzung.
Das kleinste Paket "Cloud Browser" umfasst lediglich Browsersitzungen basierend auf Brave, Chromium, Google Chrome, Microsoft Edge, Mozilla Firefox sowie Vivaldi. Der nächstgrößere Tarif "Cloud Desktop" bietet Linux-Desktops auf Basis der Distributionen Ubuntu, OpenSUSE, Oracle Linux und CentOS. Diese bringen die bereits genannten Browser mit sowie zahlreiche weitere Applikationen, darunter OnlyOffice, Gimp, Signal, Slack, Teams, Telegram oder auch Visual Studio Code.
Die dritte Variante "Cloud OSINT" richtet sich an besonders sicherheitsbewusste Anwender. Sie erweitert den Funktionsumfang um Werkzeuge der Open Source Intelligence (OSINT). Dies umfasst die auf Penetrationstests und digitale Forensik spezialisierte Distribution Kali Linux, den Tor-Browser, den Werkzeugkasten für Malwareanalyse REMnux sowie Tools der gemeinnützigen Organisation Trace Labs.
Online oder lokal für Unternehmen
An Unternehmenskunden richten sich die Kasm Workspaces for Businesses. Hierbei besteht die Wahl zwischen Software-as-a-Service-(SaaS)-Angeboten, die Kasm betreibt, sowie eigenen Installationen im Rechenzentrum vor Ort oder bei einem beliebigen Cloudanbieter. Der SaaS-Tarif "Personal" entspricht dem Funktionsumfang von "Cloud OSINT" und richtet sich an einzelne Benutzer.
Der Tarif "Teams" ergänzt neben Multifaktor-Authentifizierung (MFA) den Single Sign-on (SSO) per OpenID Connect (OIDC), SAML oder LDAP sowie Web Traffic Filter und das Management von SSH-Schlüsseln. Kasm Workspaces eigenen sich damit als Bastion Host zur Anmeldung an nachgelagerten Systemen mittels Durchreichen der SSH-Keys. Admins haben weiterhin die Möglichkeit, eigene Images sowie persistenten Speicher für Benutzerprofile und im Team nutzbare Dateifreigaben einzubinden. Beim Tarif "Teams" handelt es sich um eine monatlich buchbare Mietlizenz mit Support am nächsten Arbeitstag. Der jährlich buchbare Plan "Enterprise" bietet Support noch am selben Arbeitstag.
Der Enterprise-Plan ergänzt zudem weitere Funktionen, wie ein Entwickler-API und individuelles Branding. Hinzu gesellt sich das Session Staging, mit dem Admins eine bestimmte Anzahl an Sitzungen vorab starten können, um die Bereitstellung an Endanwender zu beschleunigen. Weiterhin stellen Administratoren mittels Session Casting nach Bedarf externe URLs bereit, die automatisch eine Sitzung starten. Diese URLs kommen optional auch ohne Authentifizierung aus oder bieten zusätzlichen Schutz per Captcha. Per Session Sharing geben Benutzer ihre laufende Sitzung mittels einer speziellen URL für andere authentifizierte Benutzer frei, die so diese Sitzung anzeigen und auch mit ihr interagieren können.
Bei der Installation auf eigener Infrastruktur offeriert Kasm die beiden Pläne "Professional" und "Enterprise" jeweils als jährlich buchbare Mietlizenz. Beide lizenziert Kasm wahlweise auf Basis benannter Benutzer (Named User) oder basierend auf gleichzeitiger Nutzung (Concurrent Use). Der Leistungsumfang des Pakets "Professional" entspricht der SaaS-Variante "Teams". Die Variante "Enterprise" ergänzt die Funktionen des SaaS-Tarifs um eine automatische Skalierung von Ressourcen. Dies deckt VMware vSphere sowie die Cloudanbieter Amazon, DigitalOcean, Google, Microsoft und Oracle ab.
Eingeschränkt kostenfrei
Als Besonderheit bietet Kasm die Community-Edition (CE) mit Einschränkungen kostenfrei an. Einzelanwender und gemeinnützige Organisationen dürfen die Workspaces kostenlos produktiv einsetzen, alle weiteren Unternehmenskunden nur zu Testzwecken. Die CE ist zudem limitiert auf fünf gleichzeitige Sitzungen und die Unterstützung der Gemeinschaft über den öffentlichen Issue Tracker des Herstellers.
Der Funktionsumfang entspricht weitestgehend dem des Tarifs "Enterprise". Die CE muss allerdings auf das individuelle Branding und die automatische Skalierung von Ressourcen verzichten. Letzteres erscheint beim Limit von fünf gleichzeitigen Sitzungen verschmerzbar. Weiterhin beschneidet Kasm in der CE den Web Traffic Filter, der nur basierend auf vom Admin gepflegten Richtlinien arbeitet. In den bezahlten Tarifen bietet Kasm zusätzlich einen vom Hersteller gepflegten Webdienst, der den Zugriff auf Webseiten basierend auf Kategorien sperrt.
Installationsfrei dank VNC
Kasm verzichtet auf native Clientanwendungen und erfordert somit auf Seiten der Endanwender keinerlei Installation. Stattdessen laufen die Sitzungen komplett im Browser ab. Die Basis hierfür bildet ein eigenes Remote-Protokoll namens KasmVNC, das der Hersteller als Open-Source-Projekt unter der GNU General Public License version 2 (GPLv2) auf der Plattform GitHub pflegt.
Wie der Name bereits impliziert, ist das Protokoll mit dem Virtual Network Computing (VNC) verwandt, das unter der Haube wiederum das Remote Framebuffer Protocol (RFB) verwendet. Kasm weist allerdings ausdrücklich darauf hin, dass sich KasmVNC zugunsten von Funktionalität und Sicherheitsaspekten von der ursprünglichen RFB-Spezifikation gelöst hat. KasmVNC funktioniert daher ausschließlich im Browser und ist inkompatibel zu anderweitigen VNC-Clients.
Anders als herkömmliche Implementierungen von VNC unterstützt KasmVNC Benutzernamen und Passwörter mit unbegrenzter Länge und Komplexität. Auf der Habenseite verbucht das Protokoll weiterhin eine deutlich verbesserte Komprimierung und damit einhergehende Performance sowie eingebaute Data Loss Prevention (DLP) durch Begrenzung der Datenübertragung und Protokollierung der Tastenanschläge und der Nutzung der Zwischenablage bei schmalbandigen Verbindungen oder hoher Latenz.
Neben der Übertragung der Zwischenablage zwischen Client und Server versteht sich KasmVNC auch auf Up- und Downloads von Dateien, Mapping von Webcams, bidirektionale Audioübertragung, benutzerdefinierte Einstellungen der Streamingqualität sowie erweiterte Einstellungen. All dies steuern Endanwender mittels eines vom linken Bildrand herausklappbaren Menüs (Bild 1). Admins können dabei durch serverseitige Richtlinien steuern, welche Optionen der Client den Anwendern anbietet und welche nicht.
Bild 1: KasmVNC erweitert das VNC-Protokoll um Zusatzfunktionen und läuft komplett im Browser.
Flexible und skalierbare Infrastruktur
Kasm unterstützt offiziell die Linux-Distributionen Ubuntu, Debian, CentOS sowie Oracle Linux, und dies in Verbindung mit den Prozessor-Architekturen AMD64 und ARM64. Auf Letzterer harmonieren die Kasm Workspaces sogar mit Raspberry Pi OS. Der Hersteller verweist darauf, dass die Workspaces ohne offiziellen Support auf jedem Linux-Betriebssystem funktionieren sollten, auf dem bash, openssl, Docker CE und Docker Compose vorinstalliert sind. Die Onlinedokumentation beschreibt exemplarisch die Installation auf Red Hat Enterprise Linux (RHEL).
Als Mindestvoraussetzung nennt Kasm einen einzelnen Server mit zwei Prozessorkernen, 4 GByte Hauptspeicher sowie 50 GByte Festspeicher, verbunden mit dem Hinweis, dass mit steigender Nutzung auch der Ressourcenbedarf ansteigt. Einem einzelnen Container und damit einer Benutzersitzung weist Kasm standardmäßig zwei Kerne sowie 2768 MByte Hauptspeicher zu.
Im einfachsten Fall genügt ein alleinstehender Server, der sämtliche Dienste der Kasm Workspaces ausführt. Alternativ dokumentiert der Hersteller die verteilte Installation der benötigten Rollen auf mehreren Servern, um diese in unterschiedlichen Sicherheitszonen unterzubringen oder auf mehrere geografische Standorte zu verteilen. Dabei hält ein zentraler Datenbankserver die Konfiguration der Umgebung.
Ein oder mehrere Webserver bilden den Zugriffspunkt für Endanwender, während die Container und damit die eigentlichen Sitzungen der Anwender agentenbasiert ausgeführt werden. Optionale Verbindungsproxys binden zusätzlich manuell installierte oder automatisch skalierte Server über RDP, VNC oder SSH ein, sodass die Kasm Workspaces neben ihrer Kernfunktionalität bei Bedarf etwa auch Windows Server integrieren.
Zur Installation größerer Umgebungen stellt Kasm auf der Plattform GitHub Ansible-Playbooks für verschiedene Szenarien bereit. Weiterhin unterstützt der Hersteller die Installation in den Clouds der Anbieter Amazon, DigitalOcean sowie Oracle mithilfe von Terraform-Projekten. Im Rahmen unseres Tests haben wir uns jedoch auf die Installation der Community-Edition auf einem einzelnen Server beschränkt.
Hilfreiche Einweisung
Neben der leicht nachvollziehbaren Dokumentation unterstützt Kasm die Installation und Administration der Umgebung mit kurzen Videotutorials zu verschiedenen Themen. Für unser Setup hatten wir einen x64-Server unter Ubuntu 22.04 vorbereitet und zunächst mit allen aktuellen Updates versorgt. Daraufhin folgten wir der Onlinedokumentation des Herstellers und dessen Empfehlung, die Installation zusätzlich mit Swap-Speicher auszustatten:
cd /tmp
curl -O https://kasm-static-content.s3.amazonaws.com/kasm_release_1.14.0.7f3582.tar.gz
tar -xf kasm_release_1.14.0.7f3582.tar.gz
sudo bash kasm_release/install.sh --accept-eula --swap-size 8192
Der letzte der vier Befehle installiert die Kasm Workspaces entsprechend unbeaufsichtigt mit automatischer Akzeptanz der Lizenzbestimmungen und einer Swap-Partition von 8 GByte. Das Vorgehen basiert weiterhin auf der Annahme, dass der Server Verbindung zum Internet hat. Alternativ beschreibt Kasm die nötigen Schritte für eine Offlineinstallation auf AMD64- oder AMR64-Systemen.
Nachdem die Installation in wenigen Minuten erledigt war, präsentierte die Setuproutine abschließend eine Reihe von Anmeldeinformationen, neben Passwörtern und Token für die Datenbank und Schnittstellen des Systems vor allem Benutzernamen und Passwörter zur Anmeldung am Webfrontend für den initialen Administrator "admin@kasm.local" und den ersten Benutzer "user@kasm.local".
Das Webfrontend erreichten wir per HTTPS unter dem Namen des Servers, wobei wir eine Warnung im Hinblick auf das selbstsignierte Zertifikat des Servers akzeptieren mussten. Später konnten wir das Zertifikat durch ein eigenes mit vertrauenswürdiger Zertifikatskette austauschen. Zunächst orientierten wir uns aber im Webfrontend und änderten das Passwort des Admin-Benutzers.
Lost in Translation
Das Webfrontend, bestehend aus einer hierarchischen Menüstruktur auf der linken Seite und einem Hauptbereich mit allen Optionen des gewählten Menüpunkts rechts, erwies sich als sinnvoll aufgebaut und intuitiv bedienbar. Die Webseite orientiert sich automatisch an der Sprache des aufrufenden Browsers und präsentierte sich somit in grammatikalisch einwandfreiem Deutsch.
Lediglich die Übersetzung einzelner Wörter deutete darauf hin, dass offenbar ein maschineller Dolmetscher am Werk war, der sich nicht immer als kontextsicher erwies. So erschien uns die Übersetzung des Dashboards als Instrumententafel oder Armaturenbrett noch nachvollziehbar, der Sprung von "Save" zu "Sparen" statt "Speichern" weniger. Weiterhin machte das Webfrontend einen Pool gleichartiger Ressourcen zu einem "Schwimmbad" und eine "Deployment Zone" mal zu einer "Bereitstellungszone", mal zu einem "Aufmarschgebiet". Stilblüten dieser Art veranlassen den Admin aber allenfalls zum Schmunzeln und wirken sich nicht negativ auf die Bedienbarkeit des Webfrontends aus.
AD-Anbindung per LDAP
Der Hersteller empfiehlt, den exemplarisch ab Werk vorhandenen Benutzer zu löschen und für den produktiven Einsatz eigene Benutzerkonten anzulegen. So konnten wir unter "Zugriffsverwaltung / Benutzer" lokale Konten einrichten, die nur innerhalb der Kasm Workspaces existierten, oder aber unter "Zugriffsverwaltung / Authentifizierung" externe Identitätsprovider einbinden. Kasm unterstützt hier LDAP, SAML sowie OIDC.
Wir integrierten unser Active Directory (AD) per LDAP. Dabei konnten wir LDAPS in Verbindung mit Authentifizierung verwenden und auch die Suchbasis sowie einen Suchfilter für Benutzerobjekte definieren. Anschließend meldeten wir uns mit mehreren Benutzern aus unserem AD am Webfrontend an, woraufhin der Server automatisch für die jeweiligen Benutzer Konten innerhalb der Kasm Workspaces anlegte. Alle Accounts fügt der Server automatisch unter "Zugriffsverwaltung / Gruppen" der Gruppe "All Users" mit der Priorität 1000 hinzu. Diese Gruppe mit der niedrigsten Priorität empfiehlt der Hersteller zur Zuweisung globaler Einstellungen, die für alle Nutzer gelten sollen.
Zahlreiche Richtlinien für Benutzergruppen
So aktiviert Kasm standardmäßig zahlreiche Funktionen, die wir in den Eigenschaften der Gruppe auf der Registerkarte "Einstellungen" wiederfanden. Ab Werk sind hier etwa Audiostreaming (allow_ kasm_audio) oder bidirektionales Kopieren zwischen Client und Server über die Zwischenablage (alboard_down, allow_kasm_clipboard_up) erlaubt. Wir fügten der Empfehlung von Kasm folgend die Einstellung mit dem Namen "enable_totp_two_factor" mit dem Wert "WAHR" hinzu. Bei ihrer nächsten Anmeldung forderte das Webfrontend daraufhin lokale sowie auch aus dem AD synchronisierte Benutzer auf, ein TOTP-Verfahren in einer beliebigen Authenticator-App mithilfe eines QR-Codes einzurichten. Alternativ dazu unterstützt Kasm auch physische TOTP-Token.
Zusätzlich legten wir eine weitere Gruppe an, über die wir unsere Workspaces freigeben wollten, und konfigurierten für diese Gruppe eine Priorität von 200. Treten Einstellungen in Konflikt, gewinnt die Gruppe mit der niedrigsten Priorität. So konnten wir gezielt für einzelne Gruppen von Benutzern restriktivere oder abweichende Einstellungen definieren.
User fix einsortiert
Als besonders praktisch erwies sich, dass wir per LDAP authentifizierte Benutzer basierend auf ihrer Gruppenmitgliedschaften im AD automatisch in Gruppen innerhalb von Kasm aufnehmen konnten. Dazu konfigurierten wir in den Eigenschaften der Kasm-Gruppe auf der Registerkarte "SSO-Gruppenzuordnungen" eine AD-Gruppe mithilfe ihres Distinguished Names. Kasm wertet diese Zuordnung bei jeder Anmeldung eines Benutzers aufs Neue aus und entfernt oder ergänzt Benutzer passend zu ihrer Gruppenmitgliedschaft im AD. Voraussetzung dafür ist lediglich, dass die auszuwertende AD-Gruppe sich ebenso wie der jeweilige Benutzer innerhalb der im LDAP-Provider global definierten Suchbasis befindet.
So gerüstet widmeten wir uns nun der Bereitstellung von Arbeitsbereichen. Kasm bindet dazu im Bereich "Arbeitsbereiche / Registrierung" die hauseigene Docker-Registry ein, die auf der Registerkarte "Verfügbare Arbeitsbereiche" zahlreiche vorgefertigte Abbilder für Desktops diverser Linux-Distributionen und einzelne Anwendungen mitbringt, darunter AlmaLinux, Alpine, mehrere Versionen von Ubuntu, Debian und Oracle Linux sowie Browser, produktive Apps oder auch Spieleklassiker, wie Doom oder SuperTuxCart (Bild 2).
Bild 2: Die Docker-Registry von Kasm bringt zahlreiche fertige Desktops und Applikationen mit.
Wir konnten die Arbeitsbereiche direkt aus dieser Übersicht auf unserem lokalen Server installieren oder aber unter dem Menüpunkt "Arbeitsbereiche / Arbeitsbereiche" hinzufügen. Letzteres hatte den Vorteil, dass direkt bei der Installation erweiterte Einstellungen zur Verfügung standen. So erlaubt Kasm es an dieser Stelle, die aus dem Abbild entstehenden Container mit mehr Kernen, Speicher oder GPUs zu versorgen, persistenten Speicher zuzuordnen sowie Docker-Konfigurationen im JSON-Format zu übergeben.
Zunächst überzeugten wir uns aber davon, dass wir Sitzungen starten konnten. Kasm hatte alle Arbeitsbereiche der Gruppe "All Users" zugeordnet. Wir konnten sie in der Gruppenverwaltung entfernen und unseren eigenen Gruppen zuordnen. Sobald wir uns als Benutzer anmeldeten, präsentierte uns das Webfrontend alle freigegebenen Arbeitsbereiche, die wir ohne Probleme starten konnten.
Sie erschienen daraufhin in der Ansicht des Admins unter "Sitzungen / Sitzungen". Benutzer haben die Wahl zwischen "Ausloggen" und "Sitzung löschen". Ersteres trennt die Sitzung, der zugehörige Container bleibt aber serverseitig bestehen und belegt weiterhin Ressourcen. Nur das Löschen beendet den Container vollständig und gibt die Ressourcen wieder frei. Als Administrator löschten wir Container manuell oder definierten wahlweise in den Einstellungen des Arbeitsbereichs oder der Benutzergruppe ein Zeitlimit für Sitzungen.
Persistenter Speicher für persönliche Daten
Alle Container sind grundsätzlich flüchtig, sie vergessen beim Löschen alle Einstellungen sowie Daten. Wir folgten dem Videotutorial von Kasm, um persistenten Speicher für persönliche Daten der Benutzer sowie auch Gruppen zu ergänzen. Dazu legten wir zunächst per Shell ein Verzeichnis für Benutzerprofile und exemplarisch ein weiteres für unsere Benutzergruppe "Verwaltung" an:
sudo mkdir -p /data/profiles
sudo mkdir -p /data/shares/verwaltung
sudo chown -R 1000:1000 /data
Die Änderung von Eigentümer und Gruppe des übergeordneten Verzeichnisses jeweils auf die ID 1000 sorgt dafür, dass der Kasm-Daemon in den Pfaden sein Werk verrichten kann. Alles Weitere erledigten wir anschließend über das Webfrontend. Dazu editierten wir die Einstellungen unserer Arbeitsbereiche und ergänzten dort jeweils das Feld "Dauerhafter Profilpfad". Dabei akzeptiert das Webfrontend Variablen. So generiert etwa ein Pfad der Form
/data/profiles/{image_id}/{username}
ein separates Verzeichnis pro Arbeitsbereich und Benutzer. Neben lokalen Mount-Punkten verwendet Kasm alternativ AWS-S3-Objektspeicher als Ziel für die Benutzerprofile. Das Feld "Volumen-Zuordnungen" erwartet Code im JSON-Format. Hierüber verbanden wir das gemeinsame Verzeichnis unserer Gruppe, wie im nachfolgenden Listing dargestellt:
{
     "/data/shares/verwaltung": {
        "bind": "/shares",
        "mode": "rw",
        "uid": 1000,
        "gid": 1000,
        "required": false
      }
}
Statt pro Arbeitsbereich konnten wir diese Einstellungen auch pro Gruppe definieren, sodass jede Gruppe unabhängig vom Arbeitsbereich Zugriff auf ihr jeweiliges Verzeichnis erhält.
Konfiguration per Dateizuordnung
Ebenfalls pro Arbeitsbereich, Gruppe oder auch einzelnem Benutzer konfigurierten wir auf der Registerkarte "Dateizuordnung" die Einstellungen einzelner Dateien, die Kasm beim Start in die Arbeitsbereiche einbindet. Der Hersteller führt als Beispiel das Laden von Chrome-Richtlinien in Browsersitzungen an, doch die Methode kann sowohl mit Textdateien als auch mit beliebigen anderen Dateien bis zu einer Größe von jeweils 5 MByte umgehen.
Wenn ein Benutzer eine Sitzung erstellt, wendet Kasm die Dateizuordnungen in der Reihenfolge von Arbeitsbereich, Gruppen und zuletzt benutzerdefinierten Vorgaben an. Nur die erste Dateizuordnung, die auf dasselbe Ziel ausgerichtet ist, greift dabei. So konnten wir individuelle Konfigurationen und Einstellungen in die vom Hersteller bereitgestellten Images einfügen, was in vielen Fällen die Pflege eigener Images erübrigt.
Für Fortgeschrittene beschreibt Kasm in der Dokumentation den Bau eigener Images. Hierfür empfiehlt der Hersteller das hauseigene Image "kasmweb/core-ubuntu-focal" auf Basis von Ubuntu 20.04 LTS als Grundlage, doch auch beliebige andere Docker-Images dürfen als Vorlage dienen. Alternativ verwandelt Kasm mithilfe der Funktion "Create Image from Session" Schnappschüsse von laufenden Sitzungen in Images.
Integration von Windows
Neben der Bereitstellung von Linux-Anwendungen und -Desktops mithilfe von Containern integriert Kasm zusätzlich auch die Windows-Welt, dies allerdings nur auf Basis von herkömmlichen VMs. Hiervon überzeugten wir uns anhand eines Remote-Desktop-Sitzungshosts unter Windows Server 2022. Für die optimale Integration mit dem Webclient bietet der Hersteller einen Agenten als MSI-Paket, den wir zunächst auf dem Server installierten. Nun legten wir im Webfrontend unter "Infrastruktur / Server" den Server an.
Das Webfrontend lieferte uns daraufhin Anweisungen zur Agenteninstallation, die wir unter Windows in einer administrativen Kommandozeile ausführten, um den Agenten in Kasm zu registrieren. Im zweiten Schritt fügten wir den Server dann auch den Arbeitsbereichen hinzu und konnten anschließend neben den Linux-Containern Windows-Sitzungen verwenden (Bild 3).
Bild 3: Das Webfrontend integriert Linux- und Windows-Desktops sowie -Anwendungen unter einer Haube.
In größerem Maßstab versteht sich Kasm auch darauf, Pools von Servern automatisch zu skalieren oder eine mit den Bordmitteln der Microsoft Remotedesktopdienste betriebene Farm einzubinden.
Fazit
Wie zu Beginn unseres Tests dargestellt, hat der Remote-Zugriff auf Rechner eine lange Geschichte und diverse technologische Ansätze hervorgebracht – samt Stärken und Schwächen. Kasm verfolgt mit den Workspaces in zweierlei Hinsicht einen innovativen Ansatz zur Virtualisierung von Applikationen und Desktops. So setzt das hauseigene Protokoll KasmVNC konsequent auf die Ausführung im Browser und erweitert das ursprüngliche VNC um nützliche Funktionen.
Docker-Container als Unterbau sind zudem flexibel in der Handhabung und kommen im Vergleich mit herkömmlichen VMs mit deutlich weniger Ressourcen aus. Mit seinen vorgefertigten Images deckt der Hersteller bereits viele Anwendungsfälle ab und bietet mit dem persistenten Speicher sowie den Dateizuordnungen Raum für Individualisierung. Fortgeschrittene Nutzer passen die Docker-Images an oder binden eigene Images ein. Bei Bedarf integriert Kasm auch die Windows-Welt, der Fokus liegt aber klar auf grafischen Anwendungen unter Linux.
(dr)
So urteilt IT-Administrator
Bewertung
KasmVNC10
Benutzerverwaltung8
Docker-Registry10
Speicherverwaltung8
Windows-Integration6
Dieses Produkt eignet sich
optimal
für Unternehmen, die Applikationen auf Basis von Linux bereitstellen möchten.
bedingt
für Organisationen, die neben Linux auch Windows-Anwendungen virtualisieren möchten.
nicht
für Unternehmen, die kein Interesse an Desktop-Virtualisierung haben.