一个计算机技术爱好者与学习者

0%

JumpServer入门篇

1. JumpServer简介

本文部分内容来自ChatGPT。

JumpServer是一款开源的堡垒机系统,是符合 4A 规范的专业运维安全审计系统,提供了Web页面管理、资产管理、权限管理、会话审计等功能。通过JumpServer,用户可以轻松地实现对多个设备的远程访问和管理,同时还能进行权限控制,从而提高了运维效率和安全性。

主要功能:

  • 资产管理:对各类设备进行统一管理,支持SSH、RDP、VNC等多种协议。
  • 权限管理:用户、用户组、资产、系统用户等多维度权限控制。
  • 审计功能:实时会话监控,录像回放,命令审计等。
  • Web访问:无需安装客户端,可直接通过浏览器访问设备。

相关文档:

2. 安装JumpServer V2

2.1. 源码安装

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

2.2. Docker安装

在安装JumpServer之前,请确保已安装以下组件:

Docker:版本17.12.0以上
Docker Compose:版本1.18.0以上

1、下载JumpServer的Docker Compose配置

1
2
3
git clone https://github.com/jumpserver/Dockerfile.git
cd Dockerfile
git checkout v2.4.4

2、修改配置项

1
2
cp config_example.conf .env
vim .env

修改下面的参数:

1
2
3
4
SECRET_KEY=my-secret-key
BOOTSTRAP_TOKEN=my-bootstrap-token
DB_PASSWORD=my-db-password
REDIS_PASSWORD=my-redis-password

3、启动JumpServer

1
docker-compose up -d

4、访问JumpServer Web端
假设部署机IP为 192.168.56.101 ,那么登录jumpserver方法为为 192.168.56.101
浏览器访问 http://192.168.56.101:8080

使用默认的管理员账密登录,账号admin,密码admin

3. 安装JumpServer V4

参考文档:JumpServer V4 快速入门

1、注册飞致云账号,下载 jumpserver离线安装包,并上传到部署服务器的 /opt 目录

2、解压安装包

1
2
3
4
cd /opt
tar -xf jumpserver-ce-v4.8.0-x86_64.tar.gz
mv jumpserver-ce-v4.8.0-x86_64 jumpserver
cd jumpserver

3、修改配置文件(可选)

1
vim config-example.txt

4、执行安装

1
./jmsctl.sh install

执行安装过程中,会安装Docker、导入依赖的镜像、启动PostgreSQL和Redis等容器。
安装后,配置路径路径为 /opt/jumpserver/config/config.txt

5、启动jumpserver

1
./jmsctl.sh start

6、访问jumpserver web端
假设部署机IP为 192.168.56.101 ,那么登录jumpserver方法为为 192.168.56.101
浏览器访问 http://192.168.56.101

使用默认的管理员账密登录,账号admin,密码ChangeMe

PS:常用命令

1
2
3
4
5
6
7
8
9
10
11
# 启动
./jmsctl.sh start

# 停止
./jmsctl.sh down

# 卸载
./jmsctl.sh uninstall

# 帮助
./jmsctl.sh -h

4. 使用JumpServer

4.1. JumpServer中添加资产

1、创建SSH密钥对(一次性工作)
找一台Linux主机,执行ssh-keygen,生成SSH密钥对,记录下来

2、创建账号模板(一次性工作)
登录Jumpserver Web端,账号管理,账号模板,创建一个账号模板
比如针对root用户或者ubuntu用户创建账号模板,同时配置上SSH私钥

3、被管理主机上配置公钥
登录到被管理主机后,编辑 ~/.ssh/authorized_keys ,将SSH公钥添加进去

4、添加资产
登录Jumpserver Web端,资产管理,资产列表,选择一个节点,创建资产,填入被管理主机的信息

4.2. 登录JumpServer

登录jumpserver的命令如下:

1
ssh <username>@<jumpserver-host> -p 2222 

以部署机IP为 192.168.56.101 ,用户为 admin 为例,登录jumpserver的具体命令为:

1
ssh admin@192.168.56.101 -p 2222

5. 节点和权限概念

5.1. 节点管理

节点(Node)是JumpServer中的一个逻辑概念,用于对资产进行分组和管理。建议根据组织结构或业务需求来创建和维护节点。

在“资产管理”-“节点列表”中点击“新建节点”按钮。
输入节点名称,如“开发环境”、“生产环境”、“数据库服务器”等。
将相应的资产分配到对应的节点中。

5.2. 权限管理

权限管理是JumpServer的核心功能之一,通过创建不同的用户、用户组、系统用户,可以实现细粒度的权限控制。

  • 用户管理:根据实际需要创建用户,如“运维人员”、“开发人员”等,建议接入LDAP。
  • 用户组管理:将具有相似权限需求的用户归纳到同一个用户组中,相当于角色,如“运维组”、“开发组”等。
  • 系统用户管理:创建系统用户,如“root”、“ubuntu”等,并配置对应的认证信息。
  • 资产授权:为用户或用户组分配访问资产的权限。

以下是一个权限管理的示例:

  • 在“用户管理”中创建用户“dev01”,并设置其密码。
  • 在“用户组管理”中创建用户组“开发组”,并将“dev01”添加到该组中。
  • 在“系统用户管理”中创建系统用户“ubuntu”,并配置其认证信息。
  • 在“资产管理”-“授权列表”中点击“新建授权”,选择“开发组”作为授权对象,选择相应的资产节点和系统用户,“ubuntu”作为授权系统用户,并设置合适的有效期。

通过以上设置,用户“dev01”将获得访问和管理授权节点中资产的权限。同时,JumpServer会根据授权的有效期自动生效和失效,确保权限在特定时间范围内有效。

注意:不要开启用户名与用户相同的系统用户,否则主机上会创建几十甚至几百个用户,不方便维护。

6. 节点和权限最佳实践

6.1. 节点管理

资源节点分成三类:按地域划分、按业务划分和按组件划分。每个机器属于一个地域节点,同时属于多个业务节点或多个组件节点。

  1. 按地域划分,例如可以分成腾讯云广州3区、阿里云杭州2区、自建机房北京2区等,每个地域下面可以根据用途再细分成开发、测试和生产。当有新机器加入时,直接添加到这些节点下面。
  2. 按业务划分,例如可以分成搜索、度秘、语音、地图、商业、文心一言等,每个业务下面可以根据用途再细分成开发、测试和生产。当业务需要机器时,就点击资产更新,把分配的机器加入到对应业务节点下面。
  3. 按组件划分,例如可以分成K8S、Spark、Hadoop、GitLab等,每个组件下面可以根据用途再细分成开发、测试和生产。当组件需要机器时,就点击资产更新,把分配的机器加入到对应组件节点下面。

6.2. 权限管理

权限管理说明:

  • 授权时以业务和用户组为基本单位
  • 一个机器可以属于多个业务
  • 一个业务包含多个用户组(角色)
  • 授权给用户组,而不是给用户
  • 每个用户组具有不同的权限
  • 一个用户可以属于多个用户组

例如,业务A包含host1和host2两台机器,运维用户组具有系统用户root、dev、qa的权限,开发用户组具有系统用户dev的权限,测试用户组具有系统用户qa的权限。
张三是业务A的开发同学,那么就把他加入到业务A的开发用户组。张三同时还是业务B的运维同学,那么就把他加入到业务B的运维用户组。

7. JumpServer问题记录

参考文档《JumpServer问题记录》