使用 CF access 为公网服务搭建 github 验证

使用 CF access 为公网服务搭建 github 验证
雨天狂奔使用 CF access 为公网服务搭建 github 验证
前言
通过自己的 vps 搭建完私有化服务后,服务会通过 vps 的公网 ip、端口暴露在互联网上,即便通过 ng、argo 进行反代,ip 还是会被扫描,有可能被他人以 ip: 端口的方式访问服务,并破解管理员账户、密码,尤其是默认账户和若密码。我们常用的 xui、3xui、1panel、wordpress 等面板就存在这种安全隐患
我们可以借用免费的 CF access,为我们的项目入口搭建 github 验证,外部访问必须先验证设定的 github 账户,才能进入到面板登录界面,这样即便将面板账户和密码设置为默认,也很难被攻破
现在假设你 vps 上已经搭建了一个 xui 面板,并通过 ng 或 argo 进行了反代,或者通过 CF 端口回源,得到了一个可访问的域名: xui.123123.xyz
,让我们开始设置 (必须是托管在 CF 的域名才可以使用 CF access)
获取 CF zero trust 团队域名
注册地址: https://one.dash.cloudflare.com, 玩过 warp 或 argo 的人大家应该都会,需要绑定信用卡,使用免费计划即可。注册后会得到一个团队域,类似于这样: 团队用户名.cloudflareaccess.com
,将这个域名保存下来备用
以下操作转到 github 上
设置 github auth apps
登录你的 github 账号,依次点击 settings
(点击右上角头像可见)—— developer settings
—— auth apps
—— new auth app
,创建一个验证程序
- 名称:随意,比如
cf-access
- 主页 URL :
1 | https://<你的zerotrust团队用户名>.cloudflareaccess.com |
- 应用描述:随便填或留空
- 认证回调 URL:
1 | https://<你的zerotrust团队用户名>.cloudflareaccess.com/cdn-cgi/access/callback |
- 然后点击注册应用
玩过哪吒面板的应该都知道,设置方式是一样的,只是 URL 和回调 URL 不一样
获取 client ID 和密钥
进入你刚刚设置好的 auth app,会获得一个 client ID
,保存下来。点击生成 client secret
,会获得一个密钥,也保存下来
以下操作转到 CF zero trust
设置 access 组
在 zero trust 管理界面点击左侧 access —— access组
,点击 添加组
- 组名称:随意,比如
xui组
,勾选设置为默认组
- 选择器:选择
emails
,值
填写你的github邮箱
,点击保存
设置身份验证
在 zero trust 管理界面点击左侧 设置
,找到 身份验证
,进入后在 登录方式
处点击新增,选择 github
,(这里也可以选择比较常见的谷歌验证,如果选谷歌,上一步的 emails 就要填写你的谷歌邮箱)
- 名称:随意,比如
github-xui
- 应用 ID:就是刚刚在 github 获取到的
client ID
- 客户端密码:对应的是
client secret
- 点击保存
设置 access 应用程序
在 zero trust 管理界面点击左侧 access —— 应用程序
,点击 添加应用程序
,点击 自托管
- 应用程序名称:随意填,比如也填
xui
- 应用程序域名:填写你 xui 的域名,比如,子域填写
xui
,区域选择123123.xyz
,这里可以添加多个域名,比如你有多个 xui 面板,都可以添加在这里。
往下拉,找到 标识提供程序
,将接受所有可用的标识提供程序关闭
,手动选择
你所建立的 github 身份验证,也就是 github-xui
。其他均保持默认,点击下一步
- 策略名称:可以随意,比如还是
xui
- 操作:为
allow
- 会话持续时间,建议选择
一周
- 分配组:打
勾
,会默认选中你在 access 组中设定的组,也就是xui组
,并选择include
,其他保持默认,点击下一步
这里 勾选所有方式
,其他默认,点击 保存应用程序
即可。任何访问包括 get、post 等都会被首先要求验证身份
测试设置是否正确
进入你刚刚添加的应用程序,点击 配置
,再点击 测试策略
,输入你 github 的邮箱,点击测试,弹出 访问被允许
即表示成功;如果失败,请按上述步骤重新检查一次
现在,访问你的 xui 面板域名,会首选弹出验证提示,点击验证,需要登录 github(和哪吒面板的 github 验证是一个道理),登录后才是 xui 面板的账号密码登录界面
#cloudflare #github #建站