开源堡垒机JumpServer功能介绍及安装部署、使用示例

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. 详细功能列表

  1. 用户管理

    • 支持用户组/用户添加,方便进行授权
    • 用户是授权和登录的主体
  2. 资产管理

    • 资产组/资产/IDC管理,主机信息简洁完整
    • 支持用户自定义备注登录
    • 支持自动获取主机硬件信息
  3. 权限管理

    • Sudo/系统用户/授权规则管理
    • 支持sudo授权,系统用户用于登录客户端
    • 授权将用户、资产和系统用户关联起来
  4. 审计功能

    • 在线实时监控用户操作
    • 统计和录像回放用户操作内容
    • 详细记录上传下载操作
    • 支持阻断控制
  5. 文件传输

    • 支持文件上传下载
    • 实现lrzsz方式传输
  6. 默认设置

    • 默认管理用户设置
    • 包括用户密码密钥等默认信息,方便添加资产

三、JumpServer组件架构

JumpServer由多个组件构成,共同完成堡垒机的各项功能:

  1. Core:JumpServer的核心组件,其他组件依赖此组件启动

  2. Koko:服务于类Unix资产平台的组件,通过SSH、Telnet协议提供字符型连接(新版本中取代了Coco)

  3. Lina:JumpServer的前端UI项目,主要使用Vue,Element UI完成

  4. Luna:JumpServer的前端UI项目,主要使用Angular CLI完成

  5. Lion:服务于Windows资产平台的组件,用于Web端访问Windows资产

  6. Omnidb:服务于数据库的组件,用于可视化界面纳管数据库

  7. Razor:服务于RDP协议组件,主要功能是通过JumpServer Client方式访问Windows资产

  8. Magnus:服务于数据库的组件,用于通过客户端代理访问数据库

  9. 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提供多种安装方式,包括:

  1. 一键安装(推荐新手使用):

    curl -sSL https://resource.fit2cloud.com/jumpserver/jumpserver/releases/download/v3.10.18/quick_start.sh | bash
    

    安装完成后需要修改配置文件中的DOMAINS字段

  2. 容器化部署(推荐生产环境使用):

    • 分为MySQL、Redis和JumpServer三个容器部署
    • 支持使用外置Database和Redis
  3. 源码安装(适合定制化需求):

    • 需要手动安装Python虚拟环境、依赖库等

3. 容器化部署详细步骤

以下是容器化部署JumpServer的详细步骤:

  1. 部署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
    
  2. 部署Redis容器服务

    docker pull redis:latest
    docker run --name redis -d -p 6379:6379 redis
    
  3. 部署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. 源码安装详细步骤

对于需要更多定制化的用户,可以选择源码安装方式:

  1. 准备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
    
  2. 安装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
    
  3. 安装其他组件(Koko、Luna、Guacamole等)
    参考中的详细步骤安装其他必要组件。

五、JumpServer使用示例

1. 登录JumpServer

安装完成后,通过浏览器访问:

http://<JumpServer服务器IP地址>:<服务运行端口>

默认用户名:admin
默认密码:admin

首次登录后需要修改密码。

2. 资产管理

2.1 准备工作

准备测试资产,例如:

IP地址主机名端口操作系统管理员用户密码
172.16.80.11test_ssh0122Centos 7rootTest2020.L
172.16.80.21test_rdp013389Windows 10administratorTest2020.W
172.16.80.31test_mysql013306MySQL 5rootTest2020.M
2.2 编辑资产树
  1. 点击页面左侧的"资产管理" → “资产列表”
  2. 在根节点"Default"右键新建"SSH Server"、“RDP Server”、"Database"三个节点

资产树样式如下:

Default
├─ SSH Server
├─ RDP Server
└─ DB
2.3 创建资产
  1. 点击"资产管理" → “资产列表” → “主机” → “创建”
  2. 创建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 创建数据库应用
  1. 点击"资产管理" → “资产列表” → “创建” → 数据库下选择"MySQL"数据库

示例MySQL数据库应用创建:

名称: test_mysql01
地址: 172.16.80.31
节点: /Default/DB
数据库: test
协议组: mysql:3306
账号列表: 添加

添加登录数据库用户:

名称: 172.16.80.23_root
用户名: root
特权用户: root
密文类型: 密码
密码: Test2020.M

3. 创建授权规则

  1. 点击"权限管理" → “资产授权” → “创建”
  2. 创建登录授权规则(例如Linux资产)

示例授权规则:

名称: admin_ssh01
用户: Administrator(admin)
用户组: -
资产: test_ssh01(172.16.80.11)
节点: -
账号: 所有账号
动作: 全部

4. 用户登录资产

用户可以通过两种方式登录资产:

  1. Web界面登录

    • 用户登录邮箱查看自己的密码
    • 登录JumpServer Web界面,查看能够管理的服务器
    • 点击"查看主机" → "连接"即可登录
  2. 密钥登录

    • 从邮箱中下载自己的密钥
    • 输入密钥密码(在邮件中可见)
    • 导入到SSH客户端(如Xshell)中
    • 登录JumpServer,输入管理用户,选择密钥登录

5. 监控和审计

JumpServer提供完善的监控和审计功能:

  1. 监控:用于实时监控当前登录人员所有正在执行的操作
  2. 统计:用于查看所有已经执行过的命令
  3. 阻断:用于踢出违规操作的用户

六、常见问题与解决方案

  1. 资产连接问题

    • 如果资产"可连接"图标是黄色或红色,可以点击资产名称,在右侧"快速修改" → "测试可连接性"点击"测试"按钮,根据错误提示处理
    • 检查特权用户的用户名和密码是否正确
    • 确保该特权用户能从JumpServer主机SSH登录到资产主机上
  2. Windows资产连接问题

    • Windows资产需要手动安装OpenSSH Server
    • 如需执行更新资产信息、可连接性测试等自动化任务,需先进行Windows SSH设置
  3. MySQL应用连接问题

    • 需要授权Core和KoKo的远程访问权限
    • 确保MySQL用户有足够的权限
  4. 邮件发送问题

    • 测试发现QQ邮箱、新浪邮箱、163邮箱可能在添加用户时无法发送邮件,搜狐邮箱能够正常使用
    • 确保SMTP配置正确

七、总结

JumpServer作为一款功能完善的开源堡垒机,提供了从资产管理、用户授权到操作审计的全套解决方案。通过容器化部署可以快速搭建环境,而源码安装则适合有定制化需求的用户。其分布式架构设计使其能够适应大规模企业环境,而简洁的Web界面则降低了使用门槛。

无论是运维团队需要统一管理服务器访问权限,还是企业需要满足安全合规要求,JumpServer都是一个值得考虑的选择。通过合理配置资产、用户和授权规则,可以构建一个既安全又高效的运维审计系统。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学亮编程手记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值