概述

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. Java进阶 - [1-1] 六大设计原则

    不要因为某本书而去读,而是因为这本书让你读起来时常有共鸣而去读. 一.单一职责原则 [术语]:SRP,Single Reposibility Principle [定义]:一个类或者模块只负责完成一个 ...

  2. win7系统清理C盘空间方法实测

    问题描述:win7电脑C盘容易满,采用如下方法清理 方法一:win+r,输入%temp%查看临时文件,手动删除不需要的文件 方法二:减小休眠文件:如果你很少使用休眠模式,可以通过win+r输入cmd命 ...

  3. php执行时间

    要计算代码的bai执行时间,在PHP来讲是du十分简单的,首先,zhi你需要知道,PHP是一种dao顺序执行的脚本语言,所以,可以按照以下步骤来计算代码的执行时间: <?php function ...

  4. 05_模块(import & from)

    模块(import & from) 导入模块 在和.py同级文件夹下创建一个自定义的模块 fibo.py def fib_return(x): a, b = 0, 1 result = [] ...

  5. windows c++共享内存

    #include <iostream> #include <Windows.h> #include <string> int main() { const wcha ...

  6. 介绍一个不知道怎么形容的小东西--Proxy

    what's this? The Proxy object is used to define custom behavior for fundamental operations (e.g. pro ...

  7. Java24你发任你发,我用Java8

    大家好,我是晓凡. 各位 Java 开发者们!是不是还在为 Java 23 的新特性忙得焦头烂额? 别急,Java 24 已经悄咪咪地发布了! 这可是自 Java 21 以来的第三个非长期支持版本,而 ...

  8. BUUCTF---Cipher1(playfair)

    playfair Playfair密码原理以及该题解题步骤 Playfair密码(Playfair cipher 或 Playfair square)一种替换密码,1854年由查尔斯·惠斯通(Char ...

  9. gmpy2库

    在密码计算中会牵扯大素数的计算模逆等,gmpy2库就是一个这种库 求整数a.b的最大公因数 a = gmpy2.gcd(3,12) 判断一个数是否为素数 a = gmpy2.is_prime(5) 判 ...

  10. CompletableFuture原理及应用场景详解

    1.应用场景 现在我们打开各个APP上的一个页面,可能就需要涉及后端几十个服务的API调用,比如某宝.某个外卖APP上,下面是某个外卖APP的首页.首页上的页面展示会关联很多服务的API调用,如果使用 ...