账号、令牌与权限
这一章讲谁能登录 keelOS、能做什么:管理员密码、API 令牌、网页登录、审计日志,以及用办公室账号(keelAuth)登录 keelOS。办公室统一账号的部署也在这里(账号 菜单)。
1. 谁能进来
keelOS 的网页和 API 有三种进门方式:
| 方式 | 用在哪 | 在哪管 |
|---|---|---|
| 管理员密码 | 网页登录页的密码登录 | 系统 → 令牌,见 §2 |
| API 令牌 | 脚本、监控、kRDPclient、管理端 | 系统 → 令牌,见 §3 |
| keelAuth 账号 | 办公室的人用自己的账号登录网页 | 系统 → keelAuth 登录,见 §6 |
每种方式进来之后都带着一组权限,页面上只显示这组权限允许的东西。没有权限看的标签不出现;只读账户只能看,不能改。
注意:下面的 系统 标签按权限出现:令牌、网页登录、keelAuth 登录 要有
token:admin;审计日志 要有log:read;其余见各章。一个标签都看不到时页面写"这一页需要管理员令牌"。
2. 管理员密码
管理员密码就是这台主机 root 的密码:网页的密码登录、主机控制台和 ssh 都用它。已有的登录和令牌不受影响。
- 打开 系统 → 令牌。
- 点 设置管理员密码(已有密码时是 修改管理员密码,要先输 当前密码)。
- 输 新密码 和 再输一次新密码,点 保存。密码至少 8 个字符。
注意:不管 keelAuth 怎样,管理员密码一直能用。keelAuth 出了问题、或者忘了某个令牌,都可以用它进来。
3. 令牌
令牌是给程序用的钥匙:脚本、监控、kRDPclient、keel 管理端都用令牌连主机。系统 → 令牌 列出所有令牌:ID、名字、权限、生成(时间和由谁生成)、最后使用(时间和来源地址)、到期。
生成令牌
- 点 新令牌。
- 名字:不填就用
token-日期-时间。 - 用途:选一个,下面的说明和权限随之变化:
| 用途 | 能做什么 |
|---|---|
| 远程桌面客户端(kRDPclient、mstsc) | 列出虚拟机、打开画面、电源按钮、共享 USB 设备。 |
| 管理端(keel manager) | 除令牌和主机 shell 以外的全部。在 管理端 标签里把主机交给管理端时会自动生成这种令牌。 |
| 监控、脚本(只读) | 只看:虚拟机、镜像、主机和它的日志。 |
| 管理员(全部权限) | 全部权限,和管理员登录一样。 |
| 其他(自己勾选权限) | 自己勾这个令牌能做的事。 |
- 选 其他 时,勾 权限(至少一项):
| 权限 | 允许 |
|---|---|
vm:read |
列出、查看虚拟机 |
vm:power |
开机、关机、复位 |
vm:console |
画面和控制台 |
vm:input |
经 API 在虚拟机里打字、点鼠标(自动化) |
vm:snapshot |
快照和克隆 |
vm:usb |
往虚拟机里插 USB 设备 |
vm:write |
新建、修改虚拟机 |
vm:delete |
删除虚拟机 |
image:read |
查看镜像 |
image:write |
上传、删除镜像 |
host:read |
查看主机 |
log:read |
主机日志和诊断包 |
host:write |
主机设置、升级、重启 |
token:admin |
令牌和网页登录 |
- 只允许这些地址(可选,CIDR):填
192.168.1.0/24这样的网段(可以多个),令牌只在这些地址上有效。不填就不限。 - 到期:不过期,或
1d、7d、30d、365d。 - 点 生成令牌。
新令牌 只显示这一次:请现在点 复制。keel 只保存它的哈希,丢了只能吊销重建。用途选 kRDPclient 时,还会给出 kRDPclient 连接串(地址、证书和令牌合在一起),粘贴到 kRDPclient 的添加主机对话框,或点 用 kRDPclient 打开;它也只显示这一次。
只管部分虚拟机或标签的令牌,网页上还没有,在主机上用命令 keel token create --vm … 或 --tag …,见命令行 keel。
吊销令牌
点令牌那一行的 吊销,确认。令牌立刻失效,用它登录的网页登录也一起结束。
4. 网页登录
系统 → 网页登录 列出现在有效的网页登录:令牌(用哪个令牌或账号登录的)、来源(地址)、浏览器、登录时间、最后使用。你现在这一个标着 本浏览器。点别的行的 结束,那个浏览器马上要重新登录。
怀疑密码或令牌泄露时:先吊销令牌或改密码,再到这里结束可疑的登录。
5. 审计日志
系统 → 审计日志 记录谁在什么时候做了什么:改设置、开关机、建删虚拟机、生成和吊销令牌、显示 keelAuth 恢复密钥……每一条有 时间、令牌(谁)、来源(地址)、操作、对象、结果;失败的结果标成醒目的颜色。要 log:read 权限。
- 最新的在最上面,一页 100 条,用 较新 / 较早 翻页。
- 搜索框(搜索(令牌、地址、操作、对象、结果))按文字找。
- 从 / 到 选时间范围,今天、最近 7 天 一键填好;只看失败的 只留失败的;清除 去掉所有条件。
- 时间按主机设置的时区显示,见系统:维护、时间与主机终端。
6. 用 keelAuth 账号登录 keelOS
办公室有 keelAuth(见 §7)时,办公室的人可以用自己的账号登录 keelOS,不用另发密码或令牌。
- 先在 账号 菜单部署一台 keelAuth。keel 会自己在 keelAuth 里登记,登录页上就多了 用 … 登录。
- 打开 系统 → keelAuth 登录。状态 显示 已开启:登录页提供 …。想暂时不让人用 keelAuth 登录,点 关闭(再点 开启)。
- 在 谁能做什么 里设置 keelAuth 的组对应 keelOS 里的哪一级权限。点 修改,在 组和权限 对话框里 加一个组,写组名,选权限,保存:
| 级别 | 能做什么 |
|---|---|
| 管理员(全部) | 全部。 |
| 管理(令牌、登录和主机控制台以外的全部) | 除令牌、网页登录、主机控制台以外的全部。 |
| 操作(开关机、控制台、快照) | 开关机、控制台、快照。 |
| 监看(查看、日志) | 只看,加日志。 |
| 只读(查看) | 只看。 |
- 组还没在 keelAuth 里建时,表里 keelAuth 里 一列写 没有,点 建好缺的组。
- 在 keelAuth 里把人放进这些组。他们在 keelOS 登录页点 用 … 登录,在 keelAuth 的登录页输自己的账号。
要点:
- 在几个组里的人取最高的权限;一个组都不在的人不能登录。
- 权限 15 分钟内跟上 keelAuth:移出组、停用或删除账号,登录就结束。
- keelAuth 登录页在 keelOS 自己的地址上打开,不需要为它加 DNS 记录或证书。
- keelAuth 没有应答时,登录页提示用管理员密码登录。
- 有多台 keelAuth 时用 用哪个 keelAuth 选一台。keel 在 keelAuth 里的客户端 一行显示登记状态;写 未登记 时点 重新登记。
注意:用 keelAuth 登录的人退出时,keelOS 会问只退出 keelOS(退出 keel),还是连 keelAuth 一起退出(连 keelAuth 一起退出)。公用电脑选后者。
7. 账号菜单:keelAuth
左边菜单的 账号 是 keelAuth:办公室的账号服务器,跑在这台主机的一台虚拟机里。用户和组只在一处管理;设备和程序经 LDAP、网页应用经单点登录(OIDC)、Wi-Fi 和 VPN 经 RADIUS 来用这些账号;keelNAS 也用它的用户。
部署
没有 keelAuth 时,页面写"这台主机上没有 keelAuth"。
- 需要 keelAuth 的软件包。主机上没有时,按钮是 到市场里获取 keelAuth,到市场装好后回来。
- 点 部署一台 keelAuth,填:
- 名字。
- keelAuth 版本。
- 网络,和 网络上的地址:固定地址(推荐:设备要填这个地址)(再填 地址和前缀 如
192.168.1.30/24、网关、DNS 服务器),或 DHCP(在路由器上给它保留地址)。设备要填 keelAuth 的地址,所以应当固定。固定地址时浏览器和应用直接用 IP 访问,不需要 DNS,但 passkey 不可用;用 DHCP 时域名必须能解析。 - 名字(DNS):keelAuth 用这个名字应答,证书上也是它;请在办公室的 DNS 里加上。以后不容易改。 - 内存(不填用默认的 0.5 GiB)。 - 点 部署并启动。keel 生成第一个管理员,弹出 keelAuth 的第一个管理员,列出 用户名、密码、它的页面。密码只显示这一次,请记下,点 已记下。
虚拟机一般不到一分钟就起来,页面会写 keelAuth 正在启动,好了自己出现。
日常使用
keelAuth 起来后,账号 页面里显示的就是 keelAuth 自己的管理页面:加、删、停用用户,设组,登记 LDAP 设备、单点登录应用和 RADIUS 客户端(Wi-Fi 的接入点、VPN),上传办公室自己的证书。keelOS 在进入时已经替你登录了,不用再输密码;直接在办公室里打开 keelAuth 自己的页面时才要用第一个管理员的账号。想要大一点的窗口点 在新窗口打开。
有多台 keelAuth 时,先看到列表,点一台进去,用 全部 keelAuth 回来。
页头上还有(要主机写权限):
- 恢复密钥:keelAuth 把 Wi-Fi 和共享用的密码哈希用一把只有这台主机能打开的密钥加密。要在另一台主机上(或这台重装以后)恢复 keelAuth 的备份,需要这个恢复密钥。点 显示恢复密钥(这会记进审计日志),复制 或 下载,和备份一起保管但不要放在同一个地方:两样都拿到的人能读出密码哈希。
- 重命名、删除。删除 会连虚拟机和所有磁盘一起删掉,所有账号也没了,不能恢复。
- keelAuth 不应答时,页面按原因写:keelAuth 已关机(点 启动 keelAuth)、keelAuth 已挂起(恢复 keelAuth)、虚拟机已被删除、或 keelAuth 没有应答(重试,或到 虚拟机 里看它)。忘掉这台 keelAuth 只让这个页面不再管它,虚拟机和账号都留着。
升级 keelAuth
有新版本时卡片上显示 可以升级,页头有 升级… 按钮。keel 把 keelAuth 关机,把系统盘换成新版本的,再启动;账号、组、密码、证书和地址都在它的数据盘上,不变。登录(LDAP、RADIUS、单点登录)大约一分钟用不了。新版本起来后不正常的话,keel 自己换回旧版本并说明原因。
旧版本保留 7 天:点 回退 回去(升级以后改的用户、组和密码会丢失),或点 保留这个版本 删掉旧版本。
8. 1.0 的限制
- 令牌只能按权限和来源网段限制;只管部分虚拟机的令牌要用命令行。
- 没有 keelOS 自己的用户列表:多人使用靠 keelAuth 的组,或者每人一个令牌。