JumpServer功能介绍及安装部署、使用示例
一、JumpServer简介
JumpServer是全球首款完全开源的堡垒机,使用GNU GPL v2.0开源协议,是符合4A(认证Authentication、授权Authorization、账号Accounting、审计Auditing)的专业运维审计系统。它采用Python/Django开发,遵循Web 2.0规范,配备了业界领先的Web Terminal解决方案,具有美观的交互界面和良好的用户体验。
JumpServer采用分布式架构,支持多机房跨区域部署,中心节点提供API,各机房部署登录节点,可横向扩展、无并发访问限制。它支持管理SSH、Telnet、RDP、VNC等多种协议资产。
二、JumpServer核心功能
1. 主要功能特点
- 完全开源:零门槛,线上快速获取和安装
- 分布式架构:轻松支持大规模并发访问
- 无插件设计:仅需浏览器,提供极致的Web Terminal使用体验
- 多云支持:一套系统可同时管理不同云平台上的资产
- 云端存储:审计录像云端存储,永不丢失
- 多租户支持:一套系统可被多个子公司和部门同时使用
2. 详细功能列表
-
用户管理:
- 支持用户组/用户添加,方便进行授权
- 用户是授权和登录的主体
-
资产管理:
- 资产组/资产/IDC管理,主机信息简洁完整
- 支持用户自定义备注登录
- 支持自动获取主机硬件信息
-
权限管理:
- Sudo/系统用户/授权规则管理
- 支持sudo授权,系统用户用于登录客户端
- 授权将用户、资产和系统用户关联起来
-
审计功能:
- 在线实时监控用户操作
- 统计和录像回放用户操作内容
- 详细记录上传下载操作
- 支持阻断控制
-
文件传输:
- 支持文件上传下载
- 实现lrzsz方式传输
-
默认设置:
- 默认管理用户设置
- 包括用户密码密钥等默认信息,方便添加资产
三、JumpServer组件架构
JumpServer由多个组件构成,共同完成堡垒机的各项功能:
-
Core:JumpServer的核心组件,其他组件依赖此组件启动
-
Koko:服务于类Unix资产平台的组件,通过SSH、Telnet协议提供字符型连接(新版本中取代了Coco)
-
Lina:JumpServer的前端UI项目,主要使用Vue,Element UI完成
-
Luna:JumpServer的前端UI项目,主要使用Angular CLI完成
-
Lion:服务于Windows资产平台的组件,用于Web端访问Windows资产
-
Omnidb:服务于数据库的组件,用于可视化界面纳管数据库
-
Razor:服务于RDP协议组件,主要功能是通过JumpServer Client方式访问Windows资产
-
Magnus:服务于数据库的组件,用于通过客户端代理访问数据库
-
Celery:处理异步任务的组件,用于执行JumpServer相关的自动化任务
四、JumpServer安装部署
1. 环境要求
- 硬件配置:最低2个CPU核心,4G内存,50G硬盘
- 操作系统:Linux发行版x86_64
- 软件依赖:
- Python = 3.6.x
- MySQL Server ≥ 5.6或MariaDB Server ≥ 5.5.56
- Redis
2. 安装方式选择
JumpServer提供多种安装方式,包括:
-
一键安装(推荐新手使用):
curl -sSL https://resource.fit2cloud.com/jumpserver/jumpserver/releases/download/v3.10.18/quick_start.sh | bash安装完成后需要修改配置文件中的DOMAINS字段
-
容器化部署(推荐生产环境使用):
- 分为MySQL、Redis和JumpServer三个容器部署
- 支持使用外置Database和Redis
-
源码安装(适合定制化需求):
- 需要手动安装Python虚拟环境、依赖库等
3. 容器化部署详细步骤
以下是容器化部署JumpServer的详细步骤:
-
部署MySQL容器服务:
# 拉取MySQL 5.7镜像 docker pull mysql:5.7 # 创建配置和数据目录 mkdir -p /iflytek/mysql/{mysql.conf.d,conf.d,data} # 启动MySQL容器 docker run -it -d -p 3306:3306 \ -v /iflytek/mysql/mysql.conf.d/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf \ -v /iflytek/mysql/conf.d/mysql.cnf:/etc/mysql/conf.d/mysql.cnf \ -v /iflytek/mysql/data/:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD="yourpassword" \ mysql:5.7 -
部署Redis容器服务:
docker pull redis:latest docker run --name redis -d -p 6379:6379 redis -
部署JumpServer容器:
docker pull jumpserver/jms_all:latest docker run -d --name jms_all \ -p 80:80 -p 2222:2222 \ -e DB_HOST=mysql_host \ -e DB_PORT=3306 \ -e DB_USER=root \ -e DB_PASSWORD=yourpassword \ -e DB_NAME=jumpserver \ -e REDIS_HOST=redis_host \ -e REDIS_PORT=6379 \ jumpserver/jms_all:latest
4. 源码安装详细步骤
对于需要更多定制化的用户,可以选择源码安装方式:
-
准备Python3和虚拟环境:
# 安装依赖包 yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release git # 编译安装Python 3.6 wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz tar xvf Python-3.6.1.tar.xz && cd Python-3.6.1 ./configure && make && make install # 创建Python虚拟环境 python3 -m venv /opt/py3 source /opt/py3/bin/activate -
安装JumpServer Core组件:
# 下载JumpServer源码 cd /opt/ git clone --depth=1 https://github.com/jumpserver/jumpserver.git && cd jumpserver && git checkout master # 安装依赖 cd /opt/jumpserver/requirements yum -y install $(cat rpm_requirements.txt) pip install -r requirements.txt # 安装Redis yum -y install redis service redis start # 安装MySQL yum -y install mariadb mariadb-devel mariadb-server service mariadb start # 创建数据库 mysql -e "create database jumpserver default charset 'utf8';" mysql -e "grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'somepassword';" # 配置JumpServer cd /opt/jumpserver cp config_example.py config.py vi config.py # 修改数据库配置 # 初始化数据库 cd /opt/jumpserver/utils bash make_migrations.sh # 运行JumpServer cd /opt/jumpserver python run_server.py all -
安装其他组件(Koko、Luna、Guacamole等):
参考中的详细步骤安装其他必要组件。
五、JumpServer使用示例
1. 登录JumpServer
安装完成后,通过浏览器访问:
http://<JumpServer服务器IP地址>:<服务运行端口>
默认用户名:admin
默认密码:admin
首次登录后需要修改密码。
2. 资产管理
2.1 准备工作
准备测试资产,例如:
| IP地址 | 主机名 | 端口 | 操作系统 | 管理员用户 | 密码 |
|---|---|---|---|---|---|
| 172.16.80.11 | test_ssh01 | 22 | Centos 7 | root | Test2020.L |
| 172.16.80.21 | test_rdp01 | 3389 | Windows 10 | administrator | Test2020.W |
| 172.16.80.31 | test_mysql01 | 3306 | MySQL 5 | root | Test2020.M |
2.2 编辑资产树
- 点击页面左侧的"资产管理" → “资产列表”
- 在根节点"Default"右键新建"SSH Server"、“RDP Server”、"Database"三个节点
资产树样式如下:
Default
├─ SSH Server
├─ RDP Server
└─ DB
2.3 创建资产
- 点击"资产管理" → “资产列表” → “主机” → “创建”
- 创建Linux服务器,填写资产信息并创建特权用户
示例Linux资产创建:
名称: test_ssh01
IP/主机: 172.16.80.11
资产平台: Linux
节点: /Default/SSH Server
协议组: ssh 22
账号列表: 添加
添加登录资产用户:
名称: 172.16.80.11_root
用户名: root
特权用户: 是
密文类型: 密码
密码: Test2020.L
2.4 创建数据库应用
- 点击"资产管理" → “资产列表” → “创建” → 数据库下选择"MySQL"数据库
示例MySQL数据库应用创建:
名称: test_mysql01
地址: 172.16.80.31
节点: /Default/DB
数据库: test
协议组: mysql:3306
账号列表: 添加
添加登录数据库用户:
名称: 172.16.80.23_root
用户名: root
特权用户: root
密文类型: 密码
密码: Test2020.M
3. 创建授权规则
- 点击"权限管理" → “资产授权” → “创建”
- 创建登录授权规则(例如Linux资产)
示例授权规则:
名称: admin_ssh01
用户: Administrator(admin)
用户组: -
资产: test_ssh01(172.16.80.11)
节点: -
账号: 所有账号
动作: 全部
4. 用户登录资产
用户可以通过两种方式登录资产:
-
Web界面登录:
- 用户登录邮箱查看自己的密码
- 登录JumpServer Web界面,查看能够管理的服务器
- 点击"查看主机" → "连接"即可登录
-
密钥登录:
- 从邮箱中下载自己的密钥
- 输入密钥密码(在邮件中可见)
- 导入到SSH客户端(如Xshell)中
- 登录JumpServer,输入管理用户,选择密钥登录
5. 监控和审计
JumpServer提供完善的监控和审计功能:
- 监控:用于实时监控当前登录人员所有正在执行的操作
- 统计:用于查看所有已经执行过的命令
- 阻断:用于踢出违规操作的用户
六、常见问题与解决方案
-
资产连接问题:
- 如果资产"可连接"图标是黄色或红色,可以点击资产名称,在右侧"快速修改" → "测试可连接性"点击"测试"按钮,根据错误提示处理
- 检查特权用户的用户名和密码是否正确
- 确保该特权用户能从JumpServer主机SSH登录到资产主机上
-
Windows资产连接问题:
- Windows资产需要手动安装OpenSSH Server
- 如需执行更新资产信息、可连接性测试等自动化任务,需先进行Windows SSH设置
-
MySQL应用连接问题:
- 需要授权Core和KoKo的远程访问权限
- 确保MySQL用户有足够的权限
-
邮件发送问题:
- 测试发现QQ邮箱、新浪邮箱、163邮箱可能在添加用户时无法发送邮件,搜狐邮箱能够正常使用
- 确保SMTP配置正确
七、总结
JumpServer作为一款功能完善的开源堡垒机,提供了从资产管理、用户授权到操作审计的全套解决方案。通过容器化部署可以快速搭建环境,而源码安装则适合有定制化需求的用户。其分布式架构设计使其能够适应大规模企业环境,而简洁的Web界面则降低了使用门槛。
无论是运维团队需要统一管理服务器访问权限,还是企业需要满足安全合规要求,JumpServer都是一个值得考虑的选择。通过合理配置资产、用户和授权规则,可以构建一个既安全又高效的运维审计系统。
388

被折叠的 条评论
为什么被折叠?



