Kasm: experimenteren en veilig werken in een geïsoleerde omgeving
Geplaatst: 28 april 2024 - 07:35
Gertjan Groen
Met Docker kun je niet alleen serverdiensten opzetten, maar ook grafische applicaties draaien. Voor dit laatste is Kasm Workspaces een uitkomst. Toepassingen als Chrome, Discord en GIMP, of zelfs een complete Linux-desktop, kun je gewoon binnen je bestaande browser gebruiken. Dat werkt opvallend soepel. Een groot voordeel is de geïsoleerde omgeving: je bent beschermd én je kunt niets stukmaken.
Heb je wat ervaring met Docker, dan weet je hoe makkelijk je een container voor een bepaalde serverdienst kunt starten en ook weer weggooien. Het gaat meestal om webgebaseerde toepassingen, die je via je browser kunt benaderen via een webinterface. Kasm Workspaces gaat een stap verder: het maakt zogenoemde streamingcontainers mogelijk, waardoor je bijvoorbeeld een browser of zelfs een volledige Linux-desktop in een container kunt draaien. De toepassing wordt als het ware gestreamd naar de browser, wat je met remote desktop kunt vergelijken.
De toepassing draait geïsoleerd van je eigen systeem. Je kunt hierin dus veilig spelen of werken zonder het risico iets stuk te maken. Bovendien maken malware, ransomware en phishing geen kans. Gebruik het bijvoorbeeld om een nieuwe Linux-distributie uit te proberen. Of zet een tijdelijke browser op, bijvoorbeeld om je zelfontwikkelde website te testen. Je hebt de zekerheid dat na afloop de browserhistorie volledig wordt verwijderd. Ook kun je een veilige browseromgeving voor je kinderen creëren voor de online games die ze spelen. We leggen uit hoe je Kasm Workspaces installeert en verkennen de mogelijkheden voor thuisgebruik.
1 Uitvoeringen
Kasm Workspaces kun je lokaal op je eigen server installeren, maar ook als dienst via de cloud afnemen. De clouddienst is wel op grotere bedrijven gericht, want je moet het voor minimaal 25 gebruikers afnemen. Installeer je de software zelf, dan kun je uit meerdere edities kiezen. Wij gebruiken voor dit artikel de Community-editie, die volledig gratis is voor persoonlijk gebruik. Hiermee zijn tot vijf gelijktijdige sessies mogelijk, wat voor thuisgebruik meer dan genoeg is. Een lichte server zit daarmee wellicht ook al aan zijn limiet, al zijn de systeemeisen niet heel hoog. Voor een upgrade zijn overigens schappelijk geprijsde licenties beschikbaar.
2 Systeemeisen
Hoewel Kasm Workspaces zelfs op een Raspberry Pi werkt, heeft een wat zwaardere server zeker de voorkeur. Als besturingssysteem zijn onder andere Ubuntu 22.04 en Debian 12 geschikt. Je hebt minimaal een dualcore-processor nodig, 4 GB werkgeheugen en 50 GB opslag. Elke sessie vraagt ongeveer 1 tot 3 GB geheugen, en 1 of 2 processorkernen.
Je kunt Kasm Workspaces ook uitstekend in een Linux-container of in een virtuele machine op basis van KVM installeren binnen Proxmox VE (zie de paragraaf hierna: ‘Kasm Workspaces in Proxmox VE’. We schreven eerder al een artikel over het populaire opensource-virtualisatieplatform Proxmox VE, je leest het hier. Het werkt dan geïsoleerd van de (rest van de) server. Die blijft bovendien verschoond van de extra software die wordt geïnstalleerd. Het maken van eventuele back-ups is ook eenvoudiger.
Gebruikers kunnen voor de toegang tot Kasm Workspaces gewoon een moderne browser gebruiken, zoals Chrome, Edge, Firefox en Safari. We behandelen in dit artikel een vrij standaard installatie. Heb je bijzondere wensen, dan vind je vast een antwoord in de uitgebreide online documentatie.
3 Kasm Workspaces in Proxmox VE
Voor dit artikel hebben we Kasm Workspaces in een Linux-container binnen Proxmox VE geïnstalleerd met Ubuntu 22.04 als template. Je zou ook de laatste TurnKey Core-template kunnen kiezen die Debian als basis heeft. Laat bij het maken van een container het vinkje bij Unpriviliged container staan en zorg dat de optie Nested actief blijft, wat nodig is voor Docker. Begin met bijvoorbeeld 4096 MB geheugen, 1024 MB swap en 2 cores.
Klik voordat je de container start onder Options op Features en activeer naast Nesting ook de optie FUSE. Ga naar Console om de shell te openen en log in met je root-account. Zorg dat het besturingssysteem up-to-date is met de volgende commando’s:
apt update
en:
apt upgrade
Installeer curl dat vereist is voor de installatie met:
apt install curl
Stel de juiste tijdzone in met:
dpkg-reconfigure tzdata
Je kunt nu Kasm Workspaces via de shell installeren volgens de instructies in dit artikel. Merk op dat je één keer tegen een foutmelding aanloopt: dat probleem is eenvoudig op te lossen door het installatiescript een tweede keer te starten. Als het installatiescript vraagt een swap-partitie te maken, kun je dat overslaan.
4 Installatie
De installatie neemt enige tijd in beslag, maar is niet lastig omdat een installatiescript al het werk uit handen neemt. Controleer wel de onderstaande opdrachten. De kans is groot dat je ze iets moet aanpassen voor nieuwere versies.
Een korte uitleg over deze commando’s: we bladeren voor de installatie eerst naar de tijdelijke map (die wordt overigens bij elke herstart van het besturingssysteem automatisch leeg gemaakt). We halen dan de installatiebestanden op met curl, pakken ze uit met tar, bladeren naar de juiste map en starten de installatie. Als root-gebruiker kun je sudo overigens weglaten.
Merk op dat standaard de https-poort 443 wordt gebruikt voor de installatie. Is er een conflict, bijvoorbeeld met een webserver, dan kun je het voorafgaand aan de installatie veranderen naar bijvoorbeeld 8443 met deze opdracht:
sudo bash install.sh -L 8443
Na afloop van de installatie worden alle gemaakte accounts getoond. Bewaar deze gegevens goed!
5 Beheeromgeving
Na de installatie kun je met je administratoraccount (admin@kasm.local) inloggen via https://ipadres:poort. We raden je aan direct het wachtwoord te veranderen. Dat kan in je profiel, dat je bereikt via het icoontje rechtsboven. Log hierna in met het nieuwe wachtwoord. Ga dan naar Toegangsbeheer / Gebruikers. Verwijder de standaard bij de installatie aangemaakte gebruiker user@kasm.local. Maak een nieuwe gebruiker aan met minimaal een gebruikersnaam en wachtwoord.
6 Rechten voor gebruikers
Het is raadzaam te controleren welke rechten gebruikers hebben. Ga daarvoor naar Toegangsbeheer / Groepen, open All Users en klik op het penseeltje. Ga dan naar het tabblad Instellingen. Hier kun je kiezen wat de standaardrechten voor gebruikers moeten zijn. In recente versies zijn de belangrijkste opties al standaard actief, maar het is goed dit te controleren.
Zo kun je er bijvoorbeeld voor zorgen dat gebruikers de audio van een workspace kunnen horen, zoals een YouTube-filmpje in een browser. Ook kun je kiezen welke hardware aan een workspace mag worden doorgegeven, zoals een webcam, microfoon of gamecontroller. Verder kun je het gebruik van het klembord mogelijk maken voor het knippen en plakken van tekst.
Ook zie je opties voor downloads en uploads, om bijvoorbeeld met een browser gedownloade bestanden over te kunnen zetten naar je eigen pc. Veel van de genoemde opties komen verderop in dit artikel nog aan bod.
7 Workspaces maken
Met een workspace wordt in feite een toepassing bedoeld die je kunt starten, wat overigens ook een volledig besturingssysteem kan zijn. Standaard zijn er nog geen workspaces beschikbaar, waardoor een gebruiker nog niet veel kan doen. Daarom gaan we er eerst een paar maken. Ga daarvoor naar Afbeeldingen / Register. (Merk op dat ‘afbeeldingen’ een heel slordige vertaling van ‘images’ is. Dit zal in een toekomstige versie wellicht worden opgelost. Eventueel kun je via je profiel de taal op Engels zetten.)
Een image is in feite de basis voor een workspace. Als voorbeeld voegen we de Brave-browser toe. Zoek hem gewoon op in de lijst, klik er op en kies Installeren. Het image wordt daarna op de achtergrond gedownload en Brave komt beschikbaar als workspace. Verder voegen we onder meer Chrome, Ubuntu Jammy, Discord en Doom toe. Bij elk image zie je hoeveel ruimte er ongeveer nodig is. Zeker bij grotere workspaces moet je de beschikbare opslagruimte in de gaten houden. Een volledig Linux-besturingssysteem vraagt al snel zo’n 7 GB.
8 Workspaces bekijken
In de vorige paragraaf hebben we enkele workspaces toegevoegd. Als je in de bovenbalk naar Werkplekken gaat, zie je deze staan in een soort dashboard. Zie je bij een workspace op dit moment nog een rood uitroepteken, dan betekent het dat die workspace nog niet (volledig) is gedownload.
Als je als gewone gebruiker inlogt, bijvoorbeeld met het gebruikersaccount dat we in een eerdere stap hebben gemaakt, dan zie je geen beheeropties, maar wel alle workspaces. Je kunt daardoor dus alleen workspaces openen en gebruiken. Dat is zeker aan te raden voor huisgenoten die je liever uitsluit van de beheerdersomgeving. Als er actieve sessies zijn door geopende workspaces, dan zie je die ook terug op je dashboard, zoals je links in de afbeelding ziet.
9 Workspace openen
Open je een workspace, dan kun je kiezen of deze in het huidige tabblad, een nieuw tabblad of een nieuw venster van je huidige browser moet worden geopend. Op de achtergrond wordt nu een sessie gestart. In het dashboard zie je zoals gezegd een verwijzing naar deze en eventuele andere actieve sessies.
Een sessie wordt standaard na één uur beëindigd. Op je dashboard kun je een sessie ook handmatig pauzeren, stoppen of verwijderen. Kies je voor pauzeren of stoppen, dan kun je de sessie op een later moment hervatten in de toestand waarin je deze hebt achtergelaten. Als je een sessie verwijdert, kun je uiteraard een nieuwe sessie starten, maar begin je met een schone lei.
10 Brave-browser
Nemen we de Brave-browser als voorbeeld, dan zie je dat bij een nieuwe sessie steeds een verse installatie krijgt voorgeschoteld. Dat betekent ook dat je steeds de optie krijgt om Brave als standaardbrowser in te stellen en instellingen te importeren. Om zulke vragen te vermijden, kun je kiezen om de sessie te stoppen in plaats van te verwijderen.
Waar je verder nog op moet letten, is dat bestanden die je downloadt met in dit geval de Brave-browser, normaal worden opslagen ín de bewuste container – eigenlijk zitten ze daar ‘gevangen’. Er is een speciaal menu met extra opties dat je kunt openen via een icoontje aan de linkerkant van je scherm. Als je naar Downloaden gaat, zie je alle bestanden die je met de bewuste browser hebt gedownload. Je kunt ook bestanden uploaden van je pc naar de container via Uploaden. In dat menu zie je ook andere opties, zoals het in- of uitschakelen van de webcam, het geluid en de microfoon.
11 Linux-desktop
We hebben ook een volledige desktop geprobeerd, in dit geval Ubuntu Jammy. De workspace blijkt snel gestart en je krijgt er meteen een flink aantal toepassingen bij, waaronder GIMP, OnlyOffice, Visual Studio Code en Zoom.
Als je het prettig vindt, kun je de desktop via het menu op je volledige scherm weergeven.
We hebben ook Kali Linux geïnstalleerd. Dit besturingssysteem is populair onder ethische hackers, die de extra isolatie van Kasm Workspaces zeker zullen waarderen.
Je kunt de configuratie van elke workspace desgewenst aanpassen, zodat standaard een VPN-verbinding wordt gebruikt. Het is echter makkelijker om een aparte VPN-container op te zetten. In de documentatie wordt dit een ‘vpn sidecar’ genoemd. Door de configuratie voor een bepaalde workspace aan te passen, zorg je er op die manier voor dat het verkeer voor die workspace voortaan door het VPN gaat.
12 Openen in Kasm
Je kunt Kasm Workspaces uitstekend gebruiken voor onveilige links die je tijdens het browsen tegenkomt in je gewone browser. Je kunt deze zelfs via een eenvoudige handeling automatisch laten openen in een geïsoleerde browser. Daarvoor installeer je in jouw browser de extensie genaamd Kasm – Open in Isolation (deze staat in de Chrome Web Store).
Klik rechts op de extensie om de opties te openen. Vul het https-adres van jouw server in. In ons voorbeeld is dat https://10.0.10.57. Kom je tijdens het browsen met je gewone browser een link tegen, klik dan met rechts op de link en kies in het menu de optie Koppeling openen in Kasm.
De eerste keer moet je instellen welke workspace standaard moet worden gebruikt, bij de optie Standaard werkruimte-afbeelding. Deze optie vind je overigens ook in je profiel.
Powered by