Remote desktop in air-gapped networks

Remote administration inside disconnected networks needs an internal ID and relay path, a browser gateway that never reaches the internet, and a controlled way to carry updates and recordings across the boundary. This page covers what changes in the design and what to ask a partner.

On this page

Remote desktop in air-gapped networks starts with removing every internet dependency

An operator in a disconnected enclave needs to reach servers that cannot be reached from the corporate network today. The short answer is to run Apache Guacamole inside the enclave for browser-based access to RDP, VNC and SSH hosts, and to run RustDesk's ID server (hbbs) and relay server (hbbr) internally for attended or unattended sessions on agent-based endpoints. Every container image, package, rule set and client installer arrives through a controlled, verified transfer, not through the network. Guacamole is licensed under Apache-2.0, and the RustDesk client and server are both licensed under AGPL-3.0, so the licensing review should happen before any design work starts. A connected deployment can lean on things an enclave does not have. RustDesk's default rendezvous and relay servers are a cloud dependency that disappears once you run your own hbbs and hbbr, and every client must be pointed at the internal addresses. Commercial tools often check licenses or activate software online, which will fail or need an offline workaround. Public DNS, certificate authorities reachable from the network, and vendor update servers are also gone. Each of these must be replaced by an internal equivalent, and each replacement is a design decision with an owner. Licensing is the first check that can change the platform choice. Several vendors reserve air-gapped deployment for paid editions. Mattermost lists it under Enterprise Advanced, Rocket.Chat excludes it from its free Starter plan, and Element offers a separate Sovereign edition for this use. Ask your vendor in writing whether the exact edition you plan to run is permitted to operate offline, and whether license keys can be validated without a call home. For RustDesk, confirm with the vendor whether the open-source server or RustDesk Server Pro fits your offline and audit requirements before you commit to an architecture.

Which air-gap requirements shape the build

This table maps the regulatory requirements most likely to shape an air-gapped remote desktop design to the concrete build decisions each one forces. Read the applicability column first, since several rows apply only to organizations in specific sectors, then use the consequence column to plan architecture, software intake and recording storage.

RequirementApplies toBuild consequence
NERC CIP-005-7 Interactive Remote Access through an Intermediate SystemOnly organizations with high or medium impact BES Cyber SystemsRoute all vendor and staff sessions through an intermediate host with encryption and MFA, and build tooling to detect and disable active vendor sessions
NERC CIP-013-2 software integrity and authenticityOnly organizations with covered vendor and supply chain obligations under CIP-013-2Verify hashes and signatures of every package, image and rule set carried across the isolated boundary, and record who approved each transfer
HIPAA 164.312(e)(1) transmission securityOrganizations holding ePHI, including covered entities and business associatesEncrypt remote sessions end to end inside the enclave, and confirm that gateway and relay traffic never leaves the protected network
HIPAA 164.312(b) audit controlsOrganizations holding ePHILog session start, end, user and target host, and store those logs with the recordings so reviewers can examine activity on systems containing ePHI
SEC Rule 17a-4(b)(4) retentionBroker-dealers and other firms subject to this ruleIf session recordings or chat-style notes are business communications, retain them for not less than three years in a format that meets the rule, and confirm with counsel whether they qualify
Offline update and rule intakeAll air-gapped deploymentsPlan a controlled import path for RustDesk, Guacamole, container images and recording player updates, with staging and rollback before anything reaches production
Recording storage locationAll deployments that record sessionsSize local storage for retention periods set by policy, and confirm where recordings are encrypted, backed up and deleted
Vendor license and edition fitAll deployments needing audit log, SSO or air-gap featuresConfirm in writing that the chosen RustDesk edition and any third-party software support disconnected operation before purchase

How the enclave, the transfer zone and the admin network divide the work

In a fully disconnected enclave, Guacamole, guacd, the recording store and the identity provider all run inside the isolated network, and no path to the internet exists at any layer. Guacamole's web application is written in Java and provides the web interface and authentication layer. It speaks only the Guacamole protocol and forwards that traffic to guacd, which loads protocol plugins for RDP, VNC and SSH to reach the target machines. Because the whole stack lives inside the boundary, every package, container image, browser extension and rule set must arrive by an approved transfer process before it can be used.

  • Gateway placement: Guacamole and guacd sit on hosts inside the enclave, and users reach them only from enclave networks or approved workstations.
  • Identity: The directory or SSO service runs inside the enclave, so authentication never depends on an external cloud service.
  • Recording store: Session recordings are written to storage inside the enclave and are retained there under the organization's own policy.
  • Crossing the boundary: Only approved, verified artifacts enter, and audit logs and recordings leave only through a documented export procedure.
  • Updates: Patches for the OS, containers and Guacamole components are imported as signed, verified bundles.

Confirm with your assessor whether the enclave's own controls satisfy the integrity checks you plan to apply to imported software.

Which platforms fit an air-gapped remote access design and why

An air-gapped remote access design needs a gateway, an ID and relay layer if you use RustDesk, identity and recording controls, and a way to bring software across the isolation boundary. The cards below cover the platforms and components that fit those roles, along with what each one does not do and what to confirm with the vendor before you commit.

Apache Guacamole as browser gateway

Guacamole is a clientless gateway released under Apache-2.0 that serves RDP, VNC and SSH sessions to any HTML5 browser, so engineers inside a disconnected network need no installed client. It can be deployed natively or with Docker and supports database authentication on MariaDB or MySQL, PostgreSQL and SQL Server, plus SSO and MFA extensions. The session recording player extension matters for evidence. Confirm that every extension you need works offline, since several authentication extensions depend on directory or identity services you must host yourself.

Self-hosted RustDesk server

The open-source RustDesk server runs two services inside your network: hbbs handles ID and rendezvous, and hbbr relays traffic when a direct connection is not possible. The rustdesk-utils command-line tools support setup tasks. The server and client are both AGPL-3.0, which carries source-availability obligations if you modify and offer them to users. Clients must be pointed at your internal servers, and you should confirm that clients can be provisioned from an offline package source and that no default public server is contacted.

RustDesk Server Pro controls

Server Pro adds 2FA, a web console, an audit log, access control, centralized settings and distributed relay servers, and the Basic tier adds OIDC single sign-on and LDAP integration. These features address the audit and identity gaps that the open-source server leaves open. Pro is a self-hosted license, not a SaaS subscription, and the pricing page says licenses do not auto-renew. Confirm with the vendor whether license validation works without outbound internet access, how license renewals are delivered to an isolated network, and how the audit log can be exported for review.

Vendor air-gap editions to verify

Element Server Suite offers a Sovereign edition for air-gapped deployments, and Plane lists an Airgapped self-hosted edition on a separate codebase with its own release cycle. Neither is a recommendation here. Their remote access fit is indirect because they serve messaging and project management, not sessions into workstations. Use them as examples of what to check in any product you consider: whether the air-gapped edition is proprietary, whether it is a separate build from the community edition, and how security patches reach it. Air-gap support is often a paid-edition feature, so ask for it in writing.

Offline patch and transfer pipeline

An isolated network still needs security updates for Guacamole, guacd, RustDesk and the operating system. Build a documented transfer process in which packages are downloaded outside, checked for integrity and authenticity, scanned, and then carried across the boundary on approved media. Security Onion supports full installs without internet access and updates from newer ISO media in airgap mode, and Wazuh publishes an offline installation guide with an offline vulnerability repository. These tools monitor the gateway and detect drift, but they do not patch software on their own. Confirm the update cadence and rollback steps with your team.

Monitoring that fits offline operation

Remote sessions into isolated systems should generate logs that stay inside the enclosure and that someone reviews. Wazuh's offline guide and Security Onion's airgap mode let you run detection locally, so alerts about failed logins, new connections or unusual session times do not depend on an external SaaS console. Check which detections need rule updates, how those rules arrive, and whether recording storage on the gateway has enough capacity and retention controls. Neither product replaces a gateway audit trail, so confirm which logs each component writes and where they are forwarded.

How the rollout moves from a build bundle to a tested enclave

The sequence takes the offline components from licensing review through a rehearsed update and a monitored cutover, so each stage produces evidence that the enclave works without internet access before production users depend on it.

  1. Assess licensing and offline edition terms

    Your procurement, legal and security leads confirm which components can be deployed without internet access and under which edition. Guacamole is Apache-2.0 and the RustDesk client and open-source server are AGPL-3.0, but air-gapped support is often a paid-edition feature elsewhere, so check the terms of every component in the stack. RustDesk Server Pro is a separate paid product, and its licensing and renewal terms should be confirmed in writing before you select it. The step closes with a signed component list that records the name, version, license and edition of each item, plus the owner who approved it.

  2. Build and verify the offline bundle

    The implementation partner assembles one bundle from the connected side: container images, operating system packages, RustDesk binaries, and Guacamole extensions such as the authentication and session recording modules you have approved. Each artifact receives a published checksum and a signature check that is recorded in a manifest, and the bundle is scanned before it crosses the boundary. Your security team reviews the manifest, since the ability to prove software integrity and authenticity of vendor code and patches is the control that governs what enters an isolated network. The step is done when the manifest verifies from a clean system and the team signs off on the contents.

  3. Stand up Guacamole and RustDesk in a test enclave

    Engineers install guacd, the Guacamole web application and a database backend in a test enclave that has no route to the internet, then deploy hbbs and hbbr for RustDesk on internal addresses. Name resolution, certificates and the client configuration all come from internal sources, so no step depends on a public service. The team confirms that the RustDesk clients reach the internal ID and relay servers and that a Guacamole session opens to a test host over RDP, VNC or SSH. The step closes when a documented test run passes from an endpoint placed on the same network segment as the intended users.

  4. Wire identity and MFA

    Engineers connect Guacamole to your directory and multi-factor method, using the authentication extensions your identity team has chosen, such as LDAP, SAML or OpenID Connect with a second factor. For RustDesk Server Pro, they confirm which login, two-factor and directory integrations the edition provides before configuring them. Test accounts cover each role, including a vendor account with a restricted scope. The step is complete when every role logs in through the intended path, a failed MFA attempt is refused, and the authentication events appear in the logs your team reviews.

  5. Configure recording and retention

    The team sets where Guacamole session recordings are written inside the enclave, how long they are kept, who may view them, and how storage is protected and backed up within the isolated network. It also confirms the audit log outputs from both Guacamole and RustDesk and forwards them to the internal log platform. Retention periods come from your compliance owner and any rules that apply to your sector, not from the vendor defaults. The step closes with a recorded test session that can be found, played back by an authorized reviewer and deleted according to the retention rule.

  6. Rehearse an offline update

    Before go-live, the team runs one complete update cycle using the same transfer procedure planned for production: a new bundle is built on the connected side, verified, carried across the boundary on approved media, imported, and applied in the test enclave. The rehearsal records each command, each checksum comparison and any rollback step, so the production runbook reflects what actually happened. Your change board reviews the record before approving the procedure. The step is done when the test enclave runs the updated components, the rollback works, and the change record is archived.

  7. Cut over with monitoring and runbooks

    The team moves production access to the enclave in a planned window, with the test-proven configuration and the approved user list. Monitoring covers service health for hbbs, hbbr and Guacamole, failed logins, session starts and recording storage capacity, with alerts routed to the team that will respond. Runbooks cover restarts, certificate renewal, emergency vendor session termination, and the offline update procedure, and the operators who will use them practice each one. The step closes when the monitoring alerts have been tested, the runbooks are accepted by the operations owner, and handover is recorded.

What auditors ask for from an offline remote access system

What session logs and audit trail do auditors expect from offline remote desktop?

Auditors expect a complete, time-stamped record of who connected, to which host, when, from where, and what they did. In a Guacamole deployment, the web application records login and connection events in its authentication database, and the session recording extension stores what happened during each session when recording is enabled. For RustDesk, the Server Pro audit log is the component that records connection activity, which is one reason the Pro edition is often considered for regulated environments. Confirm with the vendor exactly which events each component logs, where the logs are stored inside the enclave, and whether they can be forwarded to a local SIEM. Logs that sit only on the gateway that they describe are weak evidence, so plan a copy to a separate, access-controlled store. DeployOpen can prepare the logging configuration and the evidence package, but it does not issue audit reports or attestations.

What MFA enforcement records prove remote sessions required two factors?

Assessors look for configuration evidence that multi-factor authentication is enforced on every path into the enclave, plus login records showing the second factor was presented. In Guacamole, the producing components are the authentication extension in use, such as the TOTP or Duo extension, together with the database or directory that holds the login attempts. In RustDesk Server Pro, two-factor authentication is listed on the Individual plan and above, so the admin console configuration and login history are the evidence. Export the policy settings, a sample of successful and failed MFA events, and the user list showing that no account bypasses the policy. Confirm with the identity provider whether an offline fallback or recovery code process exists, because auditors will ask how those codes are issued, stored and used.

What gateway or Intermediate System configuration evidence do auditors need?

Auditors need the configuration of the gateway that sits between the vendor or operator network and the protected systems, showing that all interactive remote access passes through it. For a Guacamole deployment, this means the guacamole.properties settings, the guacd host binding, the firewall rules that allow only the gateway to reach target systems, and the network diagram that places the gateway inside the enclave boundary. For NERC CIP-005-7 scope, the Intermediate System and encryption settings are the central artifacts. Keep the configuration in version control, record the reviewed baseline date, and capture firewall exports from the offline network. DeployOpen can document the design and configure the components as part of a written scope, while the assessor decides whether the design meets the standard.

How do you prove every package imported into an isolated network was verified?

The evidence is a transfer record for each import: the package name and version, the source it came from, the hash or signature checked, the person who approved it, and the date it crossed the boundary. NERC CIP-013-2 addresses supply chain procurement and the verification of software integrity and authenticity for vendor software and patches, so this ledger is the control artifact auditors will request. Build it into the media workflow, for example a checksum file generated on the connected side, verified on the isolated side, and signed by a named approver. Offline updates for components such as Guacamole, RustDesk server binaries and container images should follow the same path. Ask any vendor for its signing keys and release verification method before the first import, and keep those documents with the ledger.

What recording retention and access records apply under 17a-4 and HIPAA?

Recording evidence has two parts: proof that recordings exist for the required period, and proof of who could view or export them. Under SEC Rule 17a-4(b)(4), broker-dealers must preserve communications relating to the business for not less than three years, so a session recording that documents a business communication may fall within that scope and the retention rule should be checked with counsel. Under the HIPAA Security Rule, 164.312(b) requires audit controls that record and examine activity in systems containing ePHI, so recordings and access logs for clinical systems are part of that evidence. Produce a retention schedule, the storage configuration of the Guacamole session recording extension, and an access log showing who played back each recording. Confirm the storage location, encryption, and immutability settings with your compliance lead before writing the schedule.

What vendor session approval and disablement records do auditors ask for?

Auditors ask for a record of each vendor session from request to closure, including who approved it, the time window granted, the systems accessed, and the proof that access was ended when it should have been. For NERC CIP-005-7, the standard calls for methods to detect and disable active vendor remote access sessions, so keep the disable action logs and the timestamps showing termination. Store approval tickets in your ITSM or change system, link each session ID to its ticket, and export the account deactivation record when a contract ends. Confirm which approval workflow your chosen platform supports natively and which must be built around it. DeployOpen can design and document this process as part of a fixed scope, but the approval decisions and the attestation remain with your organization and its auditor.

What to ask an implementation partner before an air-gapped build

Start with the offline bundle. Ask the partner to show how every container image, RustDesk binary, Guacamole package, operating system patch and vulnerability feed is collected on the connected side, how each artifact is verified against its published checksum or signature, and where the resulting manifest is stored. Ask who signs off each transfer across the boundary and whether the process is written down. For a utility or other regulated operator, this is the control NERC CIP-013-2 describes as verifying software integrity and authenticity of vendor software and patches. Ask for a sample manifest from a previous build, not a description of one.

Next, ask which features in the design depend on a paid edition or license. Air-gapped deployment is often reserved for higher tiers, so confirm in writing whether the chosen RustDesk edition, Guacamole extensions and any supporting tools can run disconnected under the license you would hold, and whether license validation needs an outbound call. RustDesk Server Pro is a self-hosted product with its own pricing and license terms, and its licenses do not auto-renew, so ask who tracks renewal dates and what happens to access if one lapses inside the enclave. Get the answer from the vendor, not only from the partner.

Then ask where session recordings land, how long they are kept, and who can read or delete them. Recording storage should sit on an internal store inside the enclave with its own access controls, and retention should follow the rules your sector applies to privileged session evidence. Ask how recordings are protected at rest, how they are exported for review without leaving the boundary, and how the audit log is kept separate from the gateway administrators it describes. Also ask how the partner rehearses an update: whether it runs on a staging enclave first, how a rollback is tested, and how an offline update is proven to match what was approved. Finally, ask for the boundary document an auditor would read, covering network diagrams, data flows, key custody and administrator accounts. Ask who holds the root keys, the Guacamole and RustDesk administrator credentials, and the break-glass account, and how each is rotated and recorded.

How much work does an air-gapped remote desktop build take?

What drives the cost of an air-gapped remote desktop build?

The cost follows the written scope, and the largest drivers are the number of protocols and target systems, the identity integration, the number of recording and audit requirements, and how many isolated zones the design touches. Costs fall into four groups: infrastructure you own (gateway hosts, relay hosts, storage for recordings), licenses if you choose a paid tier, implementation and hardening labor, and ongoing operations. Ask any quote to separate one-time work from recurring work, and to list the offline update and package-transfer process as its own line. DeployOpen does not publish a price list; a quote follows from the agreed written scope. Fixed-scope engagements are the usual format, so ask for deliverables and acceptance criteria next to each figure.

Can our internal team build an air-gapped remote desktop alone?

A team with Linux, container and network skills can build a basic air-gapped setup, but the work is heavier than it looks because every dependency must be staged in advance. Guacamole needs its web application, guacd and protocol plugins, a database and an identity extension, all installed from offline media. RustDesk needs its ID (hbbs) and relay (hbbr) services running on internal addresses, with clients distributed by an internal channel. The hard parts are repeatable offline packaging, hardening, recording retention and a tested rollback. Decide which of these your team will own after handover, and ask a partner to document the procedure so it can be repeated without the original builders.

How long does an air-gapped remote desktop project take?

Duration depends on the number of target systems, the identity source, the number of isolated networks and how quickly approvals come back. No duration is fixed by the supplied sources, so ask for a timeline in the written scope with milestones for staging the offline bundle, the test environment, production cutover and handover. Plan extra time for the approval chain that moves software into the isolated network, because that process is often the slowest step. A single-site Guacamole gateway with one identity source generally scopes smaller than a multi-zone design with recording and vendor access controls.

What do we need to provide for an air-gapped remote desktop project?

The project needs named people from several teams, and the engagement stalls without them. Expect to provide:

  • Network owners who can confirm zone boundaries, addressing and firewall rules for the gateway and relay hosts
  • Identity owners who can supply the directory, MFA method and group structure the gateway will use
  • Approvers who define who may open sessions, for which systems and for how long
  • Security and compliance contacts who set recording retention and audit log requirements
  • A transfer process owner who will move signed packages and images across the isolation boundary

Agree these owners and their response times before the scope is signed.

Does RustDesk Server Pro licensing work in an offline network?

Confirm this with RustDesk before you buy, because the supplied pricing information does not state how license activation or renewal behaves without internet access. The open-source RustDesk server (hbbs and hbbr) runs without a license, so it is the first option to test in a disconnected network. The RustDesk pricing page lists Server Pro plans billed annually, for example Basic at $23.88 per month for 10 login users and 100 managed devices, and states that licenses do not auto-renew. Ask the vendor how a license is checked, whether it needs a connection to a vendor service, how renewals are applied from offline media, and what happens when a license expires. Get the answers in writing.

How are session recordings and offline updates kept current?

Recordings and updates both need a defined transfer and retention routine. Recordings are written on the isolated side, so storage capacity, retention periods and integrity checks must be sized before go-live, and the retention period should come from your records rules. The Guacamole manual covers a session recording player extension, so confirm how recordings are stored, indexed and exported. For updates, stage signed packages and container images in a controlled repository, verify their integrity before import, and test them in a non-production zone first. Ask the partner for a written update runbook with a fixed review cadence, and make sure the recording archive is included in backup and restore testing.

How DeployOpen scopes and supports air-gapped remote access

DeployOpen plans, implements, hardens, documents and supports self-hosted open-source remote access platforms inside the client's own air-gapped networks. That covers the internal RustDesk ID and relay servers, the Apache Guacamole gateway, the offline update path and the recording store, all deployed in the client's data center or isolated enclave rather than in a cloud account DeployOpen controls. Most engagements are fixed-scope. Before work starts, the parties agree in writing on which hosts, protocols, identity sources, update procedures and handover documents are in scope, and DeployOpen quotes from that written scope. The reader should expect the scope to name the network zones involved, the accounts that administer each component and who approves changes to the offline transfer process, because those decisions drive most of the effort.

Ongoing support is available as a retainer and covers the work that follows go-live in a disconnected environment: applying offline updates after they have been verified, reviewing audit logs and recordings, rotating credentials and certificates, and testing that vendor sessions can still be revoked. Ask any partner to state in writing who performs each of these tasks, how often a retainer reviews the platform, and how a support engineer gets access to an isolated network when an incident occurs. DeployOpen prepares systems, controls and evidence so that a client's internal team or an independent assessor can review the design, the configuration and the logs. DeployOpen does not issue audit reports, attestations or certifications. Those come from independent auditors and certification bodies, and the reader should confirm early which assessor will review the environment and which evidence that assessor expects.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.