概述

JumpServer官网:https://www.jumpserver.org/

JumpServer官网文档:https://docs.jumpserver.org/zh/v4/

GitHub地址:https://github.com/jumpserver/jumpserver

JumpServer 是一款由开源中国(OSCHINA)旗下团队使用python开发的开源堡垒机系统,遵循 Apache 2.0 开源协议。作为企业级的运维安全审计解决方案,它主要用于解决复杂环境下的服务器、网络设备、云资源等资产的集中管理、权限控制、操作审计等问题,帮助企业实现合规性管理并降低运维风险。

JumpServer分为开源版和企业版,开源版仅提供基础功能,适合中小企业或技术团队自主搭建,而企业版则支持集群部署,高可用(HA),多云管理,定制化开发等高级功能,适合企业和复杂场景(钱的好处-.-,还是有钱好哇)

JumpServer作用

  • 统一资产管理

    • 支持管理多种类型资产,包括 Linux/Windows 服务器、网络设备(如交换机、路由器)、数据库、云主机(如 AWS、阿里云、腾讯云等) 等。
    • 资产可按部门、环境(生产 / 测试)、标签等维度分组管理,方便权限分配和审计。
  • 细粒度权限控制

    • 基于 RBAC(角色访问控制) 模型,可灵活创建用户、角色、资产组的关联关系。
    • 支持动态授权,例如按时间段、协议(SSH/RDP/Telnet/MySQL 等)、IP 来源限制访问权限。
  • 多协议支持与会话管理

    • 支持 SSH、RDP、Telnet、VNC、MySQL、Redis 等主流协议的远程连接。
    • 提供 会话录制与实时监控,管理员可实时查看用户操作,或通过录像回放追溯历史操作,满足审计需求。
  • 审计与日志管理

    • 自动记录所有用户操作日志,包括登录日志、命令执行记录、文件传输记录等。
    • 支持日志检索、统计分析,可导出日志用于合规性检查(如等保、分保要求)。
  • 双因子认证(2FA)

    • 支持 Google Authenticator、RSA 令牌、短信验证等二次认证方式,增强登录安全性。
  • 插件扩展与 API 接口

    • 提供丰富的插件机制(如 LDAP/AD 集成、Sentry 监控、K8s 管理等),支持与企业现有系统对接。
    • 开放 RESTful API,方便与 ITSM、CMDB 等平台集成,实现自动化运维流程。

JumpServer单机部署

这里部署v4版本的JumpServer

环境信息

我这里仅使用一台机器作为安装,仅当做示例,生产环境需要将MySQL和JumpServer分开。

IP 系统 描述
10.0.0.10 Ubuntu22.04 用于安装MySQL
10.0.0.10 Ubuntu22.04 用于安装JumpServer

安装MySQL

MySQL版本需要5.7版本及以上,这里推荐参考这篇文章进行搭建MySQL:Linux系统搭建单机MySQL8.0.26版本

搭建完成数据库之后,需要执行下面的sql

create database jumpserver default charset 'utf8';

示例:

mysql> create database jumpserver default charset 'utf8';
Query OK, 1 row affected, 1 warning (0.01 sec) mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| jumpserver | # 创建的数据库
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.03 sec)

安装Redis

Redis需要6.0版本以上,安装方式可以参考这篇文章:Redis介绍及6.2.x版本安装

安装Docker

JumpServer启动依赖Docker,这里你可以选择安装或者不安装(不安装的话,安装jumpserver时会自动帮你安装)。

我们可以自己安装好对应的Docker服务,可以参考这篇文章:https://www.cnblogs.com/huangSir-devops/p/18822041#_label2

安装JumpServer

下载前置工具

apt-get update
apt-get install -y wget curl tar gettext iptables

在线安装

参考这篇文章:https://docs.jumpserver.org/zh/v4/installation/setup_linux_standalone/online_install/#1

离线安装:

前往JumpServer官网下载安装包:https://community.fit2cloud.com/#/download/jumpserver/v4-10-0-lts

下载完成之后上传至服务器中解压即可,我们这里使用离线安装

# 我这里已经上传至服务器中了
[root@lb ~]# ll jumpserver-ce-v4.10.0-x86_64.tar.gz
-rw-r--r-- 1 root root 1097249413 May 1 21:51 jumpserver-ce-v4.10.0-x86_64.tar.gz # 解压
[root@lb ~]# tar -xvf jumpserver-ce-v4.10.0-x86_64.tar.gz # 创建软连接
[root@lb ~]# ln -s jumpserver-ce-v4.10.0-x86_64 jumpserver

修改配置文件

# 修改配置文件
[root@lb ~/jumpserver]# vim config-example.txt
# 主要修改以下基本内容
VOLUME_DIR=/data00/data/jumpserver
# 可以用cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 50 | head -n 1 该命令生成
SECRET_KEY=k1Vx3xZScIbbbNamemXvZvtOmPJ4fJ3txO3ZLCXASEXvLyFK7K
# 可以用cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 16 | head -n 1 该命令生产
BOOTSTRAP_TOKEN=aYoYCQKqta2SdAyF
LOG_LEVEL=WARN
# 数据库的配置
DB_ENGINE=mysql
DB_HOST=10.0.0.10
DB_PORT=3306
DB_USER=root
DB_PASSWORD=huangsir
DB_NAME=jumpserver
# redis的配置
REDIS_HOST=10.0.0.10
REDIS_PORT=6379
REDIS_PASSWORD=123456
# 启动后的http端口号
HTTP_PORT=1180
#指定 Jumpserver 可访问的域名或 IP 地址及端口,该值可以写多个,也可以配置你的域名
DOMAINS=10.0.0.10:1180 # 配置https请求,我这里没有配置
# HTTPS_PORT=443
# SERVER_NAME=your_domain_name
# SSL_CERTIFICATE=your_cert
# SSL_CERTIFICATE_KEY=your_cert_key

创建jumpserver默认的目录,并将配置文件移动过去

[root@lb ~/jumpserver]# mkdir -p /opt/jumpserver/config && cp /root/jumpserver/config-example.txt /opt/jumpserver/config/config.txt

执行安装,会让你输入一些执行的参数

[root@lb ~/jumpserver]# ./jmsctl.sh install
2. Configure Persistent Directory
# 这里输入y
Do you need custom persistent store, will use the default directory /data00/data/jumpserver? (y/n) (default n): y To modify the persistent directory such as logs video, you can select your largest disk and create a directory in it, such as /data/jumpserver
Note: you can not change it after installation, otherwise the database may be lost Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv 47G 24G 21G 54% / # 直接回车
Persistent storage directory (default /data00/data/jumpserver):
complete 3. Configure DB
# 这里输入y
Do you want to use external MySQL? (y/n) (default y): y
# 这里可能会让你输入IP,你就输入配置文件中的IP即可,如果和我的一样,则直接回车
Please enter DB server IP (default 10.0.0.10):
# 下面的四步直接回车
Please enter DB server port (default 3306):
Please enter DB database name (default jumpserver):
Please enter DB username (default root):
Please enter DB password (default huangsir):
complete 4. Configure Redis
# 这里可以直接回车
Please enter Redis Engine? (redis/sentinel) (default redis): redis
# 这里输入y
Do you want to use external Redis? (y/n) (default y): y
# 这里可能会让你输入IP,你就输入配置文件中的IP即可,如果和我的一样,则直接回车
Please enter Redis server IP (default 10.0.0.10):
# 下面的两步直接回车
Please enter Redis server port (default 6379):
Please enter Redis password (default 123456):
complete 5. Configure External Access
# 这里输入y
Do you need to customize the JumpServer external port? (y/n) (default n): y
# 直接回车即可
JumpServer web port (default 1180):
complete

最终没有报错,和我的截图一致,代表安装成功,如果有问题,可以参考文章最后的安装故障解决

启动JumpServer

# 没有报错代表启动成功
[root@lb ~/jumpserver]# ./jmsctl.sh start
[+] Running 6/6
Container jms_lion Started 11.7s
Container jms_chen Started 11.7s
Container jms_web Started 11.8s
Container jms_core Started 11.8s
Container jms_celery Started 12.0s
Container jms_koko Started # 验证一下容器的启动状态,这里需要等待几分钟之后,等待health: starting转为healthy
[root@lb ~/jumpserver]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
93f7bbf1751d jumpserver/core:v4.10.0-ce "./entrypoint.sh sta…" 33 seconds ago Up 21 seconds (health: starting) 8080/tcp jms_celery
0441f6f225b0 jumpserver/web:v4.10.0-ce "/docker-entrypoint.…" 33 seconds ago Up 21 seconds (health: starting) 80/tcp, 0.0.0.0:1180->1180/tcp, [::]:1180->1180/tcp jms_web
b0f855665246 jumpserver/core:v4.10.0-ce "./entrypoint.sh sta…" 33 seconds ago Up 21 seconds (health: starting) 8080/tcp jms_core
2b3d1ab4c968 jumpserver/koko:v4.10.0-ce "./entrypoint.sh ./k…" 33 seconds ago Up 21 seconds (health: starting) 0.0.0.0:2222->2222/tcp, [::]:2222->2222/tcp jms_koko
c845d9807738 jumpserver/chen:v4.10.0-ce "./entrypoint.sh wisp" 33 seconds ago Up 21 seconds (health: starting) 8082/tcp jms_chen
4e8fba121f0e jumpserver/lion:v4.10.0-ce "./entrypoint.sh sup…" 33 seconds ago Up 21 seconds (health: starting) 8081/tcp jms_lion

访问并配置JumpServer

  • 地址: http://<JumpServer服务器IP地址>:<服务运行端口>
  • 默认用户名: admin
  • 默认密码: ChangeMe

示例:http://10.0.0.10:1180/

登录之后需要重置密码,我这里修改为huangsir

然后会跳转到重新登录

最后我们就登录上来了

安装JumpServer故障解决

问题一:报连接数据库权限拒绝

File "/opt/py3/lib/python3.11/site-packages/MySQLdb/__init__.py", line 121, in Connect
return Connection(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/py3/lib/python3.11/site-packages/MySQLdb/connections.py", line 195, in __init__
super().__init__(*args, **kwargs2)
django.db.utils.OperationalError: (1045, "Access denied for user 'root'@'192.168.250.2' (using password: YES)")
[ERROR] Failed to change the table structure!

解决方式:连接数据库,创建用户

# 登录MySQL,使用root账号
[root@lb ~/jumpserver]# mysql -uroot -phuangsir # 创建用户,192.168.250.0/24代表jumpserver的网段,只有在这个网段之内的IP才能连接数据库,密码设置为huangsir
mysql> CREATE USER 'root'@'192.168.250.0/24' IDENTIFIED BY 'huangsir';
Query OK, 0 rows affected (0.01 sec) # 授权,*.*代表jumpserver库和其中所有的表
mysql> GRANT ALL PRIVILEGES ON jumpserver.* TO 'root'@'192.168.250.0/24' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec) # 刷新权限
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

最后重新执行./jmsctl.sh install

补充-JumpServer的相关命令

cd jumpserver

# 启动
./jmsctl.sh start # 重启
./jmsctl.sh restart # 停止
./jmsctl.sh down # 卸载
./jmsctl.sh uninstall # 帮助
./jmsctl.sh -h

JumpServer介绍及v4版本单机部署的更多相关文章

  1. Hadoop系列之(一):Hadoop单机部署

    1. Hadoop介绍 Hadoop是一个能够对海量数据进行分布式处理的系统架构. Hadoop框架的核心是:HDFS和MapReduce. HDFS分布式文件系统为海量的数据提供了存储, MapRe ...

  2. 使用yum源的方式单机部署MySQL8.0.13

    使用yum源的方式单机部署MySQL8.0.13 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 基本上开源的软件都支持三种安装方式,即rmp方式安装,源码安装和二进制方式安装.在 ...

  3. 使用二进制安装包的方式单机部署MySQL8.0.13

    使用二进制安装包的方式单机部署MySQL8.0.13 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 关于MySQL的介绍我这里就不多做赘述了,如何下载MySQL详情请参考:MySQ ...

  4. openstack_swift源代码分析——Swift单机部署

    本文对在单机部署swift 当中每个细节做具体的介绍,并对配置做对应的解释 PC物理机    Ubuntu-12.04-desktop-64位 Swift 版本号:1.13.1 Swift-clien ...

  5. redission-tomcat:快速实现从单机部署到多机部署

    原文地址: http://blog.jboost.cn/2019/06/29/session-redis.html 一些项目初期出于简单快速,都是做单机开发与部署,但是随着业务的扩展或对可用性要求的提 ...

  6. Clickhouse单机部署以及从mysql增量同步数据

    背景: 随着数据量的上升,OLAP一直是被讨论的话题,虽然druid,kylin能够解决OLAP问题,但是druid,kylin也是需要和hadoop全家桶一起用的,异常的笨重,再说我也搞不定,那只能 ...

  7. Hadoop2-认识Hadoop大数据处理架构-单机部署

    一.Hadoop原理介绍 1.请参考原理篇:Hadoop1-认识Hadoop大数据处理架构 二.centos7单机部署hadoop 前期准备 1.创建用户 [root@web3 ~]# useradd ...

  8. FastDFS 单机部署指南

    简介 FastDFS是一个开源的分布式文件系统,官方介绍有详细的介绍,不多赘述.本文主要是FastDFS的搭建及采坑指南. Step By Step Guide 系统 阿里云ECS Ubuntu 16 ...

  9. MongoDB单机部署

    MongoDB单机部署 一.环境 系统:centos7.6 DB版本:mongodb-linux-x86_64-rhel62-4.2.1.tgz 官网地址:https://www.mongodb.co ...

  10. MySQL入门02-MySQL二进制版本快速部署

    在上篇文章 MySQL入门01-MySQL源码安装 中,我们介绍了MySQL源码安装的方法. 源码安装虽然有着更加灵活和更加优化等诸多优势.但源码编译安装部署的过程相对复杂,而且整个过程所花费的时间很 ...

随机推荐

  1. 面试题54. 二叉搜索树的第k大节点

    地址:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-di-kda-jie-dian-lcof/ <?php /** 面试题54. ...

  2. 【日常运维笔记】linux系统修改密码

    1.问题描述:xshll无法正常登录服务器,使用宝塔系统后台linux工具修改密码,重启服务器,依然无法登录,怀疑密码未重置成功,我们登录root,重置密码. 使用命令passwd修改密码,需要注意的 ...

  3. windows mysql8安装zip

    MySQL 是一种广泛使用的关系数据库管理系统,MySQL 8 是其最新的主要版本,结合了出色的性能和丰富的功能. 一.准备工作 1. 下载MySQL 8 zip包 首先,你需要获取MySQL 8的压 ...

  4. 【ABAQUS2023-Output Vars】使用记录

    计算结构的应变能,ALLSE=所有单元的ESEDEN*EVOL.但这不适用于模态分析,因为模态分析EVOL不能用 ALLSE Field: no History: yes .fil: automati ...

  5. 记录网站从http升级到https遇到的问题

    1.静态资源(js.css)引入问题 在使用http是之后,如果你的站点出现引入外部的js.css等,你需要修改你的资源引入,cdn的话可以写成://cdn.bootscdn.com/jquery.m ...

  6. PV、UV、VV、IP含义及计算方式

    什么是PV? PV 即 Page View,网站浏览量,指页面浏览的次数,用以衡量网站用户访问的网页数量. 用户每次打开一个页面便记录1次PV,多次打开同一页面则浏览量累计.一般来说,PV与来访者的数 ...

  7. 入口函数与包初始化:Go程序的执行次序

    前言 我们可能经常会遇到这样一个问题:一个 Go 项目中有数十个 Go 包,每个包中又有若干常量.变量.各种函数和方法,那 Go 代码究竟是从哪里开始执行的呢?后续的执行顺序又是什么样的呢? 事实上, ...

  8. Git Pull Failed:You have not concluded your merge.Exiting because of unfinished merge

    前言 在拉取远程代码时,出现 Git Pull Failed:You have not concluded your merge.Exiting because of unfinished merge ...

  9. 一款torrent文件格式分析工具(绿色纯天然)

    点击下载 1.主界面 2.文件分析(显示文件所在分片的位置) 3.获取指定分片所在的peers服务器列表 一只会铲史的猫

  10. AAA认证

    AAA认证(Authentication, Authorization, and Accounting)是一个网络安全框架,用于管理用户如何访问网络资源.具体来说: 认证(Authentication ...