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

According to the relevant laws and regulations of the People's Republic of China, the comment function of the current website has been disabled. If you need to comment, please visit ysicing.me, but the comments still need to be reviewed by AI.