Handliche Desktop-Virtualisierung im Webbrowser

Aus LinuxUser 05/2024

Handliche Desktop-Virtualisierung im Webbrowser

© inkdrop / 123RF.com

Container-Jongleur

Bei Kasm Workspaces steht das einfache Streamen von Apps und Distributionen auf dem Programm.

Haben Sie einmal daran gedacht, in Ihrem Browser containerisiert einen Webbrowser laufen zu lassen, der nicht mit dem Internet agiert? Möchten Sie Web-Apps erstellen, die sich ebenfalls in verschiedenen Browsern testen lassen? Wenn Sie diese Ideen interessant finden, sollten Sie sich die Open-Source-Anwendung Kasm Workspaces [1] ansehen. Der US-Hersteller Kasm Technologies bezeichnet seine Software als Container Streaming Platform.

Kasm Workspaces, im Folgenden kurz Kasm genannt, führt Anwendungen und Linux-Distributionen in Ihrem Webbrowser aus. Diese auf Docker basierende Lösung können Sie auf eigener Hardware hosten oder in einer virtuellen Maschine betreiben. Ihr Funktionsumfang bietet sich für Heimserver und Unternehmen gleichermaßen an. Die einfach skalierbare Architektur kann gleichermaßen wenige oder auch Hunderte von Nutzern unterstützen. Kasm punktet dabei mit Funktionen wie einer nahtlosen Zwischenablage und Up- und Download von Dateien zwischen einzelnen Workspaces und dem lokalen Host-System. Das gilt auch für die mobilen Plattformen Android und iOS, wo sich Kasm als Progressive App nutzen lässt.

Rendering per Kasm-VNC

Kasm nutzt die DevOps-fähige Containerized Desktop Infrastructure (CDI [2]), um per Webbrowser zugängliche On-Demand-Docker-Container zu erstellen. Damit unterscheidet es sich von Konkurrenten wie Citrix Workspaces oder VMware Horizon, die den Ansatz der Virtual Desktop Infrastructure (VDI) nutzen. Zu den Anwendungsbereichen von Kasm zählen neben App-Streaming unter anderem Remote Browser Isolation (RBI), Data Loss Prevention (DLP), Desktop as a Service (DaaS), Secure Zero Trust Remote Access Services (RAS) und das Open-Source-Intelligence-Framework (OSINT [3]). Das Rendering der grafikbasierten Container setzt auf dem hauseigenen Web-nativen Open-Source-Projekt KasmVNC [4] auf.

KasmVNC und Apache Guacamole ermöglichen den webbasierten Fernzugriff auf einen Desktop oder eine Anwendung. Obwohl VNC im Namen steckt, unterscheidet sich KasmVNC von anderen VNC-Varianten. Der Zugriff erfolgt von jedem modernen Browser aus und funktioniert ohne die bekannten VNC-Viewer-Anwendungen. KasmVNC verwendet auf Server- und Benutzerebene eine moderne YAML-basierte Konfiguration, die eine einfache Verwaltung ermöglicht.

Schnell ausgerollt

Kasm ist On-Premises, als SaaS für Unternehmen und für die private Nutzung als Kasm Cloud Personal erhältlich. Es ist auf den derzeit unterstützten Distributionen (siehe Tabelle “Offiziell unterstützte Distributionen”) in wenigen Minuten installiert. Aktuell liegt die Anwendung in der Version 1.15.0 vor.

Wir haben für diesen Test Kasm auf einem Unraid-Server in einer VM unter Ubuntu 23.10 installiert, wo die Anwendung bei den Apps als Docker-Container bereitsteht. Zusätzlich stellten wir Kasm auf einer Linode-Server-Instanz bereit. Dabei kam in beiden Fällen die Community Edition von Kasm Workspaces zum Einsatz, die bis zu fünf gleichzeitige Desktop-Sitzungen erlaubt und viele der Funktionen der Professional- und Enterprise-Versionen enthält.

Distribution

Version

Architektur

CentOS

7, 8, 9

AMD64, ARM64

Debian

10, 11, 12

AMD64, ARM64

Oracle Linux

7, 8, 9

AMD64, ARM64

Raspberry Pi OS

10, 11, 12

ARM64

Ubuntu

20.04, 22.04

AMD64, ARM64

Kasm lässt sich nicht nur auf 64-Bit-PCs installieren, sondern auch auf der ARM-Plattform, beispielsweise auf dem Raspberry Pi. Die Software bietet die beiden Installationsmodelle Single Server und Multi Server. Bei letzterer Option können Sie auf unterschiedlichen Maschinen verschiedene Rollen installieren, wie etwa Web App Server, Datenbank Server, Agent Server oder ein Connection Proxy. Kasm empfiehlt, die einzelnen Rollen in unterschiedlichen Subnetzen zu platzieren und durch Firewalls zu trennen.

Die Version für Linux mit 35 MByte Download-Umfang liefert Kasm Technologies als Tarball aus. Die minimalen Hardwarevoraussetzungen umfassen 2 CPU-Kerne, 4 GByte Arbeitsspeicher sowie 50 GByte Platz auf einer SSD oder NVMe. Zusätzlich empfiehlt der Hersteller eine Swap-Partition – wenn mehrere User auf die Instanz zugreifen, geht die minimale RAM-Ausstattung schnell zur Neige. Die Webseite empfiehlt zur Installation den Wechsel in das Verzeichnis /tmp, von wo das Paket entpackt und nach dem Akzeptieren der EULA über das Installationsskript aus in wenigen Minuten installiert wird.

In der Dokumentation heißt es, das Skript installiere Docker und alle weiteren Abhängigkeiten mit. Das war im Test unter Ubuntu 23.10 nicht der Fall, wohl, weil das keine LTS-Version ist. Auch bei Debian-Derivaten bemängelte der Kasm-Installer das Fehlen von Docker, selbst nachdem Docker Compose installiert war. Wie Sie hier trotzdem weiterkommen, zeigt Listing 1, in dem Sie je nach vorhandener Hardware die Architekturangabe anpassen. Gegebenenfalls stellen Sie außerdem auch die Docker-Compose-Version auf das neueste Release [5] um.

Listing 1

Docker Compose installieren

$ sudo apt install curl
$ sudo mkdir -p /usr/local/lib/docker/cli-plugins
$ sudo curl -L https://github.com/docker/compose/releases/download/v2.24.6/docker-compose-linux-amd64 -o /usr/local/lib/docker/cli-plugins/docker-compose
$ sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose

Erster Eindruck

Am Ende der Installation erhalten Sie eine Seite mit allen nötigen Credentials (Abbildung 1), von der Sie sicherheitshalber einen Screenshot erstellen. Nach Eingabe der Domain oder IP-Adresse tragen Sie die Admin-Credentials in die Maske ein und finden sich im Kasm-Dashboard wieder. Es weist links eine Seitenleiste auf und umfasst im Hauptfenster die zwei Abschnitte Arbeitsbereiche und Admin. Nach der ersten Anmeldung befinden Sie sich automatisch im Admin-Bereich (Abbildung 2).

Abbildung 1: Zum Abschluss der Installation werden die Zugangsdaten für die Plattform selbst sowie für Redis und Guacamole angezeigt. Diese Angaben sollten Sie zur Sicherheit kopieren.

Abbildung 1: Zum Abschluss der Installation werden die Zugangsdaten für die Plattform selbst sowie für Redis und Guacamole angezeigt. Diese Angaben sollten Sie zur Sicherheit kopieren.


Abbildung 2: Nach der ersten Anmeldung bietet das Dashboard Zugriff auf alle Funktionen von Kasm und vermittelt einen Überblick über die Nutzung sowie weitere statistische Werte.

Abbildung 2: Nach der ersten Anmeldung bietet das Dashboard Zugriff auf alle Funktionen von Kasm und vermittelt einen Überblick über die Nutzung sowie weitere statistische Werte.

Zunächst gilt es wie üblich, die Passwörter für User und Admin zu ändern. Das erledigen Sie über das Symbol Ad für Admin rechts oben. Dort können Sie unter anderem zusätzlich SSH-Schlüssel hinterlegen oder eine Zwei-Faktor-Authentisierung aktivieren. Neue User legen Sie links in der Leiste unter Zugriffsverwaltung | Benutzer an (Abbildung 3). Hier definieren Sie auch genau, was ein User darf und was nicht. Unter Zugriffsverwaltung | Authentifizierung haben Sie bei der Einbindung verschiedener Authentifizierungsmethoden die Wahl zwischen LDAP, SAML, OpenID oder einem physischen Token.

Abbildung 3: Im Reiter <span class="ui-element">Zugriffsverwaltung</span> &auml;ndern Sie Passw&ouml;rter und legen neue Benutzer respektive Gruppen an. Unter <span class="ui-element">Authentifizierung</span> offeriert Kasm verschiedene Authentifizierungsmethoden.

Abbildung 3: Im Reiter Zugriffsverwaltung ändern Sie Passwörter und legen neue Benutzer respektive Gruppen an. Unter Authentifizierung offeriert Kasm verschiedene Authentifizierungsmethoden.

Im Reiter Arbeitsbereiche finden Sie später die per Docker installierten Anwendungen und Distributionen (Abbildung 4). Das Ausrollen dieser Workspaces erfolgt im Bereich Admin (Abbildung 5). Die standardmäßig angebotenen Docker-Images, die Sie unter Arbeitsbereiche | Register | Verfügbare Arbeitsbereiche sehen, entstammen dem von Kasm gepflegten Repository. Unter Registrierungen (Abbildung 6) tragen Sie bei Bedarf weitere Repos ein, wie etwa das mit über 70 weiteren Anwendungen gefüllte Archiv von LinuxServer.io [6]. Auch eigene Repositories lassen sich hier aufsetzen [7].

Abbildung 4: Im Reiter <span class="ui-element">Arbeitsbereiche</span> sehen Sie alle installierten Anwendungen und Distributionen und starten Sie per Mausklick.

Abbildung 4: Im Reiter Arbeitsbereiche sehen Sie alle installierten Anwendungen und Distributionen und starten Sie per Mausklick.


Abbildung 5: Alle Anwendungen &ndash; hier die Distribution Fedora &ndash; werden &uuml;ber eine sichere Verbindung in den Browser geladen.

Abbildung 5: Alle Anwendungen – hier die Distribution Fedora – werden über eine sichere Verbindung in den Browser geladen.


Abbildung 6: Das Kasm-Repository liefert eine runde Auswahl an Anwendungen und Distributionen. Bei Bedarf binden Sie weitere Repositories ein, wie hier das Archiv von LinuxServer.io.

Abbildung 6: Das Kasm-Repository liefert eine runde Auswahl an Anwendungen und Distributionen. Bei Bedarf binden Sie weitere Repositories ein, wie hier das Archiv von LinuxServer.io.

Ein Mausklick auf eine der Kacheln in einem der Repositories liefert eine kurze Beschreibung und eine Schaltfläche zur Installation der jeweiligen Anwendung. Das Ausrollen eines Anwendungs- oder Distributions-Containers dauert etwas länger als bei ähnlichen Plattformen. Im Schnitt warten Sie bei Anwendungen etwa fünf und bei Distributionen rund zehn Minuten. Bis dahin sehen Sie unter Arbeitsbereiche ein Warndreieck auf dem Emblem des entsprechenden Containers.

Das Control Panel

Installierte Workspaces bieten über ein links oben ausklappbares Control Panel (Abbildung 7) Möglichkeiten zur Einflussnahme auf die laufende Anwendung. Sie können unter anderem eine Webcam oder die Zwischenablage einbinden, Up- und Downloads zulassen, die Streaming-Qualität anpassen oder die Sitzung teilen.

Abbildung 7: &Uuml;ber eine ausklappbare Kontrollleiste lassen sich Workspaces (hier Firefox) in vielerlei Hinsicht steuern. Sie k&ouml;nnen unter anderem Ressourcen des Hosts oder zus&auml;tzliche Displays einbinden.

Abbildung 7: Über eine ausklappbare Kontrollleiste lassen sich Workspaces (hier Firefox) in vielerlei Hinsicht steuern. Sie können unter anderem Ressourcen des Hosts oder zusätzliche Displays einbinden.

Falls Sie beim Surfen im Browser auf Ihrem Host auf einen Link stoßen, dem Sie nicht vertrauen, müssen Sie nicht erst zu Kasm wechseln, um den Link isoliert zu öffnen. Kasm bietet dafür die Browser-Erweiterung Kasm Open in Isolation an [8]. Sie funktioniert mit Firefox und Chrome sowie weiteren Browsern, die deren Engine einsetzen. Ein Rechtsklick auf einen Link fördert dann ein Kontextmenü mit einem Eintrag zutage, über den der Link sich in Kasm im entsprechenden Browser isoliert öffnet. So bleiben eventuelle Hacks vom System abgeschottet und landen mit dem Löschen des Browser-Containers im Nirwana.

Für die Verwendung in Unternehmen bietet Kasm weitere fortgeschrittene Optionen. So können Sie etwa unter Infrastruktur | Server weitere externe Server einbinden, die dann unter Workspaces erscheinen und den Zugriff von dort ermöglichen. Das klappt via KasmVNC, RDP, VNC oder SSH. Die Sitzungsverwaltung erlaubt dedizierte Einstellungen zu Lebenszeit, Speicherverbrauch und vielen anderen Aspekten der Anwendungen.

Preisgestaltung

Kasm verwendet ein ähnliches Preismodell wie etwa Proxmox, bei dem sich die Software grundsätzlich kostenfrei nutzen lässt. Für zusätzliche Funktionen und Support entstehen Kosten. Kasm bietet bei Self-Hosting auf einem Server neben der kostenfreien, leicht eingeschränkten Community Edition noch die Editionen Professional für 5 US-Dollar sowie Enterprise für 10 US-Dollar, jeweils pro User und Monat (Abbildung 8). Diese Preise gelten für eine jährliche Subskription. Für den Einsatz zu Hause reicht die Community Edition in den allermeisten Fällen völlig aus.

Abbildung 8: Das Bezahlmodell von Kasm erlaubt die kostenfreie Nutzung der Anwendung, wenn Sie keinen Support ben&ouml;tigen. Dar&uuml;ber hinaus gibt es gestaffelte Preise f&uuml;r unterschiedliche Support-Angebote.

Abbildung 8: Das Bezahlmodell von Kasm erlaubt die kostenfreie Nutzung der Anwendung, wenn Sie keinen Support benötigen. Darüber hinaus gibt es gestaffelte Preise für unterschiedliche Support-Angebote.

Die Workspaces Cloud Software as a Service ist eine von Kasm bereitgestellte und verwaltete Lösung, bei der Sie sich ganz auf die Bereitstellung von Diensten für Ihre Benutzer konzentrieren können. Cloud-Implementierungen haben ein Minimum von 25 Benutzern. Die Preise pro Monat und User beginnen bei der Personal Edition bei 5 US-Dollar, Teams und Enterprise kosten 18 respektive 25 US-Dollar pro User und Monat.

Fazit

Kasm erlaubt unter anderem Anwendungsentwicklern das Testen von Anwendungen in verschiedenen Distributionen, ohne dafür jeweils virtuelle Maschinen vorhalten zu müssen. Webentwickler erkunden die Funktionalität ihrer Apps isoliert in unterschiedlichen Browsern. Heimanwendern offeriert die Lösung sichere Browser-Sitzungen, die hinterher ohne Spuren gelöscht werden. Selbst Gamer kommen mit Spielen wie Doom zur Entspannung zwischendurch auf ihre Kosten.

Die Plattform verfügt über eine ausführliche Dokumentation [9], zusätzlich stellt Kasm Technologies einige Youtube-Videos [10] bereit. Einen guten Überblick über die Funktionen von Kasm Workspaces bietet ein Video auf dem Youtube-Kanal von Learn Linux TV [11]. Einen ersten Eindruck können Sie sich auch mithilfe der Demo-Version [12] von Kasm verschaffen. (jlu)

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 05/2024 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben