【Linux】之Jumpserver堡垒机的部署/搭建

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 Tair(兼容Redis),内存型 2GB
简介: Jumpserver 是一款使用 Python, Django 开发的开源跳板机系统, 为互联网企业提供了认证,授权,审计,自动化运维等功能。JumpServer 现已支持管理 SSH、 Telnet、 RDP、 VNC 协议资产

在这里插入图片描述
@[toc]

Jumpserver 概述

  • Jumpserver 是一款使用 Python, Django 开发的开源跳板机系统, 为互联网企业提供了认证,授权,审计,自动化运维等功能。JumpServer 现已支持管理 SSH、 Telnet、 RDP、 VNC 协议资产

功能:

  1. 精确记录操作命令
  2. 支持批量文件上传下载
  3. 支持主机搜索登录
  4. 支持批量命令执行(Ansible完成)
  5. 支持WebTerminal连接主机
  6. 支持Web端批量命令执行
  7. 支持录像回放
  8. 支持硬件信息如cpu,内存等抓取
  9. 支持资产Excel导入导出
  10. 支持资产批量更改
  11. 支持系统用户的批量推送(Ansible实现)
  12. 支持用户,主机,用户组,主机组,系统用户混合细颗粒授权
  13. 支持sudo管理
  14. 支持命令统计和命令搜索
  15. 支持上传下载文件审计
  16. 支持终止用户连接
  17. 支持各种搜索
  18. 其他
  • Jumpserver 后端主要技术是LDAP,配置了LDAP 集中认证服务器, 所有服务器的认证都是由ldap完成的。其做法是:每个用户一个密码,把密码加密放到了数据库中,当用户输入IP 从跳板机登陆服务器的时候,跳板机系统取出密码,并解密,通过pexpect 模块将密码发送过去,来完成登录。
  • (LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。它是基于X.500标准的,但是简单多了并且可以根据需要定制。与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。)

特色优势:

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

在这里插入图片描述

环境需求

  • 首先准备一台 4核8G (最低)且可以访问互联网的 64 位 Linux 主机;
  • 其次就是部署需要root用户,最好使用新环境来部署,因为会有不是新的环境会有冲突的情况,所以建议使用新环境来部署;
  • 关闭 iptables,关闭 selinux ;
  • 需要wget git curl....几个命令;
yum -y install wget git curl

首先具备这几个条件,完了就是安装部署。

在线部署Jump server

  部署方式有很多种:有在线部署,也有离线部署;也有在linux中部署、在Windows中部署、在macOS中部署的;也有手动部署、一键部署、源码部署、Helm部署、Allinone部署;看自己选哪个,其他部署文档可参考官网:Jumpserver官网部署文档
这里我们选择一键部署就可以,脚本可以直接拉取官网的;

拉取官网脚本并且执行安装操作:

curl -sSL https://github.com/jumpserver/jumpserver/releases/download/v2.25.1/quick_start.sh | bash

中途有的地方需要自己确认,会问你选择默认还是其他,不输入则自动选择默认;
配置文件位置: /opt/jumpserver/config/config.txt

脚本安装步骤:

  1. 检查配置文件
  2. 安装docker和docker-compose
  3. 配置dokcer
  4. 启动docker并设置开机自启
  5. 加载docker镜像(去拉取镜像redis、mariadb、web、core、koko、lion、magnus)
  6. 安装Jumpserver

6.1、配置加密密钥
6.2、配置持久化目录
6.3、配置 MySQL
6.4、配置 Redis
6.5、配置对外端口
6.6、初始化数据库

7.安装完成(以及相关信息)

页面访问:http://ip:80
初始账号密码:admin admin

在这里插入图片描述

进入页面之后可查看页面访问操作操作

jumpserver的命令及解析

cd /opt/jumpserver-installer-v2.25.1

# 安装Jump server
./jmsctl.sh install

# 升级Jump server
./jmsctl.sh upgrade [version]

# 监测当前版本号
./jmsctl.sh check_update

# 启动Jump server
./jmsctl.sh start

# 停止Jump server
./jmsctl.sh stop

#关闭Jump server
./jmsctl.sh close

#重启Jump server
./jmsctl.sh restart

#检查Jump server的运行状态
./jmsctl.sh status

# 卸载Jump server
./jmsctl.sh uninstall

# 帮助(查看命令参数详情)
./jmsctl.sh -h

离线部署Jump server

从飞致云社区 下载最新的 linux/amd64 离线包, 并上传到部署服务器的 /opt 目录;离线包大概(1.5G)。

注意:下载时需要注册、登录一下
在这里插入图片描述
在这里插入图片描述

#将下载的包传到/opt目录
mv jumpserver-offline-installer-v2.25.2-amd64-67.tar.gz /opt/

#切换到/opt目录
cd /opt

#解压jumpserver压缩包
tar -xf jumpserver-offline-installer-v2.25.2-amd64-67.tar.gz

#重命名jumpserver-offline-installer-v2.25.2-amd64-67为jumpserver
mv jumpserver-offline-installer-v2.25.2-amd64-67 jumpserver

#进入jumpserver的目录
cd /opt/jumpserver
# 根据需要修改配置文件模板, 如果不清楚用途可以跳过修改
cat config-example.txt
# 以下设置如果为空系统会自动生成随机字符串填入
## 迁移请修改 SECRET_KEY 和 BOOTSTRAP_TOKEN 为原来的设置
## 完整参数文档 https://docs.jumpserver.org/zh/master/admin-guide/env/

## 配置 Docker 镜像加速, 不同的架构请参考安装文档
# DOCKER_IMAGE_PREFIX=

## 安装配置
VOLUME_DIR=/opt/jumpserver
DOCKER_DIR=/var/lib/docker
SECRET_KEY=
BOOTSTRAP_TOKEN=
LOG_LEVEL=ERROR

##  MySQL 配置, USE_EXTERNAL_MYSQL=1 表示使用外置数据库, 请输入正确的 MySQL 信息
USE_EXTERNAL_MYSQL=0
DB_HOST=mysql
DB_PORT=3306
DB_USER=root
DB_PASSWORD=
DB_NAME=jumpserver

##  Redis 配置, USE_EXTERNAL_REDIS=1 表示使用外置数据库, 请输入正确的 Redis 信息
USE_EXTERNAL_REDIS=0
REDIS_HOST=redis
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

## 访问配置
HTTP_PORT=80
SSH_PORT=2222
MAGNUS_MYSQL_PORT=33060
MAGNUS_MARIADB_PORT=33061

## 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

## Nginx 文件上传大小
CLIENT_MAX_BODY_SIZE=4096m

## Task 配置, 是否启动 jms_celery 容器, 单节点必须开启
USE_TASK=1

## XPack, USE_XPACK=1 表示开启, 开源版本设置无效
USE_XPACK=0
RDP_PORT=3389
MAGNUS_POSTGRE_PORT=54320
TCP_SEND_BUFFER_BYTES=4194304
TCP_RECV_BUFFER_BYTES=6291456

# 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
JUMPSERVER_ENABLE_FONT_SMOOTHING=True

## 终端使用宿主 HOSTNAME 标识
SERVER_HOSTNAME=${HOSTNAME}

# 额外的配置
CURRENT_VERSION=

安装jumpserver,安装时需要手动给路径问你是选择默认呢还是什么,默认的话可以直接回车就好;唯一一点好的是比在线安装快,因为在线安装需要拉取镜像特别慢,这个只需要下载”jumpserver-offline-installer-v2.25.2-amd64-67.tar.gz“离线包即可;

# 安装
./jmsctl.sh install

# 启动
./jmsctl.sh start

安装完成,启动完成之后,页面访问:ip地址就行,因为默认端口是80;

安装完成之后会给你说:
在这里插入图片描述

默认账号密码是admin admin

进入页面之后可查看页面访问操作操作

配置文件位置: /opt/jumpserver/config/config.txt

jumpserver的命令及解析

#进入jumpserver的目录
cd /opt/jumpserver

# 安装Jump server
./jmsctl.sh install

# 升级Jump server
./jmsctl.sh upgrade [version]

# 监测当前版本号
./jmsctl.sh check_update

# 启动Jump server
./jmsctl.sh start

# 停止Jump server
./jmsctl.sh stop

#关闭Jump server
./jmsctl.sh close

#重启Jump server
./jmsctl.sh restart

#检查Jump server的运行状态
./jmsctl.sh status

# 卸载Jump server
./jmsctl.sh uninstall

# 帮助(查看命令参数详情)
./jmsctl.sh -h

页面访问操作

页面访问:http://ip:80

在这里插入图片描述
默认账号密码是admin admin;第一次登录需要修改一下密码;可根据自己的情况来定密码;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

到这就完成了安装,相关文章请看下方!

在这里插入图片描述

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
2月前
|
Ubuntu Linux 测试技术
Linux系统之部署轻量级Markdown文本编辑器
【10月更文挑战第6天】Linux系统之部署轻量级Markdown文本编辑器
143 1
Linux系统之部署轻量级Markdown文本编辑器
|
4天前
|
消息中间件 Java Kafka
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
本文介绍了Kafka集群的搭建过程,涵盖从虚拟机安装到集群测试的详细步骤。首先规划了集群架构,包括三台Kafka Broker节点,并说明了分布式环境下的服务进程配置。接着,通过VMware导入模板机并克隆出三台虚拟机(kafka-broker1、kafka-broker2、kafka-broker3),分别设置IP地址和主机名。随后,依次安装JDK、ZooKeeper和Kafka,并配置相应的环境变量与启动脚本,确保各组件能正常运行。最后,通过编写启停脚本简化集群的操作流程,并对集群进行测试,验证其功能完整性。整个过程强调了自动化脚本的应用,提高了部署效率。
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
|
3天前
|
Ubuntu 网络协议 Linux
快速部署WSL(Windows Subsystem for Linux)
WSL提供了一种轻量级的方法,使开发者能够在Windows上无缝运行Linux环境。通过本文介绍的步骤,可以快速安装、配置和使用WSL,以满足开发和测试的需求。
26 8
|
4月前
|
资源调度 JavaScript Linux
【Azure 应用服务】本地Node.js部署上云(Azure App Service for Linux)遇到的三个问题解决之道
【Azure 应用服务】本地Node.js部署上云(Azure App Service for Linux)遇到的三个问题解决之道
|
2月前
|
搜索推荐 Linux 测试技术
Linux系统之部署homer静态主页
【10月更文挑战第11天】Linux系统之部署homer静态主页
86 41
Linux系统之部署homer静态主页
|
2月前
|
运维 监控 Linux
Linux系统之部署Linux管理面板1Panel
【10月更文挑战第20天】Linux系统之部署Linux管理面板1Panel
144 3
Linux系统之部署Linux管理面板1Panel
|
2月前
|
Web App开发 资源调度 网络协议
Linux系统之部署IP工具箱MyIP
【10月更文挑战第5天】使用Docker部署Radicale日历和联系人应用Linux系统之部署IP工具箱MyIP
121 1
Linux系统之部署IP工具箱MyIP
|
2月前
|
Linux Shell 异构计算
在linux上部署yolov5和安装miniconda3
这篇文章介绍了在Linux系统上部署YOLOv5并安装Miniconda3的步骤,包括使用wget命令下载Miniconda安装脚本、安装Miniconda、初始化Conda环境、添加镜像源等。
131 3
在linux上部署yolov5和安装miniconda3
|
1月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
78 2
|
1月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
49 3