安全问题是企业信息化建设过程中非常重要的一环。随着数字经济时代的到来,近年来,企业 IT 环境发生了巨大的变化。作为保障企业 IT 运维安全审计的主要工具,堡垒机逐渐进入到大家的视野,越来越多的企业用户开始部署堡垒机,让企业的运维操作变得更加安全、更加高效。
传统的硬件堡垒机功能老旧,价格还很昂贵,今天 HelloGitHub 给大家带来了一款已经诞生九年的开源堡垒机——JumpServer。测试部署之后发现 JumpServer 很容易上手,功能也十分强大,操作上更符合中国用户的使用习惯。
说实话我第一次了解到这个项目的时候也很惊讶。2014 年到 2023年,九年的时间,JumpServer 从一个简单的运维脚本萌发,到现在成为累计安装部署至少 25 万次的开源项目,收获了超过 21500 星,社区的活跃度非常高。
更让我震惊的是,JumpServer 到现在还一直保持着每月迭代一个新版本的更新速度,始终坚持开源。而且 JumpServer 项目的创始人老广(ibuler)现在也仍然是 JumpServer 研发团队的核心,依旧坚持在研发一线写代码,带领 JumpServer 开源团队不断成长与发展,这份坚持真的非常难能可贵。
GitHub 地址:https://github.com/jumpserver/jumpserver
九年来,JumpServer 开源项目被广大社区用户所喜爱,真实地改变了国内堡垒机的应用市场。但是 JumpServer 开源项目组并没有止步于此,还是不断在突破自我,认真聆听社区用户的声音。
2023 年 2 月,JumpServer 正式发布 v3.0 版本,重构了底层技术架构,通过改变管理模型的方式来兼顾不同规模和类型用户的实际使用场景。在此之后,JumpServer 依旧保持每月迭代一个小版本,解决用户在真实环境中遇到的版本升级、资产迁移等问题,目前已经形成了一个相对成熟、稳定的、可投入生产使用的新版本 JumpServer。同样作为开源爱好者,我看了创始人老广的自白也十分有感触。 其实 JumpServer 在 2020 年发布了 V2 大版本,在两年多的时间里已经累计迭代了 28 个版本,可以说已经是一个相当成熟的产品了,用户群体也非常庞大。
那 JumpServer 为什么还要做 V3 版本呢? 老广提到,JumpServer 的研发团队在之前的时间里激进过,也妥协过,在功能迭代的过程中发现了一些产品设计不合理、冗余的地方。长时间的高速迭代也使得 JumpServer 的部分功能设计没有经过完全的深思熟虑,开发起来十分复杂,导致整个系统变得臃肿。与此同时,社区用户的反馈也让研发团队感知到了不同规模企业用户对于 JumpServer 的现实需求,JumpServer 原有底层架构设计的局限使得部分功能需求难以实现。
JumpServer 自身产品演进和用户需求的双重驱动,让 JumpServer 勇敢地做了“减法”。为了带给广大用户更好的运维安全管理体验,满足更多企业用户的需求,JumpServer 开源项目组在 2022 年 3 月启动了 V3 版本的研发,耗时了将近一年来重构整个底层架构,并对 JumpServer 中的大部分使用场景进行了重新设计。
这也让我感受到了 JumpServer 团队一直以来在践行的“开源精神”,JumpServer 是中国领先的开源软件公司——FIT2CLOUD 飞致云旗下的品牌,我们也从 JumpServer 身上看到了飞致云想要为“数字经济时代创造好软件”的诚意。
在 JumpServer V3 产品设计过程中,JumpServer的研发团队秉持“内外兼修”的原则,真正用心做好一款开源堡垒机。主要体现在以下几点:
JumpServer v3.0的UI界面全新升级,设计简约而直白,功能布局重新调整,仪表盘数据也更加直观,我使用了一段时间,操作体验十分流畅。
在 JumpServer 过去的版本中,系统用户承担了太多的职责,其功能显得十分臃肿。JumpServer 的系统用户最初是作为账号存在的,通过特权账号创建系统用户,这对于资产规模较小、账号密码多数相同的企业来说,使用起来十分便捷。但是随着 JumpServer 用户规模和使用范围的不断扩大,对于拥有大量 IT 资产,并且等保安全要求比较高的大中型企业,这就带来了比较大的困扰。
后来为了解决这个问题,JumpServer 研发团队将系统用户和账号进行分离,让系统用户在关联不同资产时允许产生多个账号,联表计算之后形成账号列表,这就满足了拥有大规模 IT 资产场景用户的需要,但是随着企业的资产规模不断扩大,在面对计算量庞大的业务场景时,账号列表很容易出现问题而崩溃,因此系统用户的重新设计也是本次 V3 重构非常重要的部分。
在 JumpServer v3.0 版本中,系统用户重构为账号,放弃系统用户中间层,资产账号进行关联,这样一来,JumpServer 就可以更加准确地描述一个资产上的所有账号信息。
起初 JumpServer 的设计中只有资产,后来为了支持数据库连接,新增了应用。为了和资产进行区分,又不得不新增了 Application 表,这也就导致很多后端的数据关系表会和资产一样存在多份,数据库和 API 都存在冗余的现象。JumpServer v3.0 版本化繁为简,将资产和应用合并,统称为资产。
资产与应用合并之后,强化了资产平台的作用,因此也需要对资产平台进行重新设计,对资产进行约束。原有的资产平台本质上只是起到标记的作用,而在 JumpServer v3.0 版本中,新平台除了区分资产类型外,还可以定制功能。另外,新平台还可以灵活定义自动化配置,所有的自动化功能都依赖于 Ansible 自动化运维工具,不需要我们再进行额外的 Python 代码填写,可以直接选择资产和账号来进行配置,提升了系统的自动化程度和配置效率。
原先 RemoteApp 远程应用是一种应用类别,只是作为 JumpServer 的一种能力存在的。
在 JumpServer v3.0 版本中,研发团队也对远程应用进行了重新设计。远程应用是 JumpServer 未来扩展的核心,也是 JumpServer v3.0 版本重构中非常重要的部分,研发团队非常重视远程应用的重新设计,在新版本中做了重大的更新,并且面向社区开源,希望能和广大的社区用户一起打造应用市场,实现万物可连,并进一步打开堡垒机的应用场景空间。
JumpServer 从一个简单的 Python 运维脚本,到成为累计安装部署 25 万次的开源项目,花了九年的时间。
为了能给企业构建运维安全审计体系等工作提供相关指引,2023 年 7 月,JumpServer 开源项目组编著的《新一代堡垒机建设指南》特别推出 JumpServer v3.0 发布纪念版,以此为载体回顾堡垒机作为一个IT产品品类的发展历程,及其在云计算时代所面临的问题,以及新一代堡垒机建设的想法与实践。
这本白皮书进一步升级了新一代堡垒机的内涵解读,对最新版本 JumpServer 的功能架构及核心优势进行了详细阐述,并与大家分享 JumpServer v3.0 版本的研发设计思路和功能进化。另外,白皮书还同步更新了包括腾讯海外游戏、货拉拉、万华化学在内的最新企业应用案例,以帮助用户更好地推进 JumpServer 开源堡垒机在企业的落地实践。