通过Cloudflare隧道实现安全的远程桌面访问

在信息时代,远程桌面对于工作和生活变得至关重要。想象一下,你可以坐在家里,通过互联网连接到办公室的计算机,就像你亲自在那里一样。但这也伴随着安全风险,因为不正确的配置可能会导致未经授权的人访问你的计算机。今天,我将向你介绍一种方法,通过Cloudflare Zero Trust,你可以在不开放本地服务器的入站端口的情况下,安全地提供远程桌面服务。

步骤1:在GCP上设置RDP服务器

首先,我们需要在Google Cloud Platform(GCP)虚拟机上设置一个RDP服务器。虽然我以GCP为例,但你可以在支持RDP连接的任何机器上进行设置。

  1. 在你的Google Cloud控制台中,创建一个新项目。
  2. 转到Compute Engine > VM实例。
  3. 选择“创建实例”。
  4. 为你的VM实例命名,例如"windows-rdp-server"。
  5. 配置你的VM实例:
    • 滚动到“Boot Disk”并选择“更改”。
    • 选择操作系统为Windows Server。
    • 选择一个带有桌面体验的版本,例如Windows Server 2016 Datacenter。
  6. 一旦你的VM实例运行起来,点击RDP旁边的下拉菜单,选择“查看gcloud命令以重置密码”。
  7. 选择在Cloud Shell中运行。
  8. 在Cloud Shell终端中运行命令。你将被要求确认密码重置。
  9. 复制自动生成的密码和用户名到一个安全的地方。

步骤2:安装Microsoft远程桌面

你可以使用任何RDP客户端来访问和配置RDP服务器。为了通过Microsoft远程桌面访问服务器,请按照以下步骤进行:

  1. 下载并安装Microsoft远程桌面。
  2. 下载后,打开Microsoft远程桌面并选择“添加PC”。
  3. 在“PC名称”中,输入你的RDP服务器的公共IP地址。在GCP中,这是VM实例的外部IP。
  4. 对于“用户帐户”,选择“添加用户帐户”并输入你之前生成的密码和用户名。
  5. 选择“添加”。PC将显示在Microsoft远程桌面中。
  6. 为了测试基本连接,双击新添加的PC。
  7. 当询问是否继续时,选择“继续”。
  8. 现在,你可以远程访问和配置你的RDP服务器。

默认情况下,Internet Explorer将被安装并配置为增强安全模式。如果浏览器运行缓慢或无法加载,你可以关闭增强安全性,并安装诸如Google Chrome之类的替代浏览器。

步骤3:通过Cloudflare隧道连接RDP服务器

你可以使用Cloudflare隧道来创建从服务器到Cloudflare边缘的安全、仅出站的连接。这需要在服务器上运行cloudflared守护程序。用户可以通过在其设备上安装Cloudflare WARP客户端并加入你的Zero Trust组织来访问该服务。远程设备可以像在你的私有网络上一样连接。默认情况下,所有加入你组织的设备都可以访问该服务,除非你构建策略来允许或阻止特定用户。

步骤1:连接服务器到Cloudflare

  1. 通过按照我们的仪表板设置指南为你的服务器创建一个Cloudflare隧道。你可以跳过连接应用程序的步骤,直接转到连接网络。
  2. 在隧道的“私有网络”选项卡中,输入服务器的私有IP地址(或包括服务器IP的范围)。在GCP中,服务器IP是VM实例的内部IP。

(可选)3. 设置Zero Trust策略以微调对服务器的访问。

步骤2:设置客户端

为了让设备连接到你的Zero Trust组织,你需要:

  1. 在设备上以WARP模式部署WARP客户端。仅当你想要显示自定义阻止页面或过滤HTTPS流量时才需要Cloudflare证书。
  2. 创建设备注册规则以确定哪些设备可以加入你的Zero Trust组织。

步骤3:路由私有网络IP通过WARP

默认情况下,WARP客户端会排除前往RFC 1918空间的流量,作为其Split Tunnel功能的一部分。例如,WARP自动排除10.0.0.0/8,这些IP地址通常用于私有网络,无法从互联网访问。为了让WARP将流量发送到你的私有网络,你需要在Split Tunnel配置中包括你为Cloudflare隧道指定的IP/CIDR。

要配置私有网络访问的Split Tunnel,请按照以下步骤:

  1. 首先,检查你的Split Tunnel模式是否设置为排除或包括模式。
  2. 如果你使用的是包括模

式,请将你的网络IP/CIDR范围添加到列表中。

  1. 如果你使用的是排除模式:
    • 从列表中删除你的网络IP/CIDR范围。例如,如果你的网络使用默认的AWS范围172.31.0.0/16,删除172.16.0.0/12。
    • 重新添加不被你的私有网络显式使用的IP/CIDR范围。以AWS为例,你会添加新的条目,如172.16.0.0/13、172.24.0.0/14、172.28.0.0/15和172.30.0.0/16。这确保只有前往172.31.0.0/16的流量会通过WARP。

通过缩小包括在WARP中的私有IP范围,你可以降低用户访问本地资源的风险。

步骤4:以用户身份连接

一旦WARP客户端配置好,你可以使用你的RDP客户端连接到服务器的私有IP地址(而不是最初使用的公共IP地址)。

要在Microsoft远程桌面中连接:

  1. 打开Microsoft远程桌面并选择“添加PC”。
  2. 对于“PC名称”,输入你的RDP服务器的私有IP地址。在GCP中,这是VM实例的内部IP。
  3. 对于“用户帐户”,输入你的RDP服务器用户名和密码。
  4. 双击新添加的PC以测试Zero Trust连接。
  5. 当询问是否继续时,选择“继续”。

现在,你已经拥有了对RDP服务器的安全远程访问。

通过Cloudflare隧道访问RDP服务器

Cloudflare隧道还可以将应用程序路由到公共主机名,允许用户在不使用WARP客户端的情况下连接到应用程序。这种方法需要在服务器机器和客户机器上都安装cloudflared,并在Cloudflare上激活区域。流量通过这个连接代理,并用户使用Cloudflare Access凭证登录服务器。

公共主机名方法可以与通过WARP进行路由一起实施,以便有多种连接服务器的方式。你可以重复使用同一个隧道用于私有网络和公共主机名路由。

步骤1:连接服务器到Cloudflare

  1. 通过按照我们的仪表板设置指南为你的服务器创建一个Cloudflare隧道。
  2. 在“公共主机名”选项卡中,选择下拉菜单中的域名,并指定任何子域名(例如,rdp.example.com)。
  3. 对于“服务”,选择RDP,并输入服务器的RDP监听端口(例如,localhost:3389)。通常是端口3389。
  4. 选择“保存主机名”。

(建议)5. 添加一个自托管应用程序到Cloudflare Access,以管理对服务器的访问。

步骤2:以用户身份连接

在客户端机器上安装cloudflared。

运行以下命令以打开RDP监听端口:

cloudflared access rdp --hostname rdp.example.com --url rdp://localhost:3389

这个过程需要配置为保持活动和自动启动。如果进程被终止,用户将无法连接。

如果客户机器运行Windows,端口3389可能已经被本地占用。选择一个未被使用的3389端口的替代端口。

在cloudflared access运行时,使用RDP客户端(如Microsoft远程桌面)连接:

  1. 打开Microsoft远程桌面并选择“添加PC”。
  2. 对于“PC名称”,输入localhost:3389。
  3. 对于“用户帐户”,输入你的RDP服务器用户名和密码。
  4. 双击新添加的PC以进行连接。
  5. 当客户端启动时,浏览器窗口将打开并提示用户进行身份验证。

结语

通过Cloudflare Zero Trust,我们实现了安全的远程桌面访问,而无需在本地服务器上开放入站端口。这为远程办公提供了更高的安全性,同时保持了便利性。希望这篇文章对你有所帮助,让你的远程工作更加安全和便捷。如果你还有任何问题或疑虑,请随时在评论中分享。

声明:本站所有文章,如无特殊说明或标注,均为本站(王大神)原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
指数词

通过Cloudflare隧道连接SSH服务器:实现安全远程访问

2023-9-25 2:09:28

指数词

如何在电脑开机时检测U盘插入状态并自动执行操作

2023-9-25 12:41:45

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索