JumpServer开源堡垒机v3.0版本设计重点解读

news2024/11/15 12:43:49

编者注:在1月17日的JumpServer开源堡垒机v3.0预发布恳谈会直播中,JumpServer创始人广宏伟与大家分享了JumpServer v3.0版本的设计思路与功能亮点。在v3.0版本正式发布之前,JumpServer开源项目组基于此次直播内容为大家整理总结了JumpServer v3.0版本的设计重点,旨在帮助大家更好地理解JumpServer v3.0的重构思路。

《JumpServer开源堡垒机v3.0预发布恳谈会》直播回顾请访问“JumpServer开源堡垒机”视频号,在“直播回放”中观看即可。

核心问答

问:JumpServer开源堡垒机为什么要做v3.0版本?

答:自2020年6月发布V2版本至今,JumpServer坚持每月发布新版本,在V2的大版本内共累计迭代了28个版本。在这两年多的时间里,JumpServer的研发团队激进过,也妥协过,在功能迭代的过程中发现了一些产品设计不合理、冗余的地方。与此同时,长期保持每月发布一个版本的迭代速度也使得JumpServer的部分功能设计没有经过完全的深思熟虑,导致了整个系统越来越臃肿,我们必须对其做“减法”。

此外,社区用户的反馈也让我们收集到了不同规模企业用户关于JumpServer V2版本的建议和需求,一些规模较大的企业用户的部分功能需求在V2版本的技术架构下难以满足,其中的原因归结于JumpServer底层设计架构的局限。

综合以上原因,为了给广大企业用户带来更加卓越的运维安全管理体验,我们决定启动v3.0版本的研发,对JumpServer的技术架构进行重构。

问:JumpServer开源堡垒机v3.0版本什么时候发布?

答:JumpServer v3.0版本预计在2023年2月27日正式发布。欢迎大家在版本正式发布之后部署体验v3.0版本,除了本次直播分享的一些核心功能设计以外,还有更多的新增功能设计等待大家前去探索。而更多的社区反馈也有助于我们在未来不断完善JumpServer的功能设计和产品体验。

JumpServer v3.0:一款“内外兼修”的堡垒机

堡垒机作为一款企业IT部门高频使用的工具软件,用户的使用体验至关重要。在过去的几个月里,我们的研发团队在原有的产品设计上进行了结构化调整,重构底层技术架构,通过改变管理模型的方式来兼顾不同规模和类型用户的实际使用场景,基于用户、系统用户、资产和授权这四个维度对JumpServer中的大部分使用场景进行了重新设计。

在JumpServer开源堡垒机v3.0版本的设计过程中,我们秉持“内外兼修”的原则,旨在进一步提升用户的使用体验,真正用心做好一款开源堡垒机。

内:核心功能全面优化设计

1.系统用户重新设计:系统用户重构为账号,放弃系统用户中间层

在JumpServer过去的版本中,系统用户承担了太多的职责。用户通过系统用户创建表单时可以看到,JumpServer的系统用户承担了包括创建账号、用户切换、自动推送、动态用户、命令过滤、AD(Active Directory)、SFTP Home在内的众多职责。这样一来,系统用户的功能显得十分臃肿,尤其企业用户使用系统改密功能时,情况会变得复杂且难以维护。
在这里插入图片描述▲ 旧版本系统用户创建表单

JumpServer设计系统用户的初衷其实是作为账号存在的,通过特权账号创建系统用户,用户不需要在资产上一个个繁琐地添加账号, 并且包含自动创建账号和自动推送的功能,不需要进行额外的维护。这在资产规模比较小、大多数用户的账号密码相同的情况下,使用起来非常便捷。

但是随着JumpServer用户规模和使用范围的不断扩大,对于拥有大量IT资产,并且等保安全要求其资产密码都要不一样的大中型企业,这带来了比较大的困扰。当一个系统用户在不同的资产上有不同的密码需求时,系统用户功能难以满足他们的需求,难以进行授权,问题变得比较复杂。

为了解决这个问题,我们将系统用户和账号进行分离。系统用户关联资产时会产生一个账号,一个系统用户在不同的资产上允许产生不同的账号,联表计算之后形成一个账号集,即账号列表。这样做的目的是满足用户拥有大规模IT资产场景的需要,但是在用户实际的使用过程中,面对拥有几十万账号的业务场景,计算量庞大,导致搜索速度很慢,账号列表也很容易出现问题而崩溃,因此我们最终决定对系统用户进行重新设计。

在JumpServer v3.0版本中,系统用户重构为账号,放弃系统用户中间层。这就意味着在JumpServer v3.0以及后续版本中,不会再有“系统用户”的概念。用户直接在资产上添加账号,在添加资产时需要添加一系列的凭证来设置账号权限,一个账号对应一个资产。这样一来,用户在登录资产时,可以直接在资产上选择有哪些权限的账号可以进行登录,省去了原来需要通过系统用户登录的中间步骤。

在比较简单的使用场景中,用户在创建资产时还可以选择账号模版,自动根据模版上的用户名密码创建账号,更为快速便捷。在进行授权时,将原先选择系统用户的步骤改为选择账号用户名,除了指定用户名以外,还设计了包括所有账号、手动账号、同名账号在内的虚拟账号,以对应不同的授权策略。
在这里插入图片描述▲ 系统用户和账号的演变

在这里插入图片描述▲ 对授权策略影响的变化

在这里插入图片描述▲ 新版本创建资产账号界面

同时,JumpServer v3.0版本新增“账号管理”模块,通过账号列表可以看到所有的账号,由此可以开展账号收集、账号推送、账号模版、账号改密、账号备份等功能,账号推送功能也有助于我们的研发团队后续进行更多的自动化设计。

此外,特权账号功能是未来JumpServer v3.0版本发展的一个重点,我们也会围绕账号功能展开更多的安全审计工作。
在这里插入图片描述▲ 新版本的资产列表界面

2.资产和应用合并:化繁为简

起初JumpServer设计中只有资产,后来为了支持数据库连接,新增了应用,包括数据库、Kubernetes、远程应用以及其他应用。因为每种应用可能都有单独的一些字段,所以我们不得不新增了Application表,以便和资产区分开来。我们做了很多冗余的工作,这也就导致很多后端的数据关系表会和资产一样存在多份,比如授权表、系统用户关系表、命令过滤表等,数据库和API都存在冗余的现象。

在JumpServer v3.0版本中,我们化繁为简,将资产和应用合并,统称为资产,强化资产平台方面的职责。

根据字段属性是否大致相同,我们将之前的资产拆分为主机、数据库、网络设备、云服务、Web以及其他类别。用户在创建资产时,首先需要选择对应的平台类别,每种类别下对应更加细化的内置资产类型。

合并资产和应用之后,资产表的结构也发生了变化,用户的管理操作首先围绕通用表结构来进行,实际使用到数据库、Web、主机、网络设备、云的时候,再根据不同的类型进行详细的单独表格处理。
在这里插入图片描述▲ 资产的演变

在这里插入图片描述▲ 资产类型

在这里插入图片描述▲ 新版本的资产列表界面

在这里插入图片描述▲ 创建资产时选择平台

3.资产平台重新设计:平台是资产的抽象和约束

资产与应用合并之后,强化了资产平台的作用,因此我们需要对资产平台也进行重新设计,对资产进行约束。

原有的资产平台主要用来区分操作系统、编码差异以及Windows差异,本质上来说只是起到了标记的作用。而在JumpServer v3.0版本中,新平台除了可以区分资产类型,还可以定制一些功能,比如资产是否能开启网域、能进行哪些协议和配置、是否支持账号切换功能等,这些都可以直接在平台上进行定义和设置。

另外,通过新的资产平台,用户还可以灵活定义自动化配置,包括资产探活方式、改密方式、账号推送、su切换方式、收集账号、收集信息等。

我们所有的自动化功能都依赖于Ansible自动化运维工具,因此不需要我们再进行额外的Python代码填写,可以直接选择资产和账号来进行配置。这样做的优势是提升了系统的自动化程度,提高配置效率,也在一定程度上减轻了我们的工作量,让我们有更多的精力专注于更重要的功能优化。
在这里插入图片描述▲ 资产平台的变化

在这里插入图片描述▲ 灵活定义自动化配置

用户连接到资产时可能某种资产或者某个协议会有一些特殊的表现需要进行设置。平台强化之后,设置项的内容更为丰富,用户可以根据资产的特点创建对应的系统平台并进行设置。

大多数相同的资产信息可以在系统平台上统一设置,对于某些资产特有的信息可以单独在某资产上进行修改;与认证有关信息的可以在账号上进行设置;对于使用同一个账号连接资产时,认证信息不一样,也可以在连接时进行配置。
在这里插入图片描述▲ 创建系统平台界面

4.RemoteApp远程应用重新设计:远程应用是未来扩展的核心

JumpServer中原来的RemoteApp远程应用是一种应用类别,只是作为JumpServer的一种能力存在的。每个远程应用需要配置一个依赖的RDP资产,在资产上安装应用,然后通过托管程序拉起、这种使用方式比较基础,开发和复用起来十分麻烦。面对不同的使用场景,需要在每个客户端中进行重新配置,不便于我们进行扩展和定制开发,无法满足很多企业用户的需求,部署交付比较消耗人力。因此在JumpServer v3.0版本中,我们对远程应用进行了重新设计。

远程应用是JumpServer未来扩展的核心,也是JumpServer v3.0版本重构中非常重要的部分。我们的研发团队很重视远程应用的重新设计,在JumpServer v3.0版本中做了重大的更新。

在JumpServer v3.0版本中,RemoteApp的改变包括:

■ RemoteApp远程应用将作为一种连接方式存在,主要用于连接资产,而不再是一种应用类型;

■ RemoteApp的主机池由JumpServer进行统一维护,并且能定时上报状态;

■ 用户提供Windows资产并安装基础组件之后,JumpServer会在应用发布机上代理执行自动化的工作,这样一来,RemoteApp主机就可以自动部署、自动维护;

■ 密码代填功能使用Python框架完成,而不再使用AutoHotKey,准确性更强;

■ 添加RemoteApp类型后,需要声明支持的协议。

新版本的JumpServer共有三种连接方式,分别是基于原始协议级实现的本地客户端连接方式、基于Web实现的Web连接方式,以及基于RemoteApp实现代理的远程应用连接方式。当用户连接资产的时候,可以根据该资产已有协议来选择连接方式,系统将会提供多种连接方式供用户选择。
在这里插入图片描述▲ 新版本RemoteApp远程应用设计原理

在这里插入图片描述▲ 新版本远程应用界面

外:全新UI设计,简约而直白

除了内在的功能外,JumpServer v3.0的操作界面也做了全新的升级。专业设计师对JumpServer界面进行了全新的UI设计,仪表盘数据更加直观,并且重新调整了功能布局。

简约而直白的设计将大幅提升用户的使用体验。未来,我们也会提供不同的主题配色,以满足更多用户的个性化审美需求。
在这里插入图片描述▲ 新版本JumpServer登录界面

在这里插入图片描述▲ 新版本JumpServer仪表盘界面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/341872.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++11可变模板参数

C11可变模板参数一、简介二、语法三、可变模版参数函数3.1、递归函数方式展开参数包3.2、逗号表达式展开参数包一、简介 C11的新特性–可变模版参数(variadic templates)是C11新增的最强大的特性之一,它对参数进行了高度泛化,它能…

STM32单片机红外遥控

红外遥控接口电路STM32单片机红外遥控程序源代码#include "sys.h"#define LED_RED PBout(12) //红色发光二极管控制管脚初始化PB12#define LED_GREEN PBout(13) //绿色发光二极管控制管脚初始化PB13#define LED_YELLOW PBout(14) //黄色发光二极管控制管脚初始化PB14…

反射,枚举,lambda表达式

目录 1、反射 1.1 基本概念 1.2 反射相关的类 1.3 创建 Class 对象 1.4 反射的使用 1.4.1 通过反射创建对象: 1.4.2 获取私有的构造方法 1.4.3 获取私有的成员变量 1.4.4 获取私有的方法 1.5 总结 2、枚举 2.1 认识枚举 2.2 使用枚举 2.3 枚举与反射…

第4章 流程控制-if-else,Switch,For循环(循环守卫,循环步长,倒叙打印),While循环,多重循环...

第 4 章 流程控制-if-else,Switch,For循环(循环守卫,循环步长,倒叙打印),While循环,多重循环 4.1 分支控制 if-else 让程序有选择的的执行,分支控制有三种:单分支、双分支、多分支 4.1.1 单分支 1)基本语法…

Leetcode-每日一题1234. 替换子串得到平衡字符串(滑动窗口 + 哈希表)

题目链接:https://leetcode.cn/problems/replace-the-substring-for-balanced-string/description/ 思路 题目意思 这题意思是一个只含有[Q, W, E, R] 四个字符的字符串s且长度一定是 4的倍数, 需要你通过替换子串,使他变成一个「平衡字符…

【C++设计模式】学习笔记(6):Bridge 桥模式

目录 简介动机(Motivation)模式定义结构(Structure)要点总结笔记结语简介 Hello! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专业,获得过国家奖学金…

【C++设计模式】学习笔记(2):模式分类与模版方法 Template Method

目录 简介模式分类GOF-23 模式分类从封装变化角度对模式分类重构获得模式 Refactoring to Patterns重构关键技法“组件协作”模式Template Method 模式动机(Motivation)结构化软件设计流程面向对象软件设计流程早绑定与晚绑定模式的定义结构(Structure)要点总结结语简介 He…

Unity(一)--通过简单例子了解属性、脚本等基础操作

目录新建工程保存视图创建游戏对象调整场景视图角度添加物理运动组件更换材质更改颜色添加脚本点击向上跳跃变色旋转UGUI的使用修改文字内容新建工程 ps:最好不使用中文文件路径及名称,可能会报错。 保存视图 进工程后,此时只有空文件夹,可…

《痞子衡嵌入式半月刊》 第 71 期

痞子衡嵌入式半月刊: 第 71 期 这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻,农历年分二十四节气,希望在每个交节之日准时发布一期。 本期刊是开源项目(GitHub: JayHeng/pzh-mcu-bi-weekly),欢迎提交 issue&#xff0c…

新手做跨境电商,选对平台很重要

据数据统计,我国跨境电商早在2013年,发展态势就十分迅猛,交易规模达到2.7万亿元;而到2015年,仅仅两年时间,交易规模就突破到5万亿元;再过两年,2017年跨境电商交易规模增长到7.6万亿元…

okcc呼叫中心怎样搭建?

随着企业对服务逐渐重视,开始意识到呼叫中心作为客户服务水平和沟通效率的基本平台,并且有越来越多的企业开始利用呼叫中心外呼方式销售自己的产品。在此背景下,很多企业,无论规模大小,都有建立自己呼叫中心的想法。 …

docker的资源控制管理——Cgroups

引言:docker 使用cgrqup控制资源,K8S 里面也有limit(使用上限)docker通过cgroup来控制容器使用的资源配额,包括CPU、内存、磁盘三大方面,基本覆盖了常见的资源配额和使用量控制。Cgroup 是 Control group 的…

Jboss EAP 7.4.8配置jacoco 端口无法开启 启动报错

项目场景: servers: Jboss EAP 7.4.8 JDK: JDK17 jacoco: 测试jacoco-0.7.9 jacoco-0.8.5 jacoco-0.8.8 问题描述 问题1: Jboss 启动 VM arguments追加, 如下启动参数: -javaagent:F:\CoverageReport\jacoco-0.7.9\lib\jacocoagent.jarincludes*,o…

别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(1)

别具一格,原创唯美浪漫情人节表白专辑, (复制就可用)(html5,css3,svg)表白爱心代码(1) 一、 前言 回眸之间,丰盈了岁月,涟漪了思绪,轻轻落笔,不写伤痕,不写仇怨,只写岁月…

反光板导航SLAM(三)反光柱导航开发与实验

在上一章中简单了解了VEnus算法对于反光柱导航的基本思路。其主要分为了高反点提取、高反点聚类查找中心、高反点与已知反光柱位姿匹配以及调用ceres库进行位姿优化等步骤。然后在这个算法的基础上,再进行一定的开发达到一个比较稳定且可视化的版本。 使用&#xff…

json对象和formData相互转换

前言 大家都知道,前端在和后台进行交互联调时,肯定避免不了要传递参数,一般情况下,params 在 get 请求中使用,而 post 请求下,我们有两种常见的传参方式: JSON 对象格式和 formData 格式&#x…

《MySQL学习》 索引 下 覆盖索引,MRR,联合索引

一. 覆盖索引 有一张表T1,它的建表语句如下 mysql> create table T1 ( ID int primary key, k int NOT NULL DEFAULT 0, s varchar(16) NOT NULL DEFAULT , index k(k)) engineInnoDB;insert into T1 values(100,1, aa),(200,2,bb),(300,3,cc),(500,5,ee),(60…

为什么子进程要继承处理器亲缘性?

请先考虑一个典型的程序为什么需要启动一个子进程。(当然资源管理器不算一个典型的程序) 这是因为手头的任务被分解为子任务,无论出于何种原因,这些子任务都被放入子流程中。例如,在实现多次遍历型编译器/链接器时,其中每次遍历都…

虹科新品 | 万兆车载以太网媒体转换器-实现更加快捷、高效的连接

多千兆车载以太网 媒体转换器 —— Technica Engineering —— 2.5/5/10GBASE-T1多千兆 Media Converter Media Converter 是一种硬件设备,可在汽车以太网连接(100BASE-T1 或 1000BASE-T1)和任何具有带 RJ-45 连接器的标准以太网网络接口卡 …

canal同步mysql数据到kafka, kafka消费存入clickhouse

环境win mysql5.7 apache-zookeeper-3.5.9-bin kafka_2.11-1.1.1 canal.deployer-1.1.7-SNAPSHOT 如果不想看步骤可以直接下载我打包好的文件,修改相关数据库配置就行 https://download.csdn.net/download/weixin_38738049/87441074?spm1001.2014.3001.55031新增m…