本文将深入探讨如何利用Cloudflare的Zero Trust(原Cloudflare Access)和Cloudflare Tunnel(原Argo Tunnel)功能实现内网服务的安全访问。通过配置安全认证和基于Cloudflare Worker的动态IP白名单,确保只有授权用户能够访问内网资源,同时适配不支持认证的客户端。以下是详细的步骤和说明:

前期准备

  • Cloudflare账号及域名:确保您已经拥有Cloudflare账号并配置了相应的域名。
  • Docker环境(可选):虽然不是必须的,但Docker环境可以帮助您更方便地部署和管理相关服务。

关联策略

将策略添加到刚刚创建的应用程序中,排名第1位。这样,IP在白名单中的请求将绕过认证直接访问内网服务。

IP白名单的注册鉴权(Token方式)

创建服务凭据

  1. 选择 Zero Trust > 访问控制 > 服务凭据 > 创建凭据
  2. 输入名称,创建后记下 Client IDClient Secret

创建Worker应用程序

  1. 新建应用程序,名称自定义
  2. 公共主机名填写Worker脚本的域名(如 your-worker.your-domain.com

创建SERVICE AUTH策略

  1. 创建新策略,名称自定义
  2. 操作选择 SERVICE AUTH
  3. 选择器类型选择 Service Token,值为刚创建的服务凭据名称
  4. 保存策略

关联策略

回到Worker的应用程序页面,选择现有策略,关联刚创建的策略。

IP白名单的注册鉴权(Email方式)

  1. 创建新策略,名称自定义
  2. 操作选择 Allow
  3. 选择器类型选择 Emails,值为允许注册的邮箱地址(可添加多个)
  4. 保存策略后,回到Worker的应用程序页面,关联刚创建的策略

使用说明

  • 浏览器访问Worker脚本的域名,完成认证后,IP将被添加到白名单中,且在指定时间内有效。
  • 对于不支持认证的客户端应用,可使用自动化任务(如iOS的快捷指令等)配置 CF-Access-Client-IdCF-Access-Client-Secret 请求头,实现自动认证。

注意

自动化任务可能无法指定请求时的IPv4/IPv6地址,因此可以尝试重复请求多次以确保IPv4和IPv6地址均被添加到白名单中。

如果您想了解更多关于基于Cloudflare的内网穿透解决方案的详细信息,可以访问基于Cloudflare的内网穿透解决方案(含安全认证及动态IP白名单)。希望这些信息能帮助您更好地理解和应用这一技术。

标签: none

评论已关闭