发布于 

使用Cloudflare Zero Trust进行内网穿透

介绍

Zero Trust是Cloudflare公司推出的一项企业级虚拟网关服务,官方对其介绍如下:

Cloudflare Zero Trust

Cloudflare Zero Trust是一个安全框架,旨在通过验证和保护所有的网络访问(无论用户或地点)来保护组织免受网络威胁。该框架基于 “不信任任何人 “的原则,这意味着所有访问请求在被批准之前必须经过验证和授权。

Zero Trust “旨在提供一种全面的安全方法,涵盖一个组织的网络和基础设施的所有方面。这包括用户认证、设备安全、网络分段和应用安全。

Zero Trust的主要好处之一是它能够提供细化的访问控制,使企业能够根据用户角色和权限限制对敏感资源的访问。这可以通过最小化攻击面和限制任何潜在漏洞的影响来帮助防止数据泄露和其他安全事件。

Cloudflare Zero Trust是一项基于云的服务,可以很容易地与组织的现有安全基础设施集成。它的设计具有可扩展性和灵活性,允许企业定制框架,以满足其特定需求和要求。

(通过DeepL翻译)

本文我们将使用其中的Tunnel功能,从外网访问家中内网的服务。对于其WARP代理功能,本文不做讨论。

你需要

一个功能正常的Cloudflare账户
一个有效的付款方式(Visa / Mastercard /Paypal)
一个绑定在Cloudflare下的域名

启用Zero Trust

  • 访问https://one.dash.cloudflare.com
  • 选择Free计划
  • 绑定付款方式并填写账单信息
  • 一切正常的话,你将会看到Zero Trust的控制面板
image-20230225191137594
image-20230225191137594

配置内网穿透

创建隧道

点击Access -> Tunnels,点击Create a tunnel创建一个隧道

image-20230225191410406
image-20230225191410406

输入名称后继续,提示安装connector

image-20230225193025132
image-20230225193025132

这里以Debian 64-bit和Windows为例

安装connector(Debian)

键入以下命令:

1
curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb && sudo dpkg -i cloudflared.deb

若访问github.com过慢可在https://前面添加https://ghproxy.com/

而后:

1
sudo cloudflared service install [你的Token]

若运行此命令时出错

image-20230225192231356
image-20230225192231356

则执行:

1
sudo cloudflared service uninstall

而后重新执行cloudflared service install一行即可

安装connector(Windows)

下载https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-windows-amd64.msi并安装

以管理员权限运行的cmd / Powershell中键入:

1
cloudflare service install [你的Token]

进行内网穿透

按照如图所示进行配置即可

image-20230225193655754
image-20230225193655754

配置完成后,通过https://[你的子域名].[你的域名]/[你的访问路径(如果有的话)]即可访问内网服务

附:关于对内网HTTPS服务的特殊配置

由于内网https服务证书一般为未受信任证书,若直接绑定到域名,访问时会提示Bad Gateway,因此需要对穿透的HTTPS做一些配置

打开Tunnels,点击隧道旁的Configure进入配置界面,选择Public Hostname

image-20230225194302124
image-20230225194302124

选择你要修改的域名,点击Edit

image-20230225194404224
image-20230225194404224

选择Additional application settings -> TLS,将No TLS Verify一项启用

image-20230225194534026
image-20230225194534026

保存后即可正常访问