会话
每一次连接,也就是工作台里的每个标签页、每个资产页面,或者经由SSH网关的每个连接,都是一个会话。管理员在会话页面查看,分两个标签:
- 在线:此刻正开着的连接。
- 历史:已经结束的连接。
记录了什么
| 列 | 含义 |
|---|---|
| 资产 | 连接的资产 |
| 协议 | SSH、RDP、VNC或Telnet |
| 用户 | 打开会话的用户 |
| 客户端IP | 用户连接时的地址,能查到时附带归属地 |
| 用户代理 | 用户的浏览器和操作系统;经由SSH网关的是客户端的SSH版本,例如SSH-2.0-OpenSSH_9.6 |
| 连接开始时间 | 连接建立的时间 |
| 命令记录 | SSH会话里执行过的命令数,点进去是命令记录页面 |
| 连接持续时间 | 已经连了多久,或者一共连了多久 |
用户关掉标签页或SSH客户端、远端结束连接、网络断开、管理员停止它,或者用户失去了权限时,会话从在线移到历史。
每个会话有这些操作:
| 操作 | 标签页 | |
|---|---|---|
| 旁观 | 在线 | 实时旁观,见下文 |
| 回放 | 在线和历史,有录像时 | 在新标签页里播放录像 |
| 停止 | 在线 | 断开连接,见下文 |
| 删除 | 历史 | 从列表里删掉,连同它的录像 |
实时旁观
在线会话有一个旁观操作,会在新的浏览器标签页里打开这个会话,只读:在这里输入或点击的内容不会到会话里。同一个会话可以有多个管理员同时旁观。
- SSH和Telnet:管理员看到的和用户自己看到的终端一样:先是到目前为止的输出(最多最近512 KB),用来重画屏幕,然后实时显示后面的一切,包括终端大小的变化。
- VNC和RDP:先从会话开头画到当前,再实时跟随。这读的是正在写入的会话录像,所以需要打开录像,见录像。
经由SSH网关的交互式shell可以旁观;只执行命令、传文件或做端口转发的连接不行。被旁观的用户不会收到提示。管理员每打开一次旁观,操作日志里就记一条session-monitor。
停止会话
在线会话上的停止会立刻断开连接,不论什么协议。用户的标签页会显示连接已关闭;经由网关的SSH客户端会被断开。停止会话并不能阻止他再连上来;要阻止,先改他的权限。
权限收回即断开
用户一旦不再有权连接这个资产,Casvisor会自己结束他的会话:
- 管理员修改或删除一条权限、一个资产,或者用自带账号时修改或删除一个用户之后,立刻把所有在线会话重新检查一遍;
- 每30秒把所有在线会话检查一遍,权限过了结束时间的会话就在这时结束。
按用户此刻的地址,已经没有任何权限覆盖的会话会被关闭,代码为802,原因例如The permission to connect to the asset: web-01 has been revoked或The asset: my-org/web-01 has been deleted。SSH和Telnet终端会把原因显示给用户;其他标签页和SSH客户端直接断开。管理员不受影响,因为他们不需要权限。
对经由SSH网关的连接,这项检查还会更新动作:收回上传、下载或端口转发后,下一次传文件或转发连接就会被拒绝,会话本身不断开。
用自带账号时,被禁用或删除的用户会被断开,改用户组也立刻生效。在Casdoor里做的改动(例如把人移出用户组)本身不会触发这项检查,见Casdoor里的改动什么时候生效。