侧边栏壁纸
博主头像
anzhuo

分享各种工具和教程

  • 累计撰写 19 篇文章
  • 累计收到 3 条评论

使用 CF access 搭建 github 验证

2025-1-31 / 0 评论 / 71 阅读

前言

通过自己的 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 :
https://<你的zerotrust团队用户名>.cloudflareaccess.com

应用描述:随便填或留空
认证回调 URL:
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邮箱,点击保存

设置 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 面板的账号密码登录界面


扫描二维码,在手机上阅读

评论一下?

OωO
取消