JumpServer:开源堡垒机与审计网关
bash curl -fsSL https://get.docker.com | bash -s docker
安装 Docker Compose:
```bash
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
下载并运行 JumpServer
官方提供了 jumpserver-installer 快速部署工具,会自动拉取所需镜像并以 compose 方式启动。
# 克隆安装脚本
git clone --depth=1 https://github.com/jumpserver/installer.git
cd installer
# 生成随机加密密钥和初始化配置文件
cp config_example.conf config.conf
./jmsctl.sh install
安装过程会引导你设置数据库密码、Redis 密码等,如无特殊需求可全部使用默认随机生成。完成后启动:
./jmsctl.sh start
等待约几分钟,所有容器启动后,可通过浏览器访问 http://<你的服务器IP>,默认用户名密码为 admin / admin,登录后会强制修改密码。
注意:若为生产环境,建议部署 Nginx 反向代理并配置 SSL 证书,并修改
config.conf中的外部访问地址。
服务组件一览
安装完成后,会运行以下核心容器:
| 组件 | 作用 |
|---|---|
| Core | 主服务,负责 API、用户、资产等逻辑 |
| Koko | SSH 连接代理组件,提供 Web 终端与 SSH 代理 |
| Lion | RDP/VNC 连接代理组件(Windows 远程桌面等) |
| Magnus | 数据库审计代理组件 |
| Chen | Web 前端页面 |
| Redis / MySQL | 缓存与主数据库 |
| Celery | 后台任务处理 |
可使用 ./jmsctl.sh status 查看各组件状态。
快速上手配置
1. 添加资产
登录 JumpServer 界面,进入“资产管理 → 资产列表”,点击“创建”:
- 主机名:填写服务器标识(如 web-server-01)。
- IP / 域名:填写服务器的实际 IP 地址。
- 协议组:勾选
ssh并填写端口(默认 22)。 - 网域:根据网络环境选择(默认 Default)。
2. 创建系统用户
资产上的登录账号需要抽象为“系统用户”。进入“资产管理 → 系统用户”,点击“创建”:
- 名称:可读性强的名字,如
root_priv。 - 用户名:服务器上已有的用户名,如
root。 - 认证方式:密码或 SSH 密钥。
- 填密码:直接写入密码(JumpServer 会加密存储)。
- 填密钥:粘贴私钥。推荐使用密钥方式,并可开启“自动推送”功能,由 JumpServer 将公钥分发到资产上。
3. 授权用户访问
进入“权限管理 → 资产授权”,点击“创建”:
- 用户/用户组:选择需要授权的用户(例如
admin或者新建一个普通用户ops)。 - 资产/资产组:选择之前添加的服务器。
- 系统用户:选择刚才创建的
root_priv。 - 动作:勾选允许的操作(通常勾选“连接”和“上传下载”即可)。
保存后,授权当即生效。用户即可在其“我的资产”中看到可访问的服务器。
4. 连接资产并验证
用户登录后,进入“工作台 → Web 终端”,右侧会列出已授权的资产列表,双击即可以 Web 方式登录到服务器。
也可以使用本地 SSH 客户端连接 JumpServer 的 Koko 代理端口(默认 2222),使用 JumpServer 的账号密码认证,然后选择资产登录。
审计功能使用
在“审计台”下,可查看:
- 会话审计:所有在线与历史会话,支持录像回放和命令列表。
- 命令记录:精确到每个命令执行的时间与内容。
- 文件传输记录:通过 SFTP 上传下载的文件详情。
- 数据库审计:在 Magnus 组件支持下,数据库查询的 SQL 语句会被记录。
回放功能基于 ASCII(Web 终端)或视频(数据库、RDP 等)提供流畅的播放体验,可快速定位敏感操作。
进阶核心功能
命令过滤器
你想限制某些用户只能执行特定命令(比如禁止 rm -rf),可以创建命令过滤器规则,并关联到授权中。系统会自动拦截并记录违规命令。
资产批量导入与云同步
- 批量导入:提供 CSV 模板,可一次导入大量资产。
- 云主机同步:配置云账号凭证(如阿里云 AK),设置定期同步任务,自动将云服务器纳管至 JumpServer。
改密计划
针对密码认证的系统用户,可创建改密计划,定期自动变更服务器密码,并将新密码回写至 JumpServer,消除密码长期不变的隐患。
会话共享与协作
管理员可邀请团队成员加入自己的在线会话,进行实时协作排障,所有操作依然被完整记录在审计中。
常见部署拓扑
在实际企业环境中,推荐分层部署:
用户端 ---(HTTPS)---> 前端负载均衡 ---(HTTP)---> JumpServer Core 集群
|
Koko / Lion / Magnus 各组件横向扩展
资产侧通过 JumpServer 网域节点建立代理隧道,无需公网可达