JumpServer 堡垒机安装指南

198 天前
 Songxwn

博客

https://songxwn.com

介绍

什么是 JumpServer

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

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

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

产品介绍 PPT:https://www.jumpserver.org/documents/introduce-jumpserver_202304.pdf

产品特色

界面展示

教程环境介绍

系统版本: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 环境准备

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 安装包

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

# 解压

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

查看和修改安装配置文件

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=

安装

cd /opt/jumpserver-installer-v3.8.0/

# 进入安装目录

./jmsctl.sh install

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

./jmsctl.sh start

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

# 启动
./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

2401 次点击
所在节点    Linux
8 条回复
julyclyde
198 天前
为什么又做了一次重复的广告?
这东西,本站的朋友们都已经听说过无数次了吧
Songxwn
198 天前
@julyclyde 纯个人写的学习笔记,请见谅
julyclyde
198 天前
@Songxwn 如果是有特别需要注意的地方,值得一写
如果仅仅是记录,感觉对别人并不能提供什么价值啊
token10086
198 天前
对堡垒机概念有点迷糊,想咨询下程序内配置的账号能用堡垒机代理出来的吗,类似于堡垒机实现了协议当成中间件来用。
Songxwn
198 天前
@token10086 支持其远程协议就行
cheng6563
195 天前
友情提醒各位,JumpServer 并非完全开源
KInG2
195 天前
@cheng6563 #6 但是公司就是相信这种有背书的部分开源,CN 很矛盾的,软件不相信开源,服务器相信开源 Linux ,服务器系统开源=自主研发,软件开源=不安全。
flyqie
194 天前
@token10086 #4

堡垒机一般都是 ssh telnet rdp vnc 什么的吧,程序内配置的什么账号?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/984873

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX