何忧

使用Cloudflare Zero Trust Tunnel搭建一个十分安全的WebSSH

2023-12-30 · 3 min read
SSH CloudFlare Zero Trust

为了安全, 最近给服务器的 SSH 端口都做了白名单限制
想给自己留一个后手, 防止在外连接不上服务器...

在不想自己搭建 WebSSH 的情况下,我发现了 Cloudflare 带慈善家的产品

Zero Trust

创建一个属于自己的 Zero Trust 账户

登录你的 Cloudflare 账户, 选择左侧的 Zero Trust 或者点击这个链接 https://one.dash.cloudflare.com 进入 Zero Trust 控制台
如果是第一次进入,需创建一个 Team
输入一个独一无二的 Team Name 即可完成创建

选择Free Plan

而后需要绑定支付方式,可以直接访问 https://one.dash.cloudflare.com 来跳过这一步骤

创建Tunnel

单击侧边栏中的 Access 中的 Tunnels 进入页面 点击 Add a Tunnel

而后填写 Tunnel Name 单击 Save Tunnel 进行创建 CloudFlare Tunnel

Cloudflare Tunnel 提供了一键安装, 选择你的 OS 而后选择 架构安装.
博主演示的 VPS 是 Debian 12 64-bit


之后滑倒页面底部, 点击 Next 进行下一步

Subdomain 输入子域名
Domain 选择托管在 Cloudflare 网络上的域名
Type 选择 SSH
URL 填写localhost:22 (22指的是服务器 SSH 服务的端口号,可以是其他端口)

点击 Save tunnel 即可创建成功
而后在主页可以看见刚刚创建的 Tunnel, 显示HEALTHY 为创建成功并且服务器连接上了 CloudFlare Tunnel 的网络

创建 Cloudflare Appliacations

单击侧边栏 Access 中的 Appliacations 进入页面后单击 Add an application

选择 Self-hosted

Application name 填入一个喜欢的名称, 比如 webssh
Session Duration 默认是 24小时 ,可以自行修改(影响保持登录的晒暖)
Subdomain 填写刚才创建 Tunnel 创建的子域名
Domain 选择刚才创建 Tunnel 创建的域名

滑倒页面底部,设定 Identity providers ,默认的认证方式有 One-Time PIN (邮箱验证码) 单击 Next 进行下一步

Policy name 填写你喜欢的字符, 比如 Email
Configure rules 中的 Selector 选择 Email
在 Value 中填写信任安全的邮箱
而后滑到页面底部单击 Next 进行下一步

到页面底部 Additional settings 中的 Browser rendering 选择 SSH 点击 Add application 即可创建成功!

使用 Web SSH

打开 Tunnel 的域名, 跳转至Cloudflare Access ,填写刚才填入的邮箱

填入邮箱收到的验证码

即可进入 WebSSH 登录页面, 输入用户名
博主这边是 root

选择 Password 或者 Private Key 登录

成功登录 SSH !