入门
介绍
Casvisor是一个开源堡垒机,也叫跳板机。它放在运维人员和他们要管的系统之间:
- 用户用Casvisor自带的账号登录,或者通过Casdoor登录,这样你已经配好的单点登录、多因素认证、LDAP和第三方登录在这里同样生效。
- 用户只能看到权限允许他们访问的服务器(称为资产),并在浏览器标签页里通过SSH、RDP、VNC或Telnet连接。用户电脑上和服务器上都不用装任何东西。
- SSH也可以经由Casvisor的SSH网关,用自己的
ssh、scp、sftp或VS Code Remote连接,权限照样生效。 - 服务器的账号由Casvisor自己填入,密码不会到浏览器或SSH客户端里。
- 每次连接都是一个会话,管理员能在列表里看到、实时旁观和强制断开,并且会被录像,可以在浏览器里回放。SSH和Telnet会话里执行的命令会被记录,并能按命令规则拦截;传过的文件和通过接口做的每一次改动都记进操作日志;权限被收回时,会话会自己结束。
- 管理员还能在补丁页面扫描服务器上待装的系统更新并安装。
Casvisor是一个Go程序加React前端,采用Apache-2.0许可证,没有企业版。
整体结构
浏览器 Casvisor 服务器
+-----------+ HTTPS +--------------------------+ SSH +--------------+
| 工作台 |----------->| 登录 |---------->| Linux |
| 标签页 | WebSocket | 权限 (Casbin) | RDP | Windows |
| 播放器 | | 会话、录像、 |---------->| 桌面 |
+-----------+ | 命令记录、操作日志 | VNC | 网络设备 |
| 补丁 |---------->| |
+-----------+ SSH 2222 | | Telnet | |
| ssh、scp、|----------->| SSH网关 |---------->| |
| VS Code | +--------------------------+ +--------------+
+-----------+ | |
SQLite或MySQL recordings/- 四种协议都由Casvisor用Go直接处理:浏览器通过WebSocket连Casvisor,Casvisor再连服务器。服务器上什么都不用装。
- SSH网关是Casvisor里的一个SSH服务端,监听单独的端口。用户用公钥登录它,它替用户建立到资产的SSH连接。
- 网域网关经由SSH跳板机或agent,访问Casvisor直接连不进去的网络里的资产,见网域网关。
- 登录用Casvisor自带的账号;配置了Casdoor时改用Casdoor,这时用户和用户组都在Casdoor里。
- 资产、权限、会话、命令记录、SSH公钥、补丁和操作日志存在Casvisor的数据库里,默认是SQLite,也可以用MySQL。录像是
recordings/下的文件。
它解决什么
| 你想 | 看这里 |
|---|---|
| 给外包人员一周时间的两台服务器SSH权限,别的都不给 | 权限 |
| 让整个运维组能连所有Linux服务器,但只能从办公网连 | 权限 |
| 不让人从Windows桌面里往外复制文字或文件 | 权限、协议 |
| 用服务器的人拿不到它的root密码 | 资产 |
让人用自己的ssh、scp和VS Code Remote,又不把服务器密钥交出去 | SSH网关 |
| 允许往服务器上传文件,但不许往下拿 | 文件传输 |
| 看现在谁连着、他在做什么,并把某个人踢下线 | 会话 |
| 回放某人上周在服务器上做了什么 | 录像 |
知道服务器上执行过哪些命令,在rm -rf /执行之前拦下它 | 命令记录和命令规则 |
| 查出是谁、什么时候改了某条权限 | 操作日志 |
| 找出每台服务器待装的更新并装上 | 补丁管理 |
还没做的
Casvisor正在重做成完整的堡垒机,堡垒机该有的几项还在路线图上:一个资产多个系统账号与自动改密,访问申请与审批,数据库和Kubernetes访问,日志转发到syslog。本手册写的是当前代码里已有的功能,某个设置暂时不起作用的地方会直接说明。
下一步
用Docker跑起来。如果你用Casdoor,之后再对接它。