JumpServer 开源的跳板机/堡垒机安装指南

本文最后更新于 2024年6月21日 上午

介绍

什么是JumpServer

JumpServer 是广受欢迎的开源堡垒机,是符合 4A 规范的专业运维安全审计系统。JumpServer 帮助企业以更安全的方式管控和登录所有类型的资产,包括:

  • SSH (Linux / Unix / 网络设备 等)
  • Windows (Web 方式连接 / 原生 RDP 连接)
  • 数据库 (MySQL / Oracle / SQLServer / PostgreSQL 等)
  • Kubernetes (支持连接到 K8s 集群中的 Pods)
  • Web 站点 (各类系统的 Web 管理后台)
  • 应用 (通过 Remote App 连接各类应用)

项目地址:https://github.com/jumpserver/jumpserver

功能列表:https://www.jumpserver.org/features.html

产品介绍PDF:https://fit2cloud.com/jumpserver/documents/introduce-jumpserver_202401.pdf

产品特色

  • 开源:零门槛,线上快速获取和安装;
  • 分布式:轻松支持大规模并发访问;
  • 无插件:仅需浏览器,极致的 Web Terminal 使用体验;
  • 多云支持:一套系统,同时管理不同云上面的资产;
  • 云端存储:审计录像云端存储,永不丢失;
  • 多租户:一套系统,多个子公司和部门同时使用;
  • 多应用支持:数据库,Windows 远程应用,Kubernetes。

界面展示

教程环境介绍

系统版本:Rocky Linux 8 (关闭SE Linux和防火墙)

容器环境:Docker 24.0.6 Docker-Compose v2.21.0

软件版本:JumpServer 3.8.0

组件架构

硬件要求和其他要求

4Core/8GB RAM/300G HDD

主机系统建议Debian系列或RHEL系列

建议不对公网直接开放,通过SSL VPN连接到内网访问。

正式安装

JumpServer 版本选择

生产建议选择最后一位版本较多的最新版本,如选择 3.7.2,而不是3.8.0。

Docker 环境准备

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
yum install -y yum-utils device-mapper-persistent-data lvm2

# 安装依赖包

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 添加源

sed -i 's+https://download.docker.com+https://mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo

# 替换Docker 安装源为清华大学镜像站。

yum makecache fast
yum install docker-ce docker-compose-plugin

# 安装Docker 和 Compose


systemctl enable --now docker


# 配置开机启动并启动Docker

下载JumpServer安装包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
yum install -y curl wget tar gettext tree

# 安装所需依赖包

curl -sL https://api.github.com/repos/jumpserver/jumpserver/releases/latest | grep '"tag_name":' | cut -d'"' -f4 | tr -d 'v'

# 获取最新版本号。

cd /opt

# 切换到opt目录

VERSION=v3.8.0

# 指定下载版本

DOWNLOAD_URL=https://resource.fit2cloud.com
#DOWNLOAD_URL=https://github.com

# 指定下载地址,中国大陆地区可以使用fit2cloud.com,海外使用github.com。
#(github 才能下载v2版本)


wget -qO jumpserver-installer-${VERSION}.tar.gz ${DOWNLOAD_URL}/jumpserver/installer/releases/download/${VERSION}/jumpserver-installer-${VERSION}.tar.gz

# 下载指定版本的安装包

tar -vxf /opt/jumpserver-installer-${VERSION}.tar.gz -C /opt

# 解压


cd jumpserver-installer-${VERSION}

# CD 到目录

tree -L 2 /opt # 查看当前文件目录结构
/opt
├── jumpserver-installer-v3.8.0
│   ├── cn-quick_start.sh
│   ├── compose
│   ├── config-example.txt
│   ├── config_init
│   ├── jmsctl.sh
│   ├── LICENSE
│   ├── locale
│   ├── quick_start.sh
│   ├── README.md
│   ├── scripts
│   ├── static.env
│   └── utils
└── jumpserver-installer-v3.8.0.tar.gz

查看和修改安装配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
vim /opt/jumpserver-installer-v3.8.0/config-example.txt

# 打开安装配置文件,一般默认即可。





# JumpServer configuration file example.
#
# 如果不了解用途可以跳过修改此配置文件, 系统会自动填入
# 完整参数文档 https://docs.jumpserver.org/zh/v3/guide/env/

################################## 镜像配置 ###################################
#
# 国内连接 docker.io 会超时或下载速度较慢, 开启此选项使用华为云镜像加速
# 取代旧版本 DOCKER_IMAGE_PREFIX
#
# DOCKER_IMAGE_MIRROR=1

# 镜像拉取规则 Always, IfNotPresent
# Always 表示每次都会拉取最新镜像, IfNotPresent 表示本地不存在镜像时才会拉取
#
# IMAGE_PULL_POLICY=Always

################################## 安装配置 ###################################
#
# JumpServer 数据库持久化目录, 默认情况下录像、任务日志都在此目录
# 请根据实际情况修改, 升级时备份的数据库文件(.sql)和配置文件也会保存到该目录
#
VOLUME_DIR=/data/jumpserver

# 加密密钥, 迁移请保证 SECRET_KEY 与旧环境一致, 请勿使用特殊字符串
# (*) Warning: Keep this value secret.
# (*) 勿向任何人泄露 SECRET_KEY
#
SECRET_KEY=

# 组件向 core 注册使用的 token, 迁移请保持 BOOTSTRAP_TOKEN 与旧环境一致,
# 请勿使用特殊字符串
# (*) Warning: Keep this value secret.
# (*) 勿向任何人泄露 BOOTSTRAP_TOKEN
#
BOOTSTRAP_TOKEN=

# 日志等级 INFO, WARN, ERROR
#
LOG_LEVEL=ERROR

# JumpServer 容器使用的网段, 请勿与现有的网络冲突, 根据实际情况自行修改
#
DOCKER_SUBNET=192.168.250.0/24

# ipv6 nat, 正常情况下无需开启
# 如果宿主不支持 ipv6 开启此选项将会导致无法获取真实的客户端 ip 地址
#
USE_IPV6=0
DOCKER_SUBNET_IPV6=fc00:1010:1111:200::/64

################################# MySQL 配置 ##################################
# 外置 MySQL 需要输入正确的 MySQL 信息, 内置 MySQL 系统会自动处理
#
DB_HOST=mysql
DB_PORT=3306
DB_USER=root
DB_PASSWORD=
DB_NAME=jumpserver

# 如果外置 MySQL 需要开启 TLS/SSL 连接, 参考 https://docs.jumpserver.org/zh/v3/installation/security_setup/mysql_ssl/
#
# DB_USE_SSL=true

################################# Redis 配置 ##################################
# 外置 Redis 需要请输入正确的 Redis 信息, 内置 Redis 系统会自动处理
#
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=

# 如果使用外置 Redis Sentinel, 请手动填写下面内容
#
# REDIS_SENTINEL_HOSTS=mymaster/192.168.100.1:26379,192.168.100.1:26380,192.168.100.1:26381
# REDIS_SENTINEL_PASSWORD=your_sentinel_password
# REDIS_PASSWORD=your_redis_password
# REDIS_SENTINEL_SOCKET_TIMEOUT=5

# 如果外置 Redis 需要开启 TLS/SSL 连接, 参考 https://docs.jumpserver.org/zh/v3/installation/security_setup/redis_ssl/
#
# REDIS_USE_SSL=true

################################## 访问配置 ###################################
# 对外提供服务端口, 如果与现有服务冲突请自行修改
#
HTTP_PORT=80
SSH_PORT=2222
MAGNUS_MYSQL_PORT=33061
MAGNUS_MARIADB_PORT=33062
MAGNUS_REDIS_PORT=63790
MAGNUS_POSTGRESQL_PORT=54320
MAGNUS_ORACLE_PORTS=30000-30030

################################# HTTPS 配置 #################################
# 参考 https://docs.jumpserver.org/zh/v3/installation/proxy/ 配置
#
# HTTPS_PORT=443
# SERVER_NAME=your_domain_name
# SSL_CERTIFICATE=your_cert
# SSL_CERTIFICATE_KEY=your_cert_key
#

# Nginx 文件上传下载大小限制
#
CLIENT_MAX_BODY_SIZE=4096m

################################## 组件配置 ###################################
# 组件注册使用, 默认情况下向 core 容器注册, 集群环境需要修改为集群 vip 地址
#
CORE_HOST=http://core:8080
PERIOD_TASK_ENABLED=true

# Core Session 定义,
# SESSION_COOKIE_AGE 表示闲置多少秒后 session 过期,
# SESSION_EXPIRE_AT_BROWSER_CLOSE=true 表示关闭浏览器即 session 过期
#
# SESSION_COOKIE_AGE=86400
SESSION_EXPIRE_AT_BROWSER_CLOSE=true

# 可信任 DOMAINS 定义,
# 定义可信任的访问 IP, 请根据实际情况修改, 如果是公网 IP 请改成对应的公网 IP,
# DOMAINS="demo.jumpserver.org:443"
# DOMAINS="172.17.200.191:80"
# DOMAINS="demo.jumpserver.org:443,172.17.200.191:80"
DOMAINS=

# 配置不需要启动的组件, 默认所有组件都会开启, 如果不需要某个组件可以通过设置 {组件名称}_ENABLED 为 0 关闭
# CORE_ENABLED=0
# CELERY_ENABLED=0
# KOKO_ENABLED=0
# LION_ENABLED=0
# MAGNUS_ENABLED=0
# CHEN_ENABLED=0
# KAEL_ENABLED=0

# Lion 开启字体平滑, 优化体验
#
JUMPSERVER_ENABLE_FONT_SMOOTHING=true

################################# XPack 配置 #################################
# XPack 包, 开源版本设置无效
#
RDP_PORT=3389
XRDP_PORT=3390

################################## 其他配置 ##################################
# 终端使用宿主 HOSTNAME 标识, 首次安装自动生成
#
SERVER_HOSTNAME=${HOSTNAME}

# 使用内置 SLB, 如果 Web 页面获取到的客户端 IP 地址不正确, 请将 USE_LB 设置为 0
# USE_LB 设置为 1 时, 使用配置 proxy_set_header X-Forwarded-For $remote_addr
# USE_LB 设置为 0 时, 使用配置 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for
USE_LB=1

# 当前运行的 JumpServer 版本号, 安装和升级完成后自动生成
#
CURRENT_VERSION=

安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
cd /opt/jumpserver-installer-v3.8.0/

# 进入安装目录

./jmsctl.sh install

# 执行安装,一直默认选项即可。(安装期间会加载Docker镜像,会比较慢)
# 默认安装会使用Docker部署的内置Mariadb数据库和Redis数据库.
# 默认安装情况下会把数据和配置文件目录存放在 /data/jumpserver

./jmsctl.sh start

# 安装后执行启动,默认为开机启动,但安装或升级后,需要手动启动。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 启动
./jmsctl.sh start

# 停止
./jmsctl.sh down

# 卸载
./jmsctl.sh uninstall

# 重启

./jmsctl.sh restart

# 帮助
./jmsctl.sh -h

默认访问端口

端口 作用 说明
22 SSH 安装、升级及管理使用
80 Web HTTP 服务 通过 HTTP 协议访问 JumpServer 前端页面
443 Web HTTPS 服务 通过 HTTPS 协议访问 JumpServer 前端页面
3306 数据库服务 MySQL 服务使用
6379 数据库服务 Redis 服务使用
3389 Razor 服务端口 RDP Client 方式连接 Windows 资产
2222 SSH Client SSH Client 方式使用终端工具连接 JumpServer,比如 Xshell、PuTTY、MobaXterm 等终端工具
33061 Magnus MySQL 服务端口 DB Client 方式连接 MySQL 数据库资产
33062 Magnus MariaDB 服务端口 DB Client 方式连接 MariaDB 数据库资产
54320 Magnus PostgreSQL 服务端口 DB Client 方式连接 PostgreSQL 数据库资产
63790 Magnus Redis 服务端口 DB Client 方式连接 Redis 数据库资产
30000-30100 Magnus Oracle 服务端口 DB Client 方式连接 Oracle 数据库资产,该端口范围可自定义

使用教程

安装后可访问http://ip:80 访问,也可以通过SSH:2222 默认安装端口通过SSH访问资产。

用户名: admin
密码: admin

官方视频教程:https://jumpserver.org/video.html

参考

https://docs.jumpserver.org


JumpServer 开源的跳板机/堡垒机安装指南
https://songxwn.com/Jumpserver-install/
作者
Song
发布于
2023年10月23日
更新于
2024年6月21日
许可协议