前言
JumpServer 是全球首款开源的堡垒机,使用 GNU GPL v3.0 开源协议,是符合 4A 规范的运维安全审计系统。 JumpServer 使用 Python / Django 为主进行开发,遵循 Web 2.0 规范,配备了业界领先的 Web Terminal 方案,交互界面美观、用户体验好。
环境准备
jumpserver官方文档中提供了多种部署方法。但这些都需要完全在命令行中操作,且要求纯净环境安装,导致无法再使用服务器搭建其他网站应用,不便于新手进行后期维护。下面将采用腾讯云轻量应用服务器,安装可视化的 宝塔Linux面板
进行部署演示,尽可能减少部署维护难度,助力保证私有云财产安全运维。如果你还没有服务器,可以前往腾讯云热门云产品首单特惠秒杀页面购买,低至45元/年。记得选购 轻量应用服务器
产品:
https://cloud.tencent.com/act/
创建好自己的轻量应用服务器后,进入控制台重装系统,选择 宝塔Linux面板
镜像安装。
成功重装系统后,点击 应用管理
选项卡,根据提示获取宝塔面板的登录信息登录进宝塔面板,绑定宝塔账号
然后进入宝塔面板的软件商店,安装下列依赖软件
Nginx 1.20
MySQL 5.7
Docker管理器
Redis 6.2
回到腾讯云轻量应用服务器后台,找到 网络信息——IP地址中
的服务器内网IP
打开redis软件的设置页面,将 性能调整
中的bind条目改为刚刚查看到的服务器内网IP
打开宝塔面板的 数据库
选项卡,创建数据库。访问权限选择 指定IP
,并在后面的输入框中粘贴服务器内网IP
安装jumpserver
进入文件管理,在 /www/wwwroot
目录下使用远程下载功能下载jumpserver代码包,下载地址如下。完成下载后点击解压
https://github.com/jumpserver/installer/releases/download/v2.20.2/jumpserver-installer-v2.20.2.tar.gz
打开 /www/wwwroot/jumpserver-installer-v2.20.2/config-example.txt
文件,参考 官方文档 根据自己的需要进行修改;也可以使用下面我的配置信息
# 以下设置如果为空系统会自动生成随机字符串填入
## 迁移请修改 SECRET_KEY 和 BOOTSTRAP_TOKEN 为原来的设置
## 完整参数文档 https://docs.jumpserver.org/zh/master/admin-guide/env/
## 安装配置, 可以使用华为云加速下载, arm64 用户需要注释掉 DOCKER_IMAGE_PREFIX
# DOCKER_IMAGE_PREFIX=swr.cn-south-1.myhuaweicloud.com
VOLUME_DIR=/www/wwwroot/jumpserver
DOCKER_DIR=/var/lib/docker
SECRET_KEY=
BOOTSTRAP_TOKEN=
LOG_LEVEL=ERROR
## MySQL 配置, USE_EXTERNAL_MYSQL=1 表示使用外置 MySQL, 请输入正确的 MySQL 信息
USE_EXTERNAL_MYSQL=1
DB_HOST=服务器内网IP
DB_PORT=3306
DB_USER=jumpserver
DB_PASSWORD=
DB_NAME=jumpserver
## Redis 配置, USE_EXTERNAL_REDIS=1 表示使用外置 Redis, 请输入正确的 Redis 信息
USE_EXTERNAL_REDIS=1
REDIS_HOST=服务器内网IP
REDIS_PORT=6379
REDIS_PASSWORD=
## Compose 项目设置, 如果 192.168.250.0/24 网段与你现有网段冲突, 请修改然后重启 JumpServer
COMPOSE_PROJECT_NAME=jms
COMPOSE_HTTP_TIMEOUT=3600
DOCKER_CLIENT_TIMEOUT=3600
DOCKER_SUBNET=192.168.250.0/24
## IPV6 设置, 容器是否开启 ipv6 nat, USE_IPV6=1 表示开启, 为 0 的情况下 DOCKER_SUBNET_IPV6 定义不生效
USE_IPV6=0
DOCKER_SUBNET_IPV6=fc00:1010:1111:200::/64
## Nginx 配置
HTTP_PORT=8080
SSH_PORT=2222
RDP_PORT=3389
## HTTPS 配置, 参考 https://docs.jumpserver.org/zh/master/admin-guide/proxy/ 配置
# USE_LB=1
# HTTPS_PORT=443
# SERVER_NAME=your_domain_name
# SSL_CERTIFICATE=your_cert
# SSL_CERTIFICATE_KEY=your_cert_key
## Task 配置, 是否启动 jms_celery 容器, 单节点必须开启
USE_TASK=1
## XPack, USE_XPACK=1 表示开启, 开源版本设置无效
USE_XPACK=0
## Core 配置, Session 定义, SESSION_COOKIE_AGE 表示闲置多少秒后 session 过期, SESSION_EXPIRE_AT_BROWSER_CLOSE=true 表示关闭浏览器即 session 过期
# SESSION_COOKIE_AGE=86400
SESSION_EXPIRE_AT_BROWSER_CLOSE=true
## Koko Lion XRDP 组件配置
CORE_HOST=http://core:8080
## Lion 开启字体平滑
JUMPSERVER_ENABLE_FONT_SMOOTHING=true
## Nginx 文件上传大小
CLIENT_MAX_BODY_SIZE=4096m
## 终端使用宿主 HOSTNAME 标识
SERVER_HOSTNAME=${HOSTNAME}
## 额外的配置
CURRENT_VERSION=
完成后回到腾讯云的控制台,使用 远程连接
功能进入服务器命令行,执行下面命令
sudo su
cd /www/wwwroot/jumpserver-installer-*
./jmsctl.sh install
根据脚本的提示做出回答即可。大部分都可以直接回车使用默认设置,但是如果使用的是我的配置信息,出现下面提示时需要替换成你自己的服务器内网IP
Please enter MySQL server IP
Please enter Redis server IP
出现下面提示时请输入上面宝塔自动生成的MySQL密码
Please enter MySQL password (no default):
安装脚本会自动完成部署。
提示安装成功后,执行下面命令启动
./jmsctl.sh start
然后在宝塔面板网站选项卡内创建一个网站,并设置反向代理。
目标URL http://127.0.0.1:8080
点开配置文件,使用以下内容替换默认配置,否则web终端无法正常工作。
client_max_body_size 4096m; # 上传文件大小限制
location / {
# 这里的 ip 是后端 JumpServer nginx 的 ip
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_buffering off;
proxy_request_buffering off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
出于安全考虑,你还可以设置堡垒机使用https访问
这时就可以使用你宝塔绑定的域名在浏览器中访问jumpserver了:
默认用户名:admin
默认密码:admin
回到控制台 创建特权用户,也就是把你服务器的root用户密码添加到上面。
创建资产,这里以连接本机为例。特权用户选择刚才新创建的root用户
给自己办理授权
使用jumpserver自带的终端或者xshell等终端连接,完美
PS:如需使用xshell等终端连接堡垒机操作服务器,请使用以下服务器信息,请连接到堡垒机服务器的2222端口,并在鉴权时输入你jumpserver的用户名和密码,而不是root,如图
运维完成后,进入审计台享受jumpserver强大的审计和风险控制功能吧