
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/">
    <channel>
        <title><![CDATA[ The Cloudflare Blog ]]></title>
        <description><![CDATA[ Get the latest news on how products at Cloudflare are built, technologies used, and join the teams helping to build a better Internet. ]]></description>
        <link>https://blog.cloudflare.com</link>
        <atom:link href="https://blog.cloudflare.com/" rel="self" type="application/rss+xml"/>
        <language>en-us</language>
        <image>
            <url>https://blog.cloudflare.com/favicon.png</url>
            <title>The Cloudflare Blog</title>
            <link>https://blog.cloudflare.com</link>
        </image>
        <lastBuildDate>Fri, 03 Apr 2026 20:24:52 GMT</lastBuildDate>
        <item>
            <title><![CDATA[RDP without the risk: Cloudflare's browser-based solution for secure third-party access]]></title>
            <link>https://blog.cloudflare.com/browser-based-rdp/</link>
            <pubDate>Fri, 21 Mar 2025 13:00:00 GMT</pubDate>
            <description><![CDATA[ Cloudflare now provides clientless, browser-based support for the Remote Desktop Protocol (RDP). It enables secure, remote Windows server access without VPNs or RDP clients. ]]></description>
            <content:encoded><![CDATA[ <p><a href="https://blog.cloudflare.com/intro-access-for-infrastructure-ssh/"><u>Short-lived SSH access</u></a> made its debut on Cloudflare’s <a href="https://www.cloudflare.com/learning/access-management/what-is-sase"><u>SASE</u></a> platform in October 2024. Leveraging the knowledge gained through the <a href="https://blog.cloudflare.com/cloudflare-acquires-bastionzero/"><u>BastionZero acquisition</u></a>, short-lived SSH access enables organizations to apply <a href="https://www.cloudflare.com/learning/security/glossary/what-is-zero-trust/">Zero Trust</a> controls in front of their Linux servers. That was just the beginning, however, as we are thrilled to announce the release of a long-requested feature: clientless, browser-based support for the <a href="https://www.cloudflare.com/learning/access-management/what-is-the-remote-desktop-protocol/"><u>Remote Desktop Protocol</u></a> (RDP). Built on top of Cloudflare’s modern proxy architecture, our RDP proxy offers a secure and performant solution that, critically, is also easy to set up, maintain, and use.</p>
    <div>
      <h3>Security challenges of RDP </h3>
      <a href="#security-challenges-of-rdp">
        
      </a>
    </div>
    <p><a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/use-cases/rdp/"><u>Remote Desktop Protocol (RDP)</u></a> was born in 1998 with <a href="https://news.microsoft.com/1998/06/16/microsoft-releases-windows-nt-server-4-0-terminal-server-edition/"><u>Windows NT 4.0 Terminal Server Edition</u></a>. If you have never heard of that Windows version, it’s because, well, there’s been 16 major Windows releases since then. Regardless, RDP is still used across thousands of organizations to enable remote access to Windows servers. It’s a bit of a strange protocol that relies on a graphical user interface to display screen captures taken in very close succession in order to emulate the interactions on the remote Windows server. (There’s more happening here beyond the screen captures, including drawing commands, bitmap updates, and even video streams. Like we said — it’s a bit strange.) Because of this complexity, RDP can be computationally demanding and poses a challenge for running at high performance over traditional <a href="https://www.cloudflare.com/learning/access-management/what-is-a-vpn/">VPNs</a>.</p><p>Beyond its quirks, RDP has also had a rather <a href="https://www.cloudflare.com/learning/access-management/rdp-security-risks/"><u>unsavory reputation</u></a> in the security industry due to early vulnerabilities with the protocol. The two main offenders are weak user sign-in credentials and unrestricted port access. Windows servers are commonly protected by passwords, which often have inadequate security to start, and worse still, may be shared across multiple accounts. This leaves these RDP servers open to brute force or credential stuffing attacks. </p><p>Bad actors have abused RDP’s default port, 3389, to carry out on-path attacks. One of the most severe RDP vulnerabilities discovered is called BlueKeep. Officially known as <a href="https://nvd.nist.gov/vuln/detail/CVE-2019-0708"><i>CVE-2019-0708</i></a>, BlueKeep is a vulnerability that allows <a href="https://www.cloudflare.com/learning/security/what-is-remote-code-execution/">remote code execution (RCE) </a>without authentication, as long as the request adheres to a specific format and is sent to a port running RDP. Worse still, it is wormable, meaning that BlueKeep can spread to other machines within the network with no user action. Because bad actors can compromise RDP to gain unauthorized access, attackers can then <a href="https://www.cloudflare.com/learning/security/glossary/what-is-lateral-movement/">move laterally</a> within the network, escalating privileges, and installing <a href="https://www.cloudflare.com/learning/ddos/glossary/malware/">malware</a>. RDP has also been used to deploy <a href="https://www.cloudflare.com/learning/security/ransomware/what-is-ransomware/">ransomware</a> such as Ryuk, Conti, and DoppelPaymer, earning it the nickname “Ransomware Delivery Protocol.” </p><p>This is a subset of vulnerabilities in RDP’s history, but we don’t mean to be discouraging. Thankfully, due to newer versions of Windows, CVE patches, improved password hygiene, and better awareness of privileged access, many organizations have reduced their <a href="https://www.cloudflare.com/learning/security/what-is-an-attack-surface/">attack surface</a>. However, for as many secured Windows servers that exist, there are still countless unpatched or poorly configured systems online, making them easy targets for ransomware and botnets. </p>
    <div>
      <h3>The need for a browser-based RDP solution</h3>
      <a href="#the-need-for-a-browser-based-rdp-solution">
        
      </a>
    </div>
    <p>Despite its <a href="https://www.cloudflare.com/learning/access-management/rdp-security-risks/">security risks</a>, RDP remains essential for many organizations, particularly those with distributed workforces and third-party contractors. It provides value for compute-intensive tasks that require high-powered Windows servers with CPU/GPU resources greater than users’ machines can offer. For security-focused organizations, RDP grants better visibility into who is accessing Windows servers and what actions are taken during those sessions. </p><p>Because issuing corporate devices to contractors is costly and cumbersome, many organizations adopt a bring-your-own-device (BYOD) policy. This decision instead requires organizations to provide contractors with a means to RDP to a Windows server with the necessary corporate resources to fulfill their role.</p><p>Traditional RDP requires client software on user devices, so this is not an appropriate solution for contractors (or any employees) using personal machines or unmanaged devices. Previously, Cloudflare customers had to rely on self-hosted third-party tools like <a href="https://guacamole.apache.org/"><u>Apache Guacamole</u></a> or <a href="https://devolutions.net/gateway/"><u>Devolutions Gateway</u></a> to enable browser-based RDP access. This created several operational pain points:</p><ul><li><p><b>Infrastructure complexity:</b> Deploying and maintaining RDP gateways increases operational overhead.</p></li><li><p><b>Maintenance burden:</b> Commercial and open-source tools may require frequent updates and patches, sometimes even necessitating custom forks.</p></li><li><p><b>Compliance challenges:</b> Third-party software requires additional security audits and risk management assessments, particularly for regulated industries.</p></li><li><p><b>Redundancy, but not the good kind</b> - Customers come to Cloudflare to reduce the complexity of maintaining their infrastructure, <i>not add to it</i>.</p></li></ul><p>We’ve been listening. Cloudflare has architectured a high-performance RDP proxy that leverages the modern security controls already part of our <a href="https://www.cloudflare.com/learning/access-management/what-is-ztna/"><u>Zero Trust Network Access (ZTNA)</u></a> service. We feel that the “security/performance tradeoff” the industry commonly touts is a dated mindset. With the right underlying network architecture, we can help mitigate RDP’s most infamous challenges.</p>
    <div>
      <h3>Introducing browser-based RDP with Access</h3>
      <a href="#introducing-browser-based-rdp-with-access">
        
      </a>
    </div>
    <p>Cloudflare's browser-based RDP solution is the newest addition to <a href="https://www.cloudflare.com/zero-trust/products/access/"><u>Cloudflare Access</u></a> alongside existing <a href="https://developers.cloudflare.com/cloudflare-one/applications/non-http/browser-rendering/"><u>clientless SSH and VNC offerings</u></a>, enabling secure, remote Windows server access without VPNs or RDP clients. Built natively within Cloudflare’s global network, it requires no additional infrastructure.</p><p>Our browser-based RDP access combines the power of self-hosted Access applications with the additional flexibility of <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/use-cases/ssh/ssh-infrastructure-access/#4-add-a-target">targets</a>, introduced with <a href="https://developers.cloudflare.com/cloudflare-one/applications/non-http/infrastructure-apps/"><u>Access for Infrastructure</u></a>. Administrators can enforce:</p><ul><li><p><b>Authentication</b>: Control how users authenticate to your internal RDP resources with <a href="https://www.cloudflare.com/learning/access-management/what-is-sso/">SSO</a>, <a href="https://www.cloudflare.com/learning/access-management/what-is-multi-factor-authentication/">MFA</a>, and device posture.</p></li><li><p><b>Authorization:</b> Use <a href="https://www.cloudflare.com/learning/access-management/what-is-access-control/">policy-based access control </a>to determine who can access what target and when. </p></li><li><p><b>Auditing:</b> Provide Access logs to support regulatory compliance and visibility in the event of a security breach.</p></li></ul><p>Users only need a web browser — no native RDP client is necessary! RDP servers are accessed through our app connector, <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/"><u>Cloudflare Tunnel</u></a>, using a common deployment model of existing Access customers. There is no need to provision user devices to access particular RDP servers, making for minimal setup to adopt this new functionality.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6vAxzxVY1RXc0batsTEdfn/23322d79ac68cfa0da698bdb2113db2c/unnamed__4_.png" />
          </figure>
    <div>
      <h4>How it works</h4>
      <a href="#how-it-works">
        
      </a>
    </div>
    
    <div>
      <h5>The client</h5>
      <a href="#the-client">
        
      </a>
    </div>
    <p>Cloudflare’s implementation leverages <a href="https://github.com/Devolutions/IronRDP"><u>IronRDP</u></a>, a high-performance RDP client that runs in the browser. It was selected because it is a modern, well-maintained, RDP client implementation that offers an efficient and responsive experience. Unlike Java-based Apache Guacamole, another popular RDP client implementation, IronRDP is built with Rust and integrates very well with Cloudflare’s development ecosystem.</p><p>While selecting the right tools can make all the difference, using a browser to facilitate an RDP session faces some challenges. From a practical perspective, browsers just can't send RDP messages. RDP relies directly on the Layer 4 Transmission Control Protocol (TCP) for communication, and while browsers can use TCP as the underlying protocol, they do not expose APIs that would let apps build protocol support directly on raw TCP sockets.</p><p>Another challenge is rooted in a security consideration: the username and password authentication mechanism that is native to RDP leaves a lot to be desired in the modern world of Zero Trust.</p><p>In order to tackle both of these challenges, the IronRDP client encapsulates the RDP session in a WebSocket connection. Wrapping the Layer 4 TCP traffic in HTTPS enables the client to use native browser APIs to communicate with Cloudflare’s RDP proxy. Additionally, it enables Cloudflare Access to secure the entire session using identity-aware policies. By attaching a Cloudflare Access authorization JSON Web Token (JWT) via cookie to the WebSocket connection, every inter-service hop of the RDP session is verified to be coming from the authenticated user.  </p><p>A brief aside into how security and performance is optimized: in conventional client-based RDP traffic, the client and server negotiate a <a href="https://www.cloudflare.com/learning/ssl/transport-layer-security-tls/">TLS</a> connection to secure and verify the session. However, because the browser WebSocket connection is already secured with TLS to Cloudflare, we employ IronRDP’s RDCleanPath protocol extension to eliminate this second encapsulation of traffic. Removing this redundancy avoids unnecessary performance degradation and increased complexity during session handshakes.</p>
    <div>
      <h5>The server</h5>
      <a href="#the-server">
        
      </a>
    </div>
    <p>The IronRDP client initiates a WebSocket connection to a dedicated WebSocket proxy, which is responsible for authenticating the client, terminating the WebSocket connection, and proxying tunneled RDP traffic deeper into Cloudflare’s infrastructure to facilitate connectivity. The seemingly simple task of determining how this WebSocket proxy should be built turned out to be the most challenging<b> </b>decision in the development process. </p><p>Our initial proposal was to develop a new service that would run on every server within our network. While this was feasible, operating a new service would introduce a non-trivial maintenance burden, which ultimately turned out to be more overhead than value-add in this case. The next proposal was to build it into <a href="https://blog.cloudflare.com/upgrading-one-of-the-oldest-components-in-cloudflare-software-stack/"><u>Front Line</u></a> (FL), one of Cloudflare’s oldest services that is responsible for handling tens of millions of HTTP requests per second. This approach would have sidestepped the need to expose new IP addresses and benefitted from the existing scaffolding to let the team move quickly. Despite being promising at first, this approach was decided against because FL is undergoing significant investment, and the team didn't want to build on shifting sands.</p><p>Finally, we identified a solution that implements the proxy service using <a href="https://workers.cloudflare.com/"><u>Cloudflare Workers</u></a>! Fortunately, Workers automatically scales to massive request rates, which eliminates some of the groundwork we’d lay if we had chosen to build a new service. Candidly, this approach was not initially preferred due to some ambiguities around how Workers communicates with internal Cloudflare services, but with support from the Workers team, we found a path forward. </p><p>From the WebSocket proxy Worker, the tunneled RDP connection is sent to the Apollo service, which is responsible for routing traffic between on-ramps and off-ramps for <a href="https://www.cloudflare.com/zero-trust/">Cloudflare Zero Trust</a>. Apollo centralizes and abstracts these complexities to let other services focus on application-specific functionality. Apollo determines which Cloudflare colo is closest to the target Cloudflare Tunnel and establishes a connection to an identical Apollo instance running in that colo. The egressing Apollo instance can then facilitate the final connection to the Cloudflare Tunnel. By using Cloudflare's global network to traverse the distance between the ingress colo and the target Cloudflare Tunnel, network disruptions and congestion is managed.</p><p>Apollo connects to the RDP server and passes the ingress and egress connections to <a href="https://blog.cloudflare.com/from-ip-packets-to-http-the-many-faces-of-our-oxy-framework/"><u>Oxy</u></a>-teams, the service responsible for inspecting and proxying the RDP traffic. It functions as a pass-through (strictly enabling traffic connectivity) as the web client authenticates to the RDP server. Our initial release makes use of <a href="https://learn.microsoft.com/en-us/windows-server/security/kerberos/ntlm-overview"><u>NT Lan Manager (NTLM)</u></a> authentication, a challenge-response authentication protocol requiring username and password entry. Once the client has authenticated with the server, Oxy-teams is able to proxy all subsequent RDP traffic!</p><p>This may sound like a lot of hops, but every server in our network runs every service. So believe it or not, this complex dance takes place on a single server and by using UNIX domain sockets for communication, we also minimize any performance impact. If any of these servers become overloaded, experience a network fault, or have a hardware problem, the load is automatically shifted to a neighboring server with the help of <a href="https://blog.cloudflare.com/unimog-cloudflares-edge-load-balancer/"><u>Unimog</u></a>, Cloudflare’s L4 load balancer.</p>
    <div>
      <h4>Putting it all together</h4>
      <a href="#putting-it-all-together">
        
      </a>
    </div>
    <ol><li><p><b>User initiation:</b> The user selects an RDP server from Cloudflare’s <a href="https://developers.cloudflare.com/cloudflare-one/applications/app-launcher/"><u>App Launcher</u></a> (or accesses it via a direct URL). Each RDP server is associated with a public hostname secured by Cloudflare. </p></li><li><p><b>Ingress:</b> This request is received by the closest data center within <a href="https://www.cloudflare.com/network/"><u>Cloudflare’s network</u></a>. </p></li><li><p><b>Authentication:</b> Cloudflare Access authenticates the session by validating that the request contains a valid JWT. This token certifies that the user is authorized to access the selected RDP server through the specified domain.</p></li><li><p><b>Web client delivery:</b> <a href="https://developers.cloudflare.com/workers/"><u>Cloudflare Workers</u></a> serves the IronRDP web client to the user’s browser.</p></li><li><p><b>Secure tunneling:</b> The client tunnels RDP traffic from the user’s browser over a TLS-secured WebSocket to another Cloudflare Worker. </p></li><li><p><b>Traffic routing:</b> The Worker that receives the IronRDP connection terminates the WebSocket and initiates a connection to <a href="https://blog.cloudflare.com/extending-local-traffic-management-load-balancing-to-layer-4-with-spectrum/#how-we-enabled-spectrum-to-support-private-networks"><u>Apollo</u></a>. From there, Apollo creates a connection to the RDP server.</p></li><li><p><b>Authentication relay:</b> With a connection established, Apollo relays RDP authentication messages between the web client and the RDP server. </p></li><li><p><b>Connection establishment:</b> Upon successful authentication, Cloudflare serves as an RDP proxy between the web browser and the RDP server, connecting the user to the RDP server with free-flowing traffic. </p></li><li><p><b>Policy enforcement:</b> Cloudflare's secure web gateway, <a href="https://blog.cloudflare.com/from-ip-packets-to-http-the-many-faces-of-our-oxy-framework/"><u>Oxy</u></a>-teams, applies Layer 4 policy enforcement and logging of the RDP traffic. </p></li></ol>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2wWryOYY69cHw5cDmQHAqi/cb40a492b1e194cd572018eb4a5792ba/3.png" />
          </figure><p>Key benefits of this architecture:</p><ul><li><p><b>No additional software:</b> Access Windows servers directly from a browser.</p></li><li><p><b>Low latency:</b> Cloudflare’s global network minimizes performance overhead.</p></li><li><p><b>Enhanced security:</b> RDP access is protected by Access policies, preventing lateral movement.</p></li><li><p><b>Integrated logging and monitoring:</b> Administrators can observe and control RDP traffic.</p></li></ul><p>To learn more about Cloudflare's proxy capabilities, take a look at our <a href="https://blog.cloudflare.com/introducing-oxy/"><u>related blog post</u></a> explaining our proxy framework.</p>
    <div>
      <h3>Selective, modern RDP authentication</h3>
      <a href="#selective-modern-rdp-authentication">
        
      </a>
    </div>
    <p>Cloudflare’s browser-based RDP solution exclusively supports modern RDP authentication mechanisms, enforcing best practices for secure access. Our architecture ensures that RDP traffic using outdated or weak legacy security features from older versions of the RDP standard, such as unsecured password-based authentication or RC4 encryption, are never allowed to reach customer endpoints.</p><p>Cloudflare supports secure session negotiation using the following principles:</p><ol><li><p>TLS-based WebSocket connection for transport security.</p></li><li><p>Fine-grained policies that enforce single sign on (SSO), multi-factor authentication (MFA), and dynamic authorization.</p></li><li><p>Integration with enterprise identity providers via SAML (Security Assertion Markup Language) and OIDC (OpenID Connect).</p></li></ol><p>Every RDP session that passes through Cloudflare’s network is encrypted and authenticated.</p>
    <div>
      <h4>What’s next? </h4>
      <a href="#whats-next">
        
      </a>
    </div>
    <p>This is only the beginning for our browser-based RDP solution! We have already identified a few areas for continued focus:</p><ul><li><p><b>Enhanced visibility and control for administrators:</b> Because RDP traffic passes through Cloudflare Workers and proxy services, browser-based RDP will expand to include session monitoring. We are also evaluating <a href="https://www.cloudflare.com/learning/access-management/what-is-dlp/">data loss prevention (DLP) </a>support, such as restricting actions like file transfers and clipboard use, to prevent unauthorized <a href="https://www.cloudflare.com/learning/security/what-is-data-exfiltration/">data exfiltration</a> without compromising performance. </p></li><li><p><b>Advanced authentication:</b> Long-lived credentials are a thing of the past. Future iterations of browser-based RDP will include <a href="https://www.cloudflare.com/learning/security/threats/what-is-passwordless-authentication/">passwordless</a> functionality, eliminating the need for end users to remember passwords and administrators from having to manage them. To that end, we are evaluating methods such as client certificate authentication, passkeys and smart cards, and integration with third-party authentication providers via Access.</p></li></ul>
    <div>
      <h5>Compliance and FedRAMP High certification</h5>
      <a href="#compliance-and-fedramp-high-certification">
        
      </a>
    </div>
    <p>We plan to include browser-based RDP in our <a href="https://www.cloudflare.com/learning/privacy/what-is-fedramp/">FedRAMP</a> High offering for enterprise and government organizations, a high-priority initiative <a href="https://blog.cloudflare.com/cloudflares-commitment-to-advancing-public-sector-security-worldwide/"><u>we announced in early February</u></a>. This certification will validate that our solution meets the highest standards for:</p><ul><li><p><b>Data protection</b></p></li><li><p><b>Identity and access management</b></p></li><li><p><b>Continuous monitoring</b></p></li><li><p><b>Incident response</b></p></li></ul><p>Seeking FedRAMP High compliance demonstrates Cloudflare’s commitment to securing sensitive environments, such as those in the <a href="https://www.cloudflare.com/public-sector/">federal government</a>, <a href="https://www.cloudflare.com/healthcare/">healthcare</a>, and <a href="https://www.cloudflare.com/banking-and-financial-services/">financial</a> sectors.</p><p>By enforcing a modern, opinionated, and secure implementation of RDP, Cloudflare provides a secure, scalable, and compliant solution tailored to the needs of organizations with critical security and compliance mandates.</p>
    <div>
      <h3>Get started today</h3>
      <a href="#get-started-today">
        
      </a>
    </div>
    <p>At Cloudflare, we are committed to providing the most comprehensive solution for ZTNA, which now also includes privileged access to sensitive infrastructure like Windows servers over browser-based RDP. Cloudflare’s browser-based RDP solution is in closed beta with new customers being onboarded each week. You can <a href="http://www.cloudflare.com/lp/browser-based-rdp-beta"><u>request access here</u></a> to try out this exciting new feature.</p><p>In the meantime, check out our<a href="https://developers.cloudflare.com/cloudflare-one/applications/non-http/infrastructure-apps/"> <u>Access for Infrastructure</u></a> documentation to learn more about how Cloudflare protects privileged access to sensitive infrastructure. Access for Infrastructure is currently <a href="https://dash.cloudflare.com/sign-up/teams"><u>available free</u></a> to teams of under 50 users, and at no extra cost to existing pay-as-you-go and Contract plan customers through an Access or Zero Trust subscription. Stay tuned as we continue to natively rebuild BastionZero’s technology into Cloudflare’s Access for Infrastructure service!</p> ]]></content:encoded>
            <category><![CDATA[Security Week]]></category>
            <category><![CDATA[Zero Trust]]></category>
            <category><![CDATA[Cloudflare Zero Trust]]></category>
            <category><![CDATA[Acquisitions]]></category>
            <category><![CDATA[Cloudflare Access]]></category>
            <category><![CDATA[Cloudflare One]]></category>
            <category><![CDATA[Clientless]]></category>
            <category><![CDATA[Remote Work]]></category>
            <category><![CDATA[VDI]]></category>
            <category><![CDATA[Remote Desktop Protocol ]]></category>
            <guid isPermaLink="false">2P5rqqGRcQQFywmNmp85oM</guid>
            <dc:creator>Ann Ming Samborski</dc:creator>
            <dc:creator>Gabriel Bauman</dc:creator>
            <dc:creator>Athanasios Filippidis</dc:creator>
            <dc:creator>Mike Borkenstein</dc:creator>
        </item>
        <item>
            <title><![CDATA[Protecting Remote Desktops at Scale with Cloudflare Access]]></title>
            <link>https://blog.cloudflare.com/protecting-remote-desktops-at-scale-with-cloudflare-access/</link>
            <pubDate>Fri, 07 Aug 2020 11:00:00 GMT</pubDate>
            <description><![CDATA[ Today we are announcing Argo Tunnel RDP Bastion mode, a simpler way to protect RDP connections at scale. By functioning as a jump-host, cloudflared can reside on a single node in your network and proxy requests to any internal server, eliminating deployment headaches. ]]></description>
            <content:encoded><![CDATA[ <p>Early last year, before any of us knew that so many people would be <a href="https://www.cloudflare.com/products/zero-trust/remote-workforces/">working remotely</a> in 2020, we announced that <a href="https://www.cloudflare.com/teams-access/">Cloudflare Access</a>, Cloudflare’s <a href="https://www.cloudflare.com/learning/security/glossary/what-is-zero-trust/">Zero Trust</a> authentication solution, would begin <a href="/cloudflare-access-now-supports-rdp/">protecting the Remote Desktop Protocol</a> (RDP). To protect RDP, customers would deploy Argo Tunnel to create an encrypted connection between their RDP server and our edge - effectively locking down RDP resources from the public Internet. Once locked down with Tunnel, customers could use Cloudflare Access to create identity-driven rules enforcing who could log in to their resources.</p><p>Setting Tunnel up initially required installing the Cloudflare daemon, <i>cloudflared</i>, on each RDP server. However, as the adoption of remote work increased we learned that installing and provisioning a new daemon on every server in a network was a tall order for customers managing large fleets of servers.</p><p>What should have been a simple, elegant <a href="https://www.cloudflare.com/products/zero-trust/vpn-replacement/">VPN replacement</a> became a deployment headache. As organizations helped tens of thousands of users switch to remote work, no one had the bandwidth to deploy tens of thousands of daemons.</p><p>Message received: today we are announcing <i>Argo Tunnel RDP Bastion mode</i>, a simpler way to protect RDP connections at scale. ? By functioning as a jump-host, <i>cloudflared</i> can reside on a single node in your network and proxy requests to any internal server, eliminating deployment headaches.</p><p>Previously, if a user wanted to RDP to a resource not yet protected with a dedicated <i>cloudflared</i> tunnel, they would have to reach out to a member of their infrastructure team and request that it be provisioned manually. For larger enterprises managing thousands of network assets, this could pose a significant burden, involving new configuration management manifests and implementing tunnel health monitoring.</p><p>Argo Tunnel RDP Bastion mode enables teams to reach any machine through a single <i>cloudflared</i> instance - a single tunnel, gated by Cloudflare Access, to reach hundreds of remote desktops.</p>
    <div>
      <h2>Why does RDP matter?</h2>
      <a href="#why-does-rdp-matter">
        
      </a>
    </div>
    <p>RDP is one of the most popular protocols used by employees to access their office computers from remote devices. It is installed by default on Windows, and is supported on *nix and MacOS operating systems. Many companies rely on RDP to allow their employees to <a href="/how-to-build-a-highly-productive-remote-team-or-team-of-contractors-with-cloudflare-for-teams/">work from home.</a></p><p>Utilization of the remote desktop protocol has increased significantly in correlation with increased work from home due to the Coronavirus pandemic. Unfortunately, in a rush to make machines available to remote users, many organizations have misconfigured RDP, which has given attackers a new opportunity to target remote desktops.</p><p>This increase is due primarily to two factors. The first factor is <i>exposure</i>. Many RDP servers are inadvertently exposed directly to the open Internet due to incomplete enforcement of firewall rules or unpatched vulnerabilities. Quickly exposing desktop fleets in a rush to help employees work from home might result in more security oversights.</p><p>Second, most RDP servers are not protected with corporate SSO tools. When users connect over RDP, they often enter a local password to login to the target machine. However, organizations don't always manage these credentials properly. Instead, users set and save passwords on an ad-hoc basis outside of the single sign-on credentials used for other services. That oversight leads to outdated, reused, and ultimately weak passwords that are potentially  securing Internet-exposed resources.</p>
    <div>
      <h2>Where does Cloudflare Access fit?</h2>
      <a href="#where-does-cloudflare-access-fit">
        
      </a>
    </div>
    <p>Cloudflare Access adds stronger authentication to RDP sessions by first locking down access to the remote machine via Argo Tunnel, then enforcing identity-based policies to determine who can gain access. Whether your organization uses Okta, Azure AD, or another provider, your users will be prompted to authenticate with those credentials before starting any RDP sessions.</p><p>With RDP connections protected by Access, organizations can enforce the same password strength and rotation requirements for RDP connections as they do for other critical tools.</p>
    <div>
      <h2>How does it work?</h2>
      <a href="#how-does-it-work">
        
      </a>
    </div>
    
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2F1ESbixv0lKlezYoD9le5/d1b0f807dd88c0c8f9d11b8c38cc8100/image1-4.png" />
            
            </figure><p>On the origin side, an admin will configure a single <i>cloudflared</i> instance to run in bastion mode. That bastion will reach out to the two closest Cloudflare edge data centers and create a long-lived HTTP2 session. Once set up, <i>cloudflared</i> will wait for incoming connections from clients to specify which final origin to connect to. This is unlike conventional <i>cloudflared</i> tunnel behavior, which immediately creates a single outgoing connection to a pre-configured origin.</p><p>On the RDP user side, a <i>cloudflared</i> instance running as a client will be configured with the final destination of the RDP session.  This isn't the address of the <i>cloudflared</i> bastion but rather the internal hostname the user wants to connect to.</p><p>Next, the user’s primary RDP client (i.e. “Remote Desktop Connection” on Windows) will initiate a connection to the local <i>cloudflared</i> client. <i>cloudflared</i> will launch a browser window and navigate to the Access app’s login page, prompting the user to authenticate with an IdP.</p><p>Once authenticated, the <i>cloudflared</i> client will tunnel the RDP traffic over HTTPS requests to the Cloudflare edge, including the final RDP destination and Access JWT in the request headers. The edge will verify the Access JWT to ensure that the client is authorized to reach the origin and, if it is, will use a special PoP to PoP route called <a href="https://www.cloudflare.com/products/argo-smart-routing/">Argo Smart Routing</a> to forward the connection to the bastion over the shortest path possible.</p><p>For each incoming connection, the bastion will initiate an outgoing RDP session to the final internal destination and proxy traffic back and forth to the client.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/10R3VrpjZHt2SVheCLIngC/901281294222221ce5f8f3eda0d05dcd/Screen-Recording-2020-08-04-at-11.48.30-AM--1-.gif" />
            
            </figure>
    <div>
      <h2>What’s next?</h2>
      <a href="#whats-next">
        
      </a>
    </div>
    <p>While today we are proxying just RDP traffic in bastion mode, we will eventually be expanding this functionality to protocols like FTP, <a href="https://www.cloudflare.com/learning/access-management/what-is-ssh/">SSH</a>, and generic TCP.</p><p>In the effort to make protecting internal resources easier than ever before, <i>cloudflared</i> can now also be conveniently found in the <a href="https://pkg.cloudflare.com/">Cloudflare package repo</a>, in tagged releases on the <a href="https://github.com/cloudflare/cloudflared/releases"><i>cloudflared</i> Github repo</a>, and in the <a href="https://hub.docker.com/r/cloudflare/cloudflared"><i>cloudflared</i> Docker hub repo</a>.</p> ]]></content:encoded>
            <category><![CDATA[Cloudflare Access]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Cloudflare Zero Trust]]></category>
            <category><![CDATA[Zero Trust]]></category>
            <guid isPermaLink="false">1bdmA4kIOdDK85HGaFD2ul</guid>
            <dc:creator>Mike Borkenstein</dc:creator>
        </item>
    </channel>
</rss>