KASM als Dockercontainer?


ScoobyAS

Recommended Posts

Hallo zusammen,

ich weiß nicht ob ihr schon mal mit der Umgebung KASM (https://www.kasmweb.com) als sichere Möglichkeit zum Surfen im Internet zu tun hattet oder diese bereits kennt.

Zitat des Herstellers: "KASM ist eine Plattform zur Desktop- und Anwendungsisolierung. Sie ermöglicht Anwendern die Erstellung von On-Demand-Wegwerf-Umgebungen, in denen sie sicher und geschützt arbeiten können - und bildet so eine Barriere zwischen den Anwendern und Bedrohungen aus dem Internet."

 

Ich nutze KASM schon seit längerem innerhalb einer eigenen VM, frage mich nun aber ob es nicht eleganter wäre die Umgebung stattdessen direkt innerhalb eines Docker-Containers auf dem UnRAID laufen zu lassen.

In Teilen (oder ganz?) bietet KASM wohl bereits offizielle Dockercontainer an (https://hub.docker.com/u/kasmweb/#!).

Leider habe ich aber keine Ahnung wie das zu bewerkstelligen wäre diese in das UnRAID einzubinden.

 

Kann mir dazu vielleicht jemand Hilfestellung geben?

Edited by ScoobyAS
Link to comment
11 minutes ago, ScoobyAS said:

"KASM ist eine Plattform zur Desktop- und Anwendungsisolierung. Sie ermöglicht Anwendern die Erstellung von On-Demand-Wegwerf-Umgebungen, in denen sie sicher und geschützt arbeiten können - und bildet so eine Barriere zwischen den Anwendern und Bedrohungen aus dem Internet."

Ich verstehe hier den Ansatz nicht ganz, willst du Privat surfen sodass deine Dateien bei jedem beenden gelöscht werden oder willst du einfach isoliert surfen?

 

Falls du isoliert surfen willst kannst du das bereits mit meinem Firefox oder Chromium browser der in der CA App erhältlich ist.

Wenn du Privat surfen willst könntest du das auch erreichen das du dir eine user.sh anlegst auf Unraid selbst und diese in den Container einbindest das der dir nach jedem beenden den Profilordner löscht.

 

So läuft Firefox in einem Container (sprich isoliert) und es kann nichts raus aus dem Container.

Hab zB so Thunderbird, Debian Bullseye und noch ein paar andere Container so laufen, aus anderen Gründen wie du.

Link to comment

Ja genau diese prinzip hast du in einem Docker Container auch.

 

Sieh dir mal meinen Firefox (oder Chrome oder Debina Buster/Bullseye) Container von der CA App an.

Dafür brauchst du KASM nicht...

Wahrscheinlich hat KASm noch ein paar Zusatzfeatures wie ich schon sagte das der Profilordner dann gelöscht wird aber das wäre auch wie oben geschrieben schon relativ einfach lösbar.

 

Die Frage ist was du brauchst, einen isolierten Browser in dem du surfen kannst ohne das orgendwas zum Host durchkommt aber der Cookies usw speichert oderder Cookies immer löscht und nichts gespeichert wird?

 

Dein Usecase wäre mir wichtig, ein Dockercontainer ist eine isolierte Umgebung mit keinem Zugriff auf den host (bis auf das appdata verzeichnis aber selbst dort kann er nicht ausbrechen und wenn du das nicht willst musst du die anwendungsdaten nicht in das appdata verzeuchnis legen).

 

EDIT: der security layer erschließt sich mir nicht ganz und vor allem für was der gehört da das heutzutage jeder browser erkennt bzw im Container sowieso nicht ausgeführt werden kann, kein root zugriff innerhalb des containers)

Link to comment

Ich würde gerne die professionell betreute und firmenweit einsetzbare KASM Lösung innerhalb eines Dockers statt wie bislang innerhalb einer VM auf dem UnRAID betreiben.

 

Der Hersteller bietet bereits in Teilen fertige Docker für KASM an. Wäre das nun alles innerhalb eines Dockers auf dem UnRAID würde das m.E. die Pflege vereinfachen.

Link to comment
25 minutes ago, ScoobyAS said:

Ich würde gerne die professionell betreute und firmenweit einsetzbare KASM Lösung innerhalb eines Dockers statt wie bislang innerhalb einer VM auf dem UnRAID betreiben.

Willst du das Privat für dich verwenden oder willst du es jemand anders über deinen Unraid server anbieten also deren Serverlösung?

 

Also ich hab mir deren Seite grad angesehen und das ist exakt das gleiche wie wenn du Images verwendest die in der CA App zur verfügung stehen mit dem Bonus das du keine Drittanbietersoftware bzw. VM benötigst (nur als Nebenbemerkung und zur Erklärung das Bild das du mir oben geschickt hast mit der Übersicht ist eigentlich das gleiche wie die Container hier mit einem noVNC Interface funktionieren sprich: Internet (Untrusted Content) -> Remote App (Docker - kein Zugriff auf den Host oder den Client und Isoliert!) -> Client der im Browser rendert (Users) ).

 

Hier auch mal ein auszug aus deren Docker Repo:

Quote

The Kasm Server software stack is composed of a number of docker services. It is not intended for users to download these containers directly from dockerhub, but instead install the entire stack via our official installation media at kasmweb.com. The appropriate docker images will be pulled from dockerhub during installation. Kasm server can be easily deployed in a few minutes in a single server configuration, or in a distributed scalable architecture. It can run on premise, in your own Virtual Private Cloud or we can provide a fully hosted SaaS offering.

 

Was soviel heißt wie das du du zuerst deren Software installieren musst und dann pullt die Software deren proprietäre Container von DockerHub also auf Unraid ohne VM schwer lösbar.

EDIT: Es kann natrülich sein das deren Installationsscript nur Dockerimages mittels Docker Compose erstellt und einrichtet (Docker Compose ist in Unraid nicht integriert) und ein erstellen auf Unraid theoretisch möglich machen würde, müsste mir das Skript mal genauer ansehen.

Link to comment
3 minutes ago, ScoobyAS said:

Danke schon mal, dass du dir das mal ansiehst.

Probier du es bitte auch mal mit den Containern die schon jetzt in der CA App verfügbar sind, ist vom Prinzip her nichts anderes.

 

Wenn die Docker benutzen benutzt KASM auch die Isolation von den Docker Containern und verkauft das Marketing technisch nur als deren Isolation, was ja Grundsätzlich nicht verboten ist. ;)

 

Was sagst du zu dem ganzen Thema hier @mgutt? Kennst du KASM bzw weißt du was der "Security Layer" oben im Bild ist?

Vom Konzept her ist das eigentlich eine Komponente als Webinterface das auch in einem Container läuft und ein Deployment der Container ermöglich (so wie es wir haben mit der CA App und dem Docker Tab in Unraid) und dann die Komponente mit den Container selbst mit einem VNC Webinterface bzw. auch mit einem VNC Viewer soweit ich gesehen hab (gleich wie bei den vielen Varianten - nicht nur von mir - die in der CA App erhältlich sind).

Link to comment
4 hours ago, ich777 said:

Was sagst du zu dem ganzen Thema hier @mgutt? Kennst du KASM bzw weißt du was der "Security Layer" oben im Bild ist?

 

Der Layer ist ein Domain- und URL-Filter. Daraus können wir schließen, dass die Browser-Container mit einem lokalen Root-Zertifikat arbeiten, das alle (auch https) URLs an den KASM Proxy weiterleitet und von diesem filtern lässt. KASM nutzt dabei selbst auch nur Docker.

 

Der Rest ist wie Docker mit Ubuntu, Firefox oder Chrome Containern. KASM bietet noch "seemless Browsing" an. Da wird dann auch das Root-Zertifikat im PC geändert und alle URLs, die man öffnen möchte, führen dazu, dass die VNC Oberfläche aufgeht und der enthaltene Browser diese URL öffnet. Kann dein Container das? Er hat aber auch nicht gesagt, ob er das nutzt.

 

Das mit der VM habe ich nicht verstanden. In der VM läuft nur der KASM Server oder wird drüber auch gesurft @ScoobyAS? Das wäre dann ja doppelt gemoppelt.

 

Um KASM nachzubilden bräuchte man Browser-Container für die Isolation und pfSense mit Squid fürs Filtering.

 

Er möchte es nur offensichtlich nicht nachbilden, da er deine Fragen ignoriert hat ^^ Stattdessen möchte er einfach nur den KASM Core Container installieren. Allerdings ist der meiner Ansicht nach gar nicht für die manuelle Installation gedacht. Es gibt nämlich keine Dokumentation dazu. Stattdessen führt man zb in Ubuntu das Paket aus, was Docker + Compose und die ganzen KASM Docker Container installiert. Da Unraid kein Compose mitbringt, wird das auch nicht umsetzbar sein.

 

Die KASM Browser Container sind übrigens immer Vollbild. Deine auch? Weil ich habe die Diskussion wegen Krusader mitbekommen ;)

  • Thanks 1
Link to comment
2 minutes ago, mgutt said:

Kann dein Container das? Er hat aber auch nicht gesagt, ob er das nutzt.

Nein das kann mein Container natürlich nicht, aber ich glaube ihm ist das Containerkonzept prinzipiell komplett neu wie er schon oben geschrieben hat.

 

3 minutes ago, mgutt said:

Das wäre dann ja doppelt gemoppelt.

Exakt.

 

3 minutes ago, mgutt said:

Es gibt nämlich keine Dokumentation dazu.

Ich hab das skript nur kurz überflogen und gesehen das dieses Skript prüft ob Docker und Docker Compose installiert sind und danach installiert es einen niginx webserver mit propriätrem Code und führt dann eben die Weboberfläche aus.

 

5 minutes ago, mgutt said:

Die KASM Browser Container sind übrigens immer Vollbild. Deine auch? Weil ich habe die Diskussion wegen Krusader mitbekommen ;)

Das kann man sich einrichten wie man will, wenn man es direkt über einen VNC Viewer öffnet würde das natürlich funktionieren, natürlich auch mit noVNC nur sollte man sich die Auflösung vorher richtig einstellen die man will dan gibts da keine Probleme, mit der neuen noVNC version die ich erst vor einer Woche implementiert hab kannst dir sogar Übertragungsqualität und Kompression anpassen, lokales Skalieren funktioniert auch (Remote scaling ist bei mir aus da ich die Auflösung fix vergebe).

Link to comment
12 minutes ago, ich777 said:

das kann mein Container natürlich nicht

Kannst du die URL-Parameter nicht an den Container weiterreichen? Weil mehr machen die ja auch nicht. Also quasi so und VNC reicht das an den Browser weiter?!

http://tower:8080/vnc.html?autoconnect=true&url=https%3A%2F%2Fgoogle.com

 

Dann könnte man sich Bookmarks auf dem lokalen Rechner anlegen oder vielleicht auch direkt aus einem Mail-Programm was öffnen.

Link to comment
7 hours ago, mgutt said:

Das mit der VM habe ich nicht verstanden. In der VM läuft nur der KASM Server oder wird drüber auch gesurft @ScoobyAS? Das wäre dann ja doppelt gemoppelt.

Ja, in der VM läuft nur der KASM-Server. Daher kam mein Gedanke anstelle der VM einen Docker-Container zu verwenden.
Kann man denn vielleicht die VM nach der Installation in einen Docker-Container überführen?

Edited by ScoobyAS
Link to comment
10 minutes ago, ScoobyAS said:

Kann man denn vielleicht die VM nach der Installation in einen Docker-Container überführen?

 

Nein das geht nicht.

 

Die einzige Alternative, die du hättest, wäre KASM aufzugeben. Über die Unraid Apps kannst du Firefox auch als isolierten Docker Container starten und innerhalb deines Browsers bedienen:

1103296956_2021-02-1000_41_11.thumb.png.4a1f19897f9ee97e2a9f81c9c515fe3f.png

 

Allerdings ist das kein Komplettpaket, wo du dann auch Web-Filter, Domainsperren oder einen Login-Schutz dabei hast.. Das müsste man sich dann erst "bauen" bzw, dass ein Unraid User Docker-Container selbst startet, wird man denke ich nicht hinbekommen. zB erlaubt der Firefox Container das Hinzufügen einer Variable um den Zugriff per Passwort zu schützen:

239191112_2021-02-1000_53_47.png.b4db562fdc627dcb78544454b89d4b77.png

 

1796279620_2021-02-1000_54_13.png.ad45dc4d1af216f273032c58332051bb.png

 

So könnte man zB auch mehrere Firefox Container installieren und jedem andere Passwörter geben, die man dann an die Nutzer verteilt (wenn man mehrere hat).

 

Du kannst sogar theoretisch den Container über firefox.deinedomain.de im Internet verfügbar machen um zB an einem Rechner auf Seiten zu kommen, die dieser normalerweise herausfiltert.

 

Damit dieser Firefox Container dann auch noch Domains blockiert, müsste man aber andere Dinge machen bzw da kommmt es auch wieder auf den Bedarf an. Für einen selbst reichen ja meist Firefox-Addons. Für Kinder wäre es dagegen denkbar einen DNS zu hinterlegen, der unerwünschte Domains herausfiltert. Entweder in dem man lokal PiHole installiert oder einen darauf spezialisierten DNS Anbieter wählt. Wobei man da natürlich erst mal den PC des Kindes aus dem Internet aussperren muss, damit der Browser auf dem PC selbst nicht einfach zum Surfen genutzt wird.

 

Also alles eine Frage des Bedarfs und der Motivation ;)

Link to comment
34 minutes ago, ScoobyAS said:

Addons persistent in den Docker 'einkippen'?

 

Der Container legt ein User-Verzeichnis an, wo auch die installierten Plugins drin liegen.

 

Mit einem Script könnte man nun verschiedenes realisieren. Zb könnte man sich 1x den Browser passend machen und dann den Ordner kopieren. Das wäre dann quasi dein "Vanilla"-Setup des Browsers.

 

Man könnte auch jedesmal, wenn der Container beendet wird das Verzeichnis mit den Cookies löschen lassen (bzw das kann man ja auch im Browser einstellen).

 

Edge scheint es zu geben:

https://hub.docker.com/_/microsoft-msedge-msedgedriver

 

 

Link to comment

Wie bekommt man denn einen Container, der nicht über das CA-Plugin von UnRAID verfügbar ist, auf das NAS?

 

Der Edge Docker scheint leider nicht für Ubuntu geeignet zu sein, wenn ich in der VM "docker pull mcr.microsoft.com/msedge/msedgedriver" eingebe bekomme ich die Fehlermeldung "image operating system "windows" cannot be used on this platform".

Edited by ScoobyAS
Link to comment
11 minutes ago, ScoobyAS said:

Wie bekommt man denn einen Container, der nicht über das CA-Plugin von UnRAID verfügbar ist, auf das NAS?

 

Hier hatte ich das mal mit einem User durchlaufen:

https://forums.unraid.net/topic/99771-solved-container-template-redmine/

 

15 minutes ago, ScoobyAS said:

Der Edge Docker scheint leider nicht für Ubuntu geeignet zu sein

Ja nur Windows. In Unraid das selbe:

159556344_2021-02-1011_50_56.png.0df41dd954984a1e023744ef085b5160.png

Link to comment
1 hour ago, mgutt said:

Das ist ein Desktop Container ohne Webinterface, sprich du hast den Docker Dienst (für Windows) im Hintergrund als Windows Service laufen und der Container wird dann als natives neues "Fenster" geöffnet, hat aber kein Webinterface.

Das wäre dann in etwa so wie wenn du einen Edge verschachtelt in einem Container benutzt der nicht auf das Host System zugreifen kann.

Docker Container gibt's auch für Windows (lange nicht so populär als für Linux).

 

Edge gibt es für Linux momentan nur im DEV branch und musst direkt auf einer Linux maschine installieren.

 

EDIT: Sieht dann in meinem Debian Bullseye Container ca. so aus:

grafik.thumb.png.709dc4fef858687b92d6bc1fc6bd1c46.png

(im Container muss man aber alles was auf Chromium basiert mit dem flag '--no-sandbox' starten da der Docker schon eine Sandbox ist und der Userspace in Docker nicht funktioniert sonst müsste man das ganze mit Priviligierten Rechten starten was meiner Meinung nach schlimmer ist).

Link to comment
9 minutes ago, mgutt said:

Ok, also eine Art "nicht sichtbare Isolation". 

Yep genau, wäre auf Unraid theoretisch auch möglich bzw. auf jedem Linux System mit einem gestartetem X, natürlich muss der Container dafür auch gemachte sein das er weiß das er ein Fenster startet (ganz vereinfacht erklärt).

 

11 minutes ago, mgutt said:

Reicht ja vom Prinzip auch. Das bisschen Betriebssystem im Hintergrund stört ja nicht ^^

Könnte auch einen EDGE Container dafür machen aber ich weiß nicht ob das wirklich gewünscht ist und ob dort dann alles funktioniert da noch DEV branch...

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.