V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Songxwn
V2EX  ›  Linux

JumpServer 堡垒机安装指南

  •  
  •   Songxwn · 2023-10-24 13:08:54 +08:00 · 2775 次点击
    这是一个创建于 396 天前的主题,其中的信息可能已经有所发展或是发生改变。

    博客

    https://songxwn.com

    介绍

    什么是 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

    产品介绍 PPT:https://www.jumpserver.org/documents/introduce-jumpserver_202304.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 环境准备

    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

    8 条回复    2023-10-28 12:42:42 +08:00
    julyclyde
        1
    julyclyde  
       2023-10-24 16:35:30 +08:00
    为什么又做了一次重复的广告?
    这东西,本站的朋友们都已经听说过无数次了吧
    Songxwn
        2
    Songxwn  
    OP
       2023-10-24 16:48:39 +08:00
    @julyclyde 纯个人写的学习笔记,请见谅
    julyclyde
        3
    julyclyde  
       2023-10-24 16:49:47 +08:00
    @Songxwn 如果是有特别需要注意的地方,值得一写
    如果仅仅是记录,感觉对别人并不能提供什么价值啊
    token10086
        4
    token10086  
       2023-10-25 09:39:13 +08:00
    对堡垒机概念有点迷糊,想咨询下程序内配置的账号能用堡垒机代理出来的吗,类似于堡垒机实现了协议当成中间件来用。
    Songxwn
        5
    Songxwn  
    OP
       2023-10-25 10:09:48 +08:00
    @token10086 支持其远程协议就行
    cheng6563
        6
    cheng6563  
       2023-10-27 14:36:23 +08:00
    友情提醒各位,JumpServer 并非完全开源
    KInG2
        7
    KInG2  
       2023-10-27 15:01:10 +08:00
    @cheng6563 #6 但是公司就是相信这种有背书的部分开源,CN 很矛盾的,软件不相信开源,服务器相信开源 Linux ,服务器系统开源=自主研发,软件开源=不安全。
    flyqie
        8
    flyqie  
       2023-10-28 12:42:42 +08:00 via Android
    @token10086 #4

    堡垒机一般都是 ssh telnet rdp vnc 什么的吧,程序内配置的什么账号?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1101 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 463ms · UTC 19:03 · PVG 03:03 · LAX 11:03 · JFK 14:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.