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