ivloli 179ba5a3c3 autogroup:self 添加可配置作用域 (#26)
何川完成的使autogroup:self可配置作用域的修改

* 租户的aclPolicy的默认配置为nil

* 修改:aclPolicy判空需要对Acls字段进行判断,空则浅复制之后,替换为全通再生成rules

* 新增:ACLPolicy-autogroup:self

* 使用map来判断autogroup

* 处理autogroup self和owner

* 修改:减少updateACLRules的无效次数

* 添加一点关于autogroup替换的注释

* 减少updateAclRules的引用处

* 在aclRules的生成函数中加入userID,以便于可以获取到和请求用户相关的信息&&调整autogroup:self的src acl生成

* autogroup:self 配置后,src只包含self解析出来的地址,并不会包含dest的所有地址

* 获取peers:添加peerCacheMap(同步HS修改)以及快速判断autogroup:self

* 添加节点更新推送

* 租户内节点更新,通知其他节点进行更新netmap;获取LastStateChange不必排序,只需取最晚time

* 新用户登录时候查询组织不存在的错误码替换为组织不存在,以便可以新建用户

* autogroup:self bug fix

* merge main

* 修改peerCache的生成和使用方式,不再遍历CIDR内所有ip

* 将UpdateAclRule操作从getPeer中提出到getMapResponse中

* fix bug: updateAclRules之后没有同步更新到对应的machine上

* 抽取出关于autogroup:self的修改

* fix bug:self情况下peer加入要判断uid

* acl expand alias: 调整autogroup到前面

* 租户建立时,默认添加一条全通ACL规则

* 租户初始化默认ACL添加一条全通

* 添加autogroup:self标签的作用域

* expand group去掉归一化操作

---------

Co-authored-by: chuanh <chuanh@opera.com>
Co-authored-by: chuanhe <chuanhe.u90@gmail.com>
Co-authored-by: Chenyang Gao <gps949@outlook.com>
2023-06-14 13:34:13 +08:00
2023-02-16 17:49:11 +08:00
2023-05-16 17:03:30 +08:00
2023-05-16 14:31:34 +08:00
2023-05-14 16:45:26 +08:00
2023-06-14 13:29:04 +08:00
2023-06-14 13:29:04 +08:00
2023-05-16 14:31:34 +08:00
2020-06-21 11:21:07 +02:00
2023-05-19 12:45:01 +08:00
2023-05-16 11:34:34 +08:00

基于Headscale实现的具有WebUI的Tailscale控制服务器

注意 此版本可能与Headscale、Tailscale官方版本均有不兼容的情况,如需与官方版本并用需要考虑进行兼容性测试。

使用方法

免配启动
编译后,直接运行程序即可

  • 默认超管控制台监听:8081端口,如需避免冲突进行修改只需运行前配置环境变量,例如 export MIRAGE_SYS_ADDR="127.0.0.1:18081"
  • 首次启动因为没有适当配置,控制器服务不会启动,需登录超管控制台(即通过前述的端口的/cockpit路径)绑定超级管理员(使用WebAuthn方式,建议使用苹果设备或yubikey,现代浏览器的密钥管理系统应该能支持但是并不建议)
  • 要使控制器能启动的基本配置需要在cockpit上配置服务域名,要具备实际使用价值则需要再多配置任一种或几种支持的第三方身份服务商
  • 最新版本已经弃用了原本的URL读取外部DERP列表的方式,为了连通性可用性,建议在正式用户/租户登入前配置至少一条司南信息

完成功能进度(ToDo List)

  • 系统零配置文件启动,页面初始化功能
  • 超管驾驶舱
    • 超管绑定/登录/登出
    • 系统运行状态展示与控制
    • 配置页
      • 系统基本配置
      • 三方服务配置【后续需要进行调整】
      • 超管换绑
      • 客户端版本发布
    • 租户页
      • 租户列表展示
      • 删除租户
      • 编辑租户(owner、provider、名称、magicDomain)
      • 租户用量信息
    • DERP页
      • 全局DERP服务配置
      • DERP服务自动化部署
      • DERP详情页
    • 用户页?
      • 个人租户信息展示与管理?
    • 系统日志页
  • 注册与登录
    • Google、Microsoft、GitHub、Apple账号登录
    • OIDC对接阿里云IDaaS登录【暂时弃用】
    • 对接阿里云手机号注册【暂时弃用】
    • 个人微信/QQ/微博登录
    • 企业微信/钉钉对接登录
  • 主界面框架与页头部用户基本信息展示、登出
  • 设备页签
    • 设备列表信息展示
    • 单个设备详情页展示
    • 设备IP复制与设备控制菜单展示
    • 修改设备名
    • 启/停用设备密钥过期
    • 编辑设备子网路由
    • 删除设备
    • 编辑设备ACL标签
    • 客户端版本更新提示
    • 分享设备
  • 服务页签【暂不考虑】
  • 用户页签
    • 用户列表展示
    • 管理员身份转移/添加
    • 更多种类角色划分编辑
    • 用户设备筛查
    • 用户冻结
  • ACL页签
    • 标签管理
    • 群组管理
    • 别名管理?
    • ACL规则条目编辑
  • DNS页签
    • 基本信息展示
    • 启/停用MagicDNS
    • 启/停用Override Local
    • 添加全球域名服务器
    • 添加split域名服务器
    • 修改/删除域名服务器
    • Basedomain解绑用户名以及可修改
    • Split域名服务器可调整顺序
    • DNS厂商预植【暂不考虑】
    • HTTPS证书(BETA)【暂不考虑】
    • NextDNS支持【暂不考虑】
  • DERP页签
    • 组织DERP列表展示
    • 组织DERP列表基本操作接口
    • 全局DERP的区别展示
    • 全局DERP区域的禁用操作
  • 设置页签
    • 通用设置 (暂时不处理设备需预授权开关)
      • 组织名称
      • 身份提供商
      • 设备默认秘钥过期时长
    • 账单及用量显示
    • 密钥管理
      • 授权密钥管理【需要考量这个与用户绑定关系】
      • API密钥管理【暂不考虑】
    • 特性功能开关
    • webhook【暂不考虑】
    • OAuth Client【暂不考虑】
  • 组织切分及身份源管理
    • 按组织划分最终用户
    • 组织管理员配置
    • DNS、ACL及其他有关系统配置归属至组织
  • 日志页签【暂不考虑】
  • i18n【暂不考虑】
  • 前后端分离【是否有必要?】【暂不考虑】

截图

超管界面

管理员(当前是用户)界面

感谢Tailscale、Headscale及开源社区的共同努力。

S
Description
蜃境:基于Headscale修改的带WebUI开源版本Tailscale控制器
Readme BSD-3-Clause 25 MiB
Languages
Vue 53%
Go 28.6%
HTML 16.4%
CSS 1.1%
JavaScript 0.9%