如何使用 CloudFlare Tunnel安全的将内网服务暴露在公网

本文最后更新于 270 天前, 如有失效请评论区留言.

如何使用 CloudFlare Tunnel 安全的将内网服务暴露在公网

如果搞 HomeLab(家里云) 始终绕不开的话题是,我们如何将自己的内网服务暴露到公网上,又如何保证我们的安全。同理国内 NAT 机器也是类似。

这里郑重提醒,企业内部服务请慎重考虑,未经授权,后果严重

现在可以使用我们赛博菩萨 Cloudflare(下文简称 CF) 提供的 Zero Trust(简称 CFT) 来保护我们的安全。

本文主要以黄鸡的 NAT 机器为例。

使用 Tunnel 暴露服务

需要先登录 CF 的管理平台,点击 Zero Trust

默认 CFT 控制台不支持中文,但是很好理解不是。

安装 CFT

添加新的隧道, 点击:Networks/Tunnels 我们需要添加一个隧道让我们本地和 CFT 服务器进行连接

简单的配置引导完成隧道创建,默认选择 Cloudflared 就行,名字随便,我默认写 nat6

配置完 CFT 名字,后有个引导安装 Cloudflared, 默认提供了常见的系统,如 Linux MacOS Windows 等安装脚本,复制命令直接在我们终端运行即可。

这里我为方便迁移使用 docker 方式。

version: '3'

services:
  cloudflared:
    image: cloudflare/cloudflared:latest
    container_name: cloudflared
    command: tunnel --no-autoupdate run --token 你的token
    restart: always
  whoami:
    image: traefik/whoami
    container_name: whoami
    restart: always

将上面的保存为 docker-compose.yaml

启动:

docker compose pull
docker compose up -d

注意,请谨慎保管好自己的 token,不要随意泄漏给其他人

返回 Tunnels,发现刚刚创建的 Tunnel 等待 Status 显示 HEALTHY

配置 CFT 域名

点击你刚刚创建的隧道名,点击 Configure 或者直接直接点击右边 Configure

选择公网访问,配置完成后大概是这样,很简单

大家可以访问https://whoami.natpod.eu.org/

大概如下

使用 Access Applications 认证

这里配置参数比较多,没提的默认就可以了

确定 Authentication 配置

路径 /settings/authentication

点击 Settings, 再点击 Authentication, 看看 Login methods , 如果没有需要自行添加一个

配置 Access

点击 Access –> Applications –> Add an application 选择 Self-hosted

配置你需要 auth 的域名

policy name 可以随便填写 记得 Action 是 Allow,这里的 Session 是多久在进行登录验证,可以调节时间长一点

Create additional rules 根据你刚才配置的 Authentication 来填写,我这里是填写 CF 自带的邮箱验证码进行登录的

这里设置比较简单,任何人都可以,大家可以研究一下文档怎么限制只允许合法用户使用

配置完毕之后,访问你配置的域名就会出现拦截了。

大家可以验证看看

Sponsor

Like this article? $1 reward

Comments