zl程序教程

您现在的位置是:首页 >  其他

当前栏目

使用宝塔面板搭建jumpserver开源堡垒机

2023-04-18 16:59:01 时间
  • 前言

JumpServer 是全球首款开源的堡垒机,使用 GNU GPL v3.0 开源协议,是符合 4A 规范的运维安全审计系统。
JumpServer 使用 Python / Django 为主进行开发,遵循 Web 2.0 规范,配备了业界领先的 Web Terminal 方案,交互界面美观、用户体验好。

  • 环境准备
    jumpserver官方文档中提供了多种部署方法。但这些都需要完全在命令行中操作,且要求纯净环境安装,导致无法再使用服务器搭建其他网站应用,不便于新手进行后期维护。下面将采用腾讯云轻量应用服务器,安装可视化的 宝塔Linux面板 进行部署演示,尽可能减少部署维护难度,助力保证私有云财产安全运维。如果你还没有服务器,可以前往腾讯云热门云产品首单特惠秒杀页面购买,低至45元/年。记得选购 轻量应用服务器 产品:
    https://cloud.tencent.com/act/cps/redirect?redirect=1077&cps_key=7e59fd18a50e30efaec12b00e2474512&from=console
    创建好自己的轻量应用服务器后,进入控制台重装系统,选择 宝塔Linux面板 镜像安装。
    image.png
    成功重装系统后,点击 应用管理 选项卡,根据提示获取宝塔面板的登录信息登录进宝塔面板,绑定宝塔账号
    image.png
    image.png
    然后进入宝塔面板的软件商店,安装下列依赖软件
Nginx 1.20
MySQL 5.7
Docker管理器
Redis 6.2

回到腾讯云轻量应用服务器后台,找到 网络信息——IP地址中 的服务器内网IP
image.png
打开redis软件的设置页面,将 性能调整 中的bind条目改为刚刚查看到的服务器内网IP
image.png
打开宝塔面板的 数据库 选项卡,创建数据库。访问权限选择 指定IP ,并在后面的输入框中粘贴服务器内网IP
image.png
image.png

  • 安装jumpserver
    进入文件管理,在 /www/wwwroot 目录下使用远程下载功能下载jumpserver代码包,下载地址如下。完成下载后点击解压
https://github.com/jumpserver/installer/releases/download/v2.20.2/jumpserver-installer-v2.20.2.tar.gz

image.png
image.png
打开 /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

image.png

根据脚本的提示做出回答即可。大部分都可以直接回车使用默认设置,但是如果使用的是我的配置信息,出现下面提示时需要替换成你自己的服务器内网IP

Please enter MySQL server IP
Please enter Redis server IP

出现下面提示时请输入上面宝塔自动生成的MySQL密码

Please enter MySQL password (no default): 

安装脚本会自动完成部署。
image.png提示安装成功后,执行下面命令启动

./jmsctl.sh start

image.png
然后在宝塔面板网站选项卡内创建一个网站,并设置反向代理。

目标URL  http://127.0.0.1:8080

image.png
点开配置文件,使用以下内容替换默认配置,否则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;
    }

image.png
出于安全考虑,你还可以设置堡垒机使用https访问
image.png
这时就可以使用你宝塔绑定的域名在浏览器中访问jumpserver了:

默认用户名:admin
默认密码:admin
  • jumpserver入门
    这是官方推荐的视频教程:https://www.bilibili.com/video/BV19D4y1S7s4
    官方文档:https://docs.jumpserver.org/zh/master/admin-guide/quick_start/
    下面部分内容官方文档有详细说明。本文只做简单介绍,jumpserver很多实用的功能,比如命令过滤(禁止使用危险命令)都没有演示到
    先进入站点设置重新保存一下站点的URL
    image.png
    回到控制台 创建特权用户,也就是把你服务器的root用户密码添加到上面。
    image.png
    创建资产,这里以连接本机为例。特权用户选择刚才新创建的root用户
    image.png
    给自己办理授权
    image.png
    使用jumpserver自带的终端或者xshell等终端连接,完美
    image.png
    PS:如需使用xshell等终端连接堡垒机操作服务器,请使用以下服务器信息,请连接到堡垒机服务器的2222端口,并在鉴权时输入你jumpserver的用户名和密码,而不是root,如图
    image.png
    运维完成后,进入审计台享受jumpserver强大的审计和风险控制功能吧
    image.png