Building Secure Cross-Domain Solutions with Kasm and Teleport Source
Markdown source
1---2title: "Building Secure Cross-Domain Solutions with Kasm and Teleport"3date: "2026-03-27"4tags: ["kasm", "teleport", "security", "remote-desktop", "zero-trust", "cross-domain", "infrastructure"]5author: "Gavin Jackson"6excerpt: "How to build secure cross-domain solutions using Kasm Workspaces for isolated browser sessions and Teleport for zero-trust access control - a practical guide for organisations handling sensitive data across security boundaries."7---89# Building Secure Cross-Domain Solutions with Kasm and Teleport1011Cross-domain solutions are hard.1213Not technically impossible - we have the tools. But the combination of strict security requirements, usability concerns, and audit compliance makes them one of the more challenging infrastructure problems to solve well.1415I have been looking at this problem from a few angles recently. The goal: allow users to access resources in different security domains without creating pathways for data leakage or unauthorised access between those domains.1617Two tools have emerged as particularly useful in this space: **Kasm Workspaces** for isolated, ephemeral browser sessions, and **Teleport** for zero-trust access control and session recording.1819Here is how they fit together.2021## The Problem2223In many organisations - especially government, defence, finance, and healthcare - information is classified into different security domains. A user might need to:2425- Browse the public internet (low trust)26- Access internal corporate systems (medium trust)27- Work with classified or sensitive data (high trust)2829Traditionally, this meant air-gapped machines, multiple physical workstations, or heavily locked-down VDI environments that users hate.3031The modern approach is to use **isolated, ephemeral workspaces** that can be spun up on demand, used for a specific task, and then destroyed - leaving no persistent data on the endpoint.3233## Kasm Workspaces: The Isolation Layer3435Kasm Workspaces is an open-source (with commercial support) container streaming platform. It delivers browser-based access to isolated applications and desktops running in Docker containers.3637### Why Kasm Works for Cross-Domain3839**Ephemeral by design:** Every session starts fresh from a clean image. When the user closes the browser tab, the container is destroyed. No persistence, no malware surviving reboots, no data left behind.4041**Browser-based access:** Users do not install anything. They open a URL, authenticate, and get a fully functional Linux desktop or single application streaming to their browser via WebRTC.4243**Granular images:** You can define different images for different trust levels:44- A hardened Chrome image for general web browsing45- A Firefox image with specific extensions for research46- A full Ubuntu desktop for development work47- A locked-down image with no clipboard, no downloads, no printing for highly sensitive access4849**Network segmentation:** Each Kasm agent can be placed in a different network segment. The workspace container only has access to the networks you explicitly allow.5051### Setting Up Domain Isolation5253The key architectural decision is mapping Kasm workspaces to security domains:5455```text56+-------------------------------------------------------------+57| Kasm Manager |58| (Orchestration and User Auth) |59+-------------------------------------------------------------+60 |61 +--------------------+--------------------+62 v v v63+---------------+ +---------------+ +---------------+64| Kasm Agent | | Kasm Agent | | Kasm Agent |65| (Domain A) | | (Domain B) | | (Domain C) |66| Internet | | Corporate | | Classified |67| Zone | | Network | | Network |68+---------------+ +---------------+ +---------------+69```7071Each Kasm agent runs on a host with specific network connectivity. The "Internet Zone" agent has outbound internet access. The "Classified Network" agent only has access to classified resources. The user chooses (or is assigned) the appropriate workspace based on their current task.7273### Kasm Configuration Tips7475**Disable persistence features for high-trust domains:**7677```yaml78# In your Kasm image configuration79persistent_profile: false80enable_clipboard: false81enable_downloads: false82enable_uploads: false83```8485**Use network policies to restrict container egress:**8687```yaml88# Docker daemon configuration or Kubernetes network policies89egress:90 - to:91 - namespaceSelector:92 matchLabels:93 domain: classified-resources94```9596**Enable session recording for audit trails:**9798Kasm can record sessions as video files, which is useful for compliance. But for a more integrated approach, we bring in Teleport.99100## Teleport: The Access Control Layer101102Teleport is an open-source (with enterprise features) access platform that provides:103104- **Certificate-based authentication:** No static credentials, short-lived certificates105- **Role-based access control (RBAC):** Fine-grained permissions based on identity106- **Session recording:** Complete audit trail of every command, query, or desktop session107- **Just-in-time access:** Request and approve access workflows108- **Unified access:** One tool for SSH, Kubernetes, databases, applications, and desktops109110### Why Teleport Complements Kasm111112While Kasm provides isolation, Teleport provides **identity, audit, and policy enforcement**.113114**Unified identity:** Teleport can act as the identity provider for Kasm, or integrate with your existing IdP (Okta, Azure AD, etc.) and pass identity attributes through to Kasm.115116**Policy enforcement:** Teleport's RBAC can determine which users can access which Kasm workspaces based on labels, time of day, and approval workflows.117118**Enhanced audit:** Teleport records not just that a user accessed Kasm, but what they did inside the session - with structured logs that integrate with SIEM tools.119120**Secure bastion:** Teleport can act as the only entry point to your Kasm infrastructure, eliminating exposed Kasm manager interfaces.121122## Integrating Kasm with Teleport123124The cleanest way to combine the two is to make Teleport the front door and policy layer for every Kasm environment. Users authenticate to Teleport first, then launch the Kasm workspace that matches the domain they are allowed to access.125126That keeps the access path consistent:127128```text129User -> Teleport Proxy -> Kasm Manager -> Kasm Agent (Domain X)130```131132Teleport decides which Kasm applications appear to the user, enforces MFA and session limits, and records the access event. Kasm then provides the isolated workspace inside the correct network segment.133134## Putting It Together: A Reference Architecture135136Here is what that deployment looks like in practice for a three-domain cross-domain solution:137138```text139+---------------------------------------------------------------------+140| User Workstation |141| (No special software installed) |142+---------------------------------------------------------------------+143 |144 v145+---------------------------------------------------------------------+146| Teleport Proxy Cluster |147| (Public-facing, MFA-required, session recording) |148+---------------------------------------------------------------------+149 |150 +----------------------+----------------------+ 151 v v v152+---------------+ +---------------+ +---------------+153| Kasm Agent | | Kasm Agent | | Kasm Agent |154| (Domain A) | | (Domain B) | | (Domain C) |155| | | | | |156| - Internet | | - Corporate | | - Classified |157| access | | apps | | resources |158| - No VPN | | - Internal | | - Restricted |159| needed | | databases | | egress |160| | | | | |161| Labels: | | Labels: | | Labels: |162| domain=web | | domain=corp | | domain=sec |163+---------------+ +---------------+ +---------------+164```165166In this model, each Kasm manager endpoint is published into Teleport as an application with labels that represent the relevant domain and classification. Users never browse directly to Kasm. They go through Teleport, which becomes the single access path for internet, corporate, and classified workspaces.167168### Teleport Application Mapping169170```yaml171# teleport.yaml app configuration172app_service:173 enabled: true174 apps:175 - name: kasm-internet176 uri: https://kasm-manager.domain-a.internal177 labels:178 domain: web179 classification: unclassified180181 - name: kasm-corporate182 uri: https://kasm-manager.domain-b.internal183 labels:184 domain: corp185 classification: internal186187 - name: kasm-classified188 uri: https://kasm-manager.domain-c.internal189 labels:190 domain: sec191 classification: secret192```193194From the user side, the experience stays simple:195196```bash197# List available Kasm environments198tsh apps ls199200# Launch the classified Kasm environment201tsh app launch kasm-classified202```203204### Teleport RBAC Mapping205206```yaml207# Role: general-user208allow:209 app_labels:210 domain: ["web", "corp"]211212# Role: cleared-researcher213allow:214 app_labels:215 domain: ["web", "corp", "sec"]216 require_session_mfa: hardware217 request_access: optional218219# Role: admin220deny:221 app_labels:222 domain: ["sec"] # Admins don't automatically get classified access223```224225### Data Flow Controls226227To prevent data exfiltration between domains:2282291. **Kasm-level:** Disable clipboard, file upload/download, printing for high-trust domains2302. **Network-level:** Strict egress filtering from Kasm agents - only allow connections to known resources2313. **Teleport-level:** Session recording, identity-aware access policies, and detailed audit logs2324. **Process-level:** DLP scanning on any approved export pathways (if required)233234## Operational Considerations235236### Performance237238Kasm streams desktop environments via WebRTC. For acceptable performance:239- Kasm agents should be geographically close to users240- Allocate sufficient CPU/memory for concurrent sessions241- Use GPU acceleration for video-heavy workloads242243Teleport adds minimal latency for application access but can proxy desktop protocols if needed.244245### Scaling246247- **Kasm:** Scale agents horizontally based on concurrent session demand248- **Teleport:** Proxy cluster can scale behind a load balancer; auth service is the bottleneck (usually fine for thousands of users)249250### Backup and Disaster Recovery251252- Kasm workspaces are ephemeral - no backup needed253- Kasm configuration (images, settings) should be in Git/IaC254- Teleport cluster state should be backed up (etcd or DynamoDB depending on deployment)255256### Monitoring257258Key metrics to track:259- Concurrent Kasm sessions per domain260- Session duration and idle time261- Teleport authentication failures262- Resource access patterns (unusual database queries, etc.)263264## Conclusion265266Cross-domain solutions do not have to mean clunky VDI or multiple physical machines. With Kasm Workspaces for isolation and Teleport for access control, you can build a modern, user-friendly system that satisfies security requirements without making users miserable.267268This approach gives you:269- **Ephemeral, isolated workspaces** per security domain270- **Zero-trust access** with short-lived certificates271- **Complete audit trails** for compliance272- **Browser-based access** - no client software to manage273- **Granular controls** over data flow between domains274275It is not a turnkey solution - you still need to design your network segmentation, define your RBAC policies, and train your users. But the tools are there, they are open source (with commercial support options), and they work.276277If you are wrestling with cross-domain access problems, this stack is worth evaluating.278279---280281**Resources:**282- [Kasm Workspaces](https://www.kasmweb.com/)283- [Teleport](https://goteleport.com/)284- [Kasm Documentation - Workspaces](https://www.kasmweb.com/docs/latest/index.html)285- [Teleport Documentation - Architecture](https://goteleport.com/docs/architecture/)286