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

如何使用 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