如何使用 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 自带的邮箱验证码进行登录的
这里设置比较简单,任何人都可以,大家可以研究一下文档怎么限制只允许合法用户使用
配置完毕之后,访问你配置的域名就会出现拦截了。
大家可以验证看看