提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、简介

为了保证服务器安全,加个堡垒机,所有ssh连接都通过堡垒机来完成,堡垒机也需要有身份认证,授权,访问控制,审计等功能。

Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能。基于ssh协议来管理,客户端无需安装agent。

在公司中,分配人员服务器权限也是相当方便,如:来一个新人,在Jumpserver分配Jumpserver账号即可,人员离职,在Jumpserver删掉人员账号即可。无需担心人员离职留下后门,当然前提是检查防火墙,只允许Jumpserver服务器有其他服务器的ssh的权限。

目前市面上已经有很多jumpserver产品提供使用,这里就介绍最广泛的一款。
官方网址:https://www.jumpserver.org/

二、Jumpserver搭建

参考官方部署文档:https://docs.jumpserver.org/zh/master/install/setup_by_fast/

这款也是基于docker运行的,不管一键部署,还是手动部署都是docker,手动部署区别主要是改密码、IP、端口自定义之类的。默认的其实已经很好没必要改了。相对来所,搭建还是比较容易的,官方脚本一步到位。

环境要求⚓︎

OS/Arch Architecture Linux Kernel Soft Requirement Minimize Hardware
linux/amd64 x86_64 >= 4.0 wget curl tar gettext iptables python 2Core/8GB RAM/60G HDD
linux/arm64 aarch64 >= 4.0 wget curl tar gettext iptables python 2Core/8GB RAM/60G HDD
linux/loong64 loongarch64 == 4.19 wget curl tar gettext iptables python 2Core/8GB RAM/60G HDD

yum update
yum install -y wget curl tar gettext iptables

JumpServer 需要使用 MySQL 或 MariaDB 存储数据,使用 Redis 缓存数据,
支持 数据库 SSL 连接 和 Redis SSL 连接

Name Version Default Charset Default collation TLS/SSL
MySQL >= 5.7 utf8 utf8_general_ci Y
MariaDB >= 10.2 utf8mb3 utf8mb3_general_ci Y

Name Version Sentinel Cluster TLS/SSL
Redis >= 5.0 Y Y

已有自己的数据的情况下,创建数据库 MySQL

如果没有,就默认安装就好了

mysql> create database jumpserver default charset 'utf8';
Query OK, 1 row affected (0.00 sec)

mysql> show create database jumpserver;
+------------+---------------------------------------------------------------------+
| Database   | Create Database                                                     |
+------------+---------------------------------------------------------------------+
| jumpserver | CREATE DATABASE `jumpserver` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+------------+---------------------------------------------------------------------+
1 row in set (0.00 sec)

一键安装⚓︎

支持主流 Linux 发行版本(基于 Debian / RedHat,包括国产操作系统)。

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

标准部署

如果已经安装了docker
下载github上的安装包

cd /opt
wget https://github.com/jumpserver/installer/releases/download/v2.28.8/jumpserver-installer-v2.28.8.tar.gz
tar -xf jumpserver-installer-v2.28.8.tar.gz
cd jumpserver-installer-v2.28.8

前面都没法连上 ,只好用离线安装包了

下载离线安装包

 离线部署安装包下载地址:
  https://community.fit2cloud.com/#/products/jumpserver/downloads
# tar -xf jumpserver-offline-installer-v3.4.1-amd64.tar.gz
# cd jumpserver-offline-installer-v3.4.1-amd64/
# ls
cn-quick_start.sh  compose  config-example.txt  config_init  jmsctl.sh  LICENSE  locale  quick_start.sh  README.md  scripts  static.env  utils
# 根据需要修改配置文件模板, 如果不清楚用途可以跳过修改
cat config-example.txt
# 以下设置如果为空系统会自动生成随机字符串填入
## 迁移请修改 SECRET_KEY 和 BOOTSTRAP_TOKEN 为原来的设置
## 完整参数文档 https://docs.jumpserver.org/zh/master/admin-guide/env/

## Docker 镜像配置
# 国内连接 docker.io 会超时或下载速度较慢, 开启此选项使用华为云镜像加速
DOCKER_IMAGE_MIRROR=1

## 安装配置
# JumpServer 数据库持久化目录, 默认情况下录像(jumpserver/core/data/media/replay)、任务日志都在此目录
# 请根据实际情况修改, 升级时备份的数据库文件(.sql)和配置文件也会保存到该目录
VOLUME_DIR=/opt/jumpserver
SECRET_KEY=
BOOTSTRAP_TOKEN=
LOG_LEVEL=ERROR

##  MySQL 配置, 如果使用外置数据库, 请输入正确的 MySQL 信息,, 内置 MySQL 系统会自动处理
DB_HOST=mysql
DB_PORT=3306
DB_USER=root
DB_PASSWORD=
DB_NAME=jumpserver

##  Redis 配置, 如果使用外置数据库, 请输入正确的 Redis 信息,, 内置 Redis 系统会自动处理

REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=

# JumpServer 容器使用的网段, 请勿与现有的网络冲突, 根据实际情况自行修改
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
RDP_PORT=3389
MAGNUS_PORTS=30000-30100

## HTTPS 配置, 参考 https://docs.jumpserver.org/zh/master/admin-guide/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

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

# 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=
# 安装
./jmsctl.sh install

# 启动
./jmsctl.sh start

在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/62468d1a4a0b488baec5a16592c295b6.png
提示的默认选项–直接回车

第一次安装redis老出错,在这里插入图片描述

试了换一个redis 容器,也是一样

# docker pull docker.io/redis
# vim compose/docker-compose-redis.yml 
  redis:
    image: jumpserver/redis:6.2  -> 改成  docker.io/redis

查了日志 docker logs ,显示特权问题,关掉SELINUX

# setenforce 0 
# sed -i 's/SELINUX=enforcing/SELINUX=disable/g' /etc/selinux/config

重启后,查dokcer ps 会显示还在重启,再次初始化安装就正常了

在这里插入图片描述

提示 django.db.utils.OperationalError: (1130, “Host ‘192.168.250.3’ is not allowed to connect to this MySQL server”) [ERROR] 表结构变更失败!在这里插入图片描述

原因:访问mysql的源IP(容器)不在访问许可范围内

mysql> SELECT user, host FROM mysql.user;
+---------------+-----------+
| user          | host      |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys     | localhost |
| root          | localhost |
+---------------+-----------+
3 rows in set (0.00 sec)


mysql> GRANT ALL PRIVILEGES ON jumpserver.* TO 'root'@'192.168.250.3' IDENTIFIED BY 'Root@0615';
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT user, host FROM mysql.user;
+---------------+---------------+
| user          | host          |
+---------------+---------------+
| root          | 192.168.250.3 |
| mysql.session | localhost     |
| mysql.sys     | localhost     |
| root          | localhost     |
+---------------+---------------+
4 rows in set (0.00 sec)

再试就可以了

安装完成后配置文件 /opt/jumpserver/config/config.txt

cd /opt/jumpserver-installer-v2.28.8

# 启动
./jmsctl.sh start

# 停止
./jmsctl.sh down

# 卸载
./jmsctl.sh uninstall

# 帮助
./jmsctl.sh -h

部署环境IP更换

异地部署 服务器时,碰到在当地先调式,启动时用的是手动装的 mysql,安装过程中会有提示mysql的IP地址,不能用127.0.0.1的回环地址,因此在要更改服务器IP时就要提前更改。

# ./jmsctl.sh down
# vim /opt/jumpserver/config/config.txt     //修改如下这段

################################# MySQL 配置 ##################################
# 外置 MySQL 需要输入正确的 MySQL 信息, 内置 MySQL 系统会自动处理
#
DB_HOST=192.168.110.39
......
################################# MySQL 配置 ##################################

# ./jmsctl.sh start

启动完就可以了

网络出错,如下,改下docker 容器网段就可以了,可能跟内网段冲突了

Network jms_net  Error        failed to create network jms_net: Error response from daemon: Failed to Setup IP tables: Unable to enable SKIP DNAT rule:  (iptables failed: iptables --wait -t nat -I DOCKER -i br-b8ccbeb60528 -j RETURN: iptables: No chain/target/match by that name.

负载均衡 部署查看:
https://docs.jumpserver.org/zh/master/install/setup_by_lb/#haproxy

启动

# ./jmsctl.sh start
# docker ps
CONTAINER ID        IMAGE                      COMMAND                  CREATED              STATUS                        PORTS                                                            NAMES
0e647d60b577        jumpserver/core:v3.4.1     "./entrypoint.sh s..."   About a minute ago   Up About a minute (healthy)   8080/tcp                                                         jms_core
953eea4aae59        jumpserver/redis:6.2       "docker-entrypoint..."   11 minutes ago       Up 11 minutes (healthy)       6379/tcp                                                         jms_redis
105754161c92        jumpserver/magnus:v3.4.1   "./entrypoint.sh"        10 hours ago         Up 44 seconds (healthy)       0.0.0.0:33061-33062->33061-33062/tcp, 0.0.0.0:63790->63790/tcp   jms_magnus
c7782e859c73        jumpserver/core:v3.4.1     "./entrypoint.sh s..."   10 hours ago         Up 8 minutes (healthy)        8080/tcp                                                         jms_celery
241e085c0e9e        jumpserver/lion:v3.4.1     "./entrypoint.sh"        10 hours ago         Up 19 minutes (healthy)       4822/tcp, 8081/tcp                                               jms_lion
ec52449663be        jumpserver/web:v3.4.1      "/docker-entrypoin..."   10 hours ago         Up 10 minutes (healthy)       80/tcp, 0.0.0.0:8080->8080/tcp                                   jms_web
830d7dba5ff5        jumpserver/koko:v3.4.1     "./entrypoint.sh"        10 hours ago         Up 20 minutes (healthy)       0.0.0.0:2222->2222/tcp, 5000/tcp 

访问 http://192.168.118.10:8080/
在这里插入图片描述
默认管理员账户admin,密码admin,第一次登录提示会更改密码,更改密码后,重新登录即可进入

三、Jumpserver添加服务器、人员,以及授权

情景:员工ives,服务器192.168.118.。现在需要添加服务器192.168.118.80到jumpserver,并允许员工ives登录。

1:用户管理

添加员工账户ives,系统角色 用户 即可。

在这里插入图片描述

用户组

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

资产管理

资产树—各节点

点击页面左侧的 资产管理 - 资产列表,在根节点 Default 右键新建 SSH Server 和 RDP Server 两个节点
注意:节点最好越好,以免后面授权后使用都窜号其他使用者的资源账号

Defaule
├─ SSH Server
└─ RDP Server
在这里插入图片描述
在这里插入图片描述

创建网域

在这里插入图片描述

添加资产----主机

在这里插入图片描述

在这里插入图片描述

账号管理

点击账号管理 —账号列表—添加 (注意:目标主机有特权 的账号如root、administrator等超级管理员会自动勾特权用户,普通远程桌面用户不要勾 选特权账号,否则会出现无法连接,另外密码可以不设置,登录时再设置记住密码)
在这里插入图片描述
在这里插入图片描述

授权管理

在这里插入图片描述

退出web,用创建的用户重新登录web

然后可以通过web终端 SSH访问资产服务器了
在这里插入图片描述
在这里插入图片描述

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

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

命令过滤

创建命令组:

rm -rf / 组 ,
内容 :
rm -rf /

mysql-DROP组
内容 :
DROP TABLE
DROP database

命令过滤

过滤 rm -rf /
内容:选择命令组 rm -rf / ,指定用户-全部 ,拒绝
。。。。

审计

配置外部存储存储录像

JumpServer 目前支持的外部录像存储有:S3、Ceph、Swift、OSS、Azure、OBS、COS。

点击“系统设置”→“终端设置”→“录像存储”。点击“创建”→“Ceph”。
在这里插入图片描述
在这里插入图片描述
提交即可。

点击“系统设置”→“终端设置"→“终端管理”。更新每一个组件中的的录像存储为新建的外部存储。

录像文件的播放

查看审计录像可以在线查看,也可以下载之后在 JumpServer 专用的播放器中播放。
1、在线播放
录像文件的在线查看地址位于“审计台”→“会话审计”→“会话记录”→”历史会话“。
在这里插入图片描述
选择需要查看的历史会话点击“回放”即可查看。
2、离线播放
①、播放器安装

JumpServer 支持会话录像离线播放,需要安装 JumpServer Video Player。

JumpServer Video Player 的安装地址:​​https://github.com/jumpserver/VideoPlayer/releases/download/v0.1.5/JumpServer.Video.Player.Setup.0.1.5.exe​​下载安装。

②、录像文件下载

录像文件下载:

”会话管理“→”历史会话“→”历史会话“,下载需要查看的会话录像。

实施中注意事项

1、资源池尽量细化分节点,如:应用服务器,虚拟化服务器、网络设备、远程桌面服务等;
2、使用者也尽量细各部门,同部会使用时会发现账号会串到其他可见,对于远程桌面权限,信息安全管理 较严的,最好不拖管密码;
3、IT管理部门,拖管的账号,最好也只有授权的可见,没有完全权限的,最好不要在同一个分组里面。

连接Websit 、mysql

注意:发布机需要2012或2016,2016更稳定,另外发布机系统不要提前安装Chrome浏览器,以免冲突
参考:https://zhuanlan.zhihu.com/p/610427689?utm_id=0&wd=&eqid=a9ddc3e30001122d0000000264c1e2bb

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐