认识 jumpserver
JumpServer 开源堡垒机是一款运维安全审计系统产品 , 提供身份验证、授权控制、账号管理、安全审计等功能支持 , 帮助企业 快速 构建运维安全审计能力。 JumpServer开源堡垒机通过企业版或者软硬件一体机的方式,向企业级用户交付开源增值的运维安全审计解决方案。
堡垒机 主要用来解决企业IT运维部门账号管理混乱,身份冒用、滥用,授权控制不明确,操作行为不规范,事件责任无法定位等问题。 合规运维与安全审计系统(堡垒机)的前身是跳板机,这两个设备的主要作用都是统一管理运维权限,避免企业或机构IT资产受到外来威胁,如网络攻击,运维人员误操作。
堡垒机和跳板机区别
跳板机: 只有跳转登录功能.
如果跳板机提供了以下几条,叫做审计系统或者堡垒机.
1. 记录用户操作
2. 实现了权限管理.
3. 监控网络环境
4. 集中报警
堡垒机要想成功起到他的作用,只靠堡垒机本身是不够的,,还需要一系列的安全对用户进行限制的配合,堡垒机从部署上,网络要达到以下条件.
1. 所有人包括运维、开发等任何需要访问业务系统的人员,只能通过堡垒机访问业务系统.
1> 挥手所有对业务系统的访问权限,做到了除堡垒机管理人员,没有人知道业务系统任何机器的登录密码.
2> 网络上限制所有人员只能通过堡垒机的跳转才能访问业务系统.
2. 确保除了堡垒机管理员之外,所有其他人对堡垒机本身无任何操作权限,只有一个登录跳转功能.
3. 确保用户的操作记录不能被用户自己以任何方式获取并篡改.
认识 4A
身份鉴别(Authentication)
目前很多系统采用基本的帐号与口令方式进行认证,由于没有技术机制的限制,口令的设置过于简单,无法实现用户标识唯一性,须考虑增强认证手段和统一管理。
功能 | 说明 |
---|---|
登录认证 | 资源统一登录与认证 |
LDAP/AD 认证 | |
RADIUS 认证 | |
OpenID 认证(实现单点登录) | |
CAS 认证 (实现单点登录) | |
MFA认证 | MFA 二次认证(Google Authenticator) |
RADIUS 二次认证 | |
登录复核(X-PACK) | 用户登录行为受管理员的监管与控制 |
授权控制(Authorization)
每个帐号在系统中能做的操作是不同的,需要管理者进行精细的授权,确保每个帐号具有最合适的权限,防止操作越权。
功能 | 说明 |
---|---|
多维授权 | 对用户、用户组、资产、资产节点、应用以及系统用户进行授权 |
资产授权 | 资产以树状结构进行展示 |
资产和节点均可灵活授权 | |
节点内资产自动继承授权 | |
子节点自动继承父节点授权 | |
应用授权 | 实现更细粒度的应用级授权 |
MySQL 数据库应用、RemoteApp 远程应用(X-PACK) | |
动作授权 | 实现对授权资产的文件上传、下载以及连接动作的控制 |
时间授权 | 实现对授权资源使用时间段的限制 |
特权指令 | 实现对特权指令的使用(支持黑白名单) |
命令过滤 | 实现对授权系统用户所执行的命令进行控制 |
文件传输 | SFTP 文件上传/下载 |
文件管理 | 实现 Web SFTP 文件管理 |
工单管理(X-PACK) | 支持对用户登录请求行为进行控制 |
组织管理(X-PACK) | 实现多租户管理与权限隔离 |
账号管理(Account)
帐号是用来标识身份,管理访问权限等。行云管家堡垒机支持多种双因子认证机制,包含USB Key、手机短信验证码、微信/企业微信/钉钉验证码等第三方应用、手机动态令牌、Radius验证等等,做到防止运维人员身份冒用和复用,控制账号密码泄露风险。
功能 | 说明 |
---|---|
集中账号 | 管理用户管理 |
系统用户管理 | |
统一密码 | 资产密码托管 |
自动生成密码 | |
自动推送密码 | |
密码过期设置 | |
批量改密(X-PACK) | 定期批量改密 |
多种密码策略 | |
多云纳管(X-PACK) | 对私有云、公有云资产自动统一纳管 |
收集用户(X-PACK) | 自定义任务定期收集主机用户 |
密码匣子(X-PACK) | 统一对资产主机的用户密码进行查看、更新、测试操作 |
安全审计(Audit)
在IT运维领域,堡垒机主要是对运维人员操作的真实性、正确性、合规性等进行审查和监督。
功能 | 说明 |
---|---|
操作审计 | 用户操作行为审计 |
会话审计 | 在线会话内容审计 |
历史会话内容审计 | |
录像审计 | 支持对 Linux、Windows 等资产操作的录像进行回放审计 |
支持对 RemoteApp(X-PACK)、MySQL 等应用操作的录像进行回放审计 | |
指令审计 | 支持对资产和应用等操作的命令进行审计 |
文件传输 | 可对文件的上传、下载记录进行审计 |
jumpserver 产品特色
JumpServer 的产品特色包括:
- 开源:零门槛,线上快速获取和安装;
- 分布式:轻松支持大规模并发访问;
- 无插件:仅需浏览器,极致的 Web Terminal 使用体验;
- 多云支持:一套系统,同时管理不同云上面的资产;
- 云端存储:审计录像云端存储,永不丢失;
- 多租户:一套系统,多个子公司和部门同时使用;
- 多应用支持:数据库,Windows 远程应用,Kubernetes。
发展历程
历史版本变化:
更新日志 - JumpServer 文档
2014年6月 : JumpServer开源项目写下第一行代码;
2014年8月:v0.1.0版本发布;
2018年3月:v1.0版本发布;
2018年10月:软件订阅服务发布;
2020年6月:v2.0版本发布;
2020年11月:发布多数据库审计功能;
2022年4月:新增Magnus组件;
2022年6月:新增Razor组件;
2023年2月:v3.0版本发布。
离线部署jumpserver
部署准备 | |
---|---|
一台纯净的Linux | 192.168.126.100 |
安装包 | 3.7.0 |
cd /opt
tar -xf jumpserver-offline-installer-v3.7.0-amd64.tar.gz
cd jumpserver-offline-installer-v3.7.0-amd64
# 根据需要修改配置文件模板, 如果不清楚用途可以跳过修改
cat config-example.txt
# 安装
./jmsctl.sh install
# 启动
./jmsctl.sh start
下载地址:
开源社区 - FIT2CLOUD 飞致云
把安装包上传至/opt目录
解压安装包
安装
如果不需要配置,直接回车保持默认即可,后期也可以在文件中进行修改后重启即可
网页测试
强制重新设置密码
web测试完成
JumpServer v2 版本与 V3 版本得差异
1、V3 版本与之前的 V2.x 版本最大的区别是什么?
以下为 V3 版本的所有重点功能变更:
- 用户体验全新升级:全新UI设计,简约而直白。登录页面重新进行设置,去除 JumpServer 堡垒机登录标题,JumpServer 首页图片重新设计,更契合 JumpServer的产品功能与定位;
- 资产应用统一纳管: 资产与应用合并统称为“资产”。通过对底层表结构的修改以及页面的修改合并资产与应用信息。内置的资产类型包括:主机、网络设备、数据库、云服务、Web 以及其它(预留其它类型)。资产树视图支持两种类型:用户自定义节点的视图、系统内置的资产类型视图;
- 资产账户进行关联: 系统用户重构为账号,放弃原先的系统用户中间层。在添加资产时需要添加一系列的凭证来设置账号权限,一个账号对应一个资产;
- 账户管理全面整合: 新增“账号管理”模块,将所有关于账户的功能全部放置到“账号管理”模块中,包含:账号列表、账户模版、账号推送、账号收集、账号改密、账号备份;
- 系统平台重新设计: 新的平台是资产的抽象和约束。JumpServer V3 的新平台出了可以区分资产类型之外,还可以定制一些功能、例如:是否开启网域、账号切换等功能。另外、通过新的资产平台,用户还可以灵活定义自动化配置,包括:资产探活方式、资产改密方式等;
- 权限管理集中控制: 权限由原本的资产授权与应用授权组成切换成资源授权、资产登录和命令过滤组合,整合所有权限进行统一模块管理;
- 远程应用自动部署: Remote APP 重构,作为一种连接方式存在,主要用于连接资产,而不再是一种应用类型;RemoteApp 的主机池由 JumpServer 进行统一维护,并且定时上报状态;用户提供 Windows 资产并安装基础组件之后,JumpServer 会在应用发布机上代理执行自动化的工作,RemoteApp 主机就可以自动部署、自动维护;密码代填功能使用 Python 框架完成,而不再使用 AutoHotKey,准确性更强;
- 审计日志详细记录: 新增资源的活动日志,按照时间线记录每一个资源的活动信息;
- 作业中心全面改版: 作业中心重构,提高用户对于批量命令的操作效率,新增支持 Playbook。
2、我发现 V3 社区版本删减了之前 V2 社区版本支持的第三方系统对接,比如企业微信、钉钉等是基于什么样的考虑呢? V3 社区用户还可以对接 LDAP 认证嘛?
JumpServer v3 版本我们参考常见的开源产品企业版策略做了部分变更,将企业微信、钉钉等第三方系统对接修改为企业版功能。
为了弥补企业微信、钉钉等第三方系统对接社区版功能转变为企业版功能,我们向社区开放了 Remote APP 功能,支持了在社区版中纳管 Web 资产。同时我们的 2.28 版本会持续进行支持,原版本仍可持续使用。
3、我没有在 V3 版本中找到之前版本的动态用户功能嘛?这个功能被删掉了吗?
在V3版本中,动态用户功能没能实现。因为原本的动态系统用户有自动推送的功能,V3 版本因为资产与账号整个系统重构导致动态用户功能点复杂而未实现。动态用户功能会在后续版本迭代中实现,请持续关注JumpServer项目更新日志。
4、V3 版本什么时候可以应用到生产环境上使用?
关于 V3 升级到生产环境的问题,我们建议的操作步骤如下:
- 备份原环境的数据库信息以及 config.txt 配置文件信息。
- 搭建测试环境并测试升级,升级过程中的信息请根据《JumpServer v3.0 升级指南 kb.fit2cloud.com/?p=06638d69… 》操作升级;
- 测试完成并确认数据没有丢失后即可应用到生产环境上使用。
系统结构介绍
应用架构
- JumpServer 采用分层架构,分别是负载层、接入层、核心层、数据层、存储层。
- JumpServer 应用架构图如下:
组件说明
- Core 组件是 JumpServer 的核心组件,其他组件依赖此组件启动。
- Koko 是服务于类 Unix 资产平台的组件,通过 SSH、Telnet 协议提供字符型连接。
- Lion 是服务于 Windows 资产平台的组件,用于 Web 端访问 Windows 资产。
- Omnidb 是服务于数据库的组件,用于可视化界面纳管数据库。
- Razor 是服务于 RDP 协议组件,该组件主要功能是通过 JumpServer Client 方式访问 Windows 资产。
- Magnus 是服务于数据库的组件,用于通过客户端代理访问数据库。
- Celery 是处理异步任务的组件,用于执行 JumpServer 相关的自动化任务。
jumpserver 目录结构和相关组件说明
configs/:配置文件目录,[包括settings.py](http://xn--settings-fh9mh72k.py/)、config.yml等用于配置JumpServer的参数和选项。
logs/:日志文件目录,存放JumpServer的各个组件的日志信息。
scripts/:脚本目录,用于存放JumpServer相关的脚本文件。
static/:静态文件目录,存放网站所需的静态资源文件,如CSS、JavaScript、图片等。
templates/:模板目录,存放JumpServer网站的HTML模板文件。
assets/:资产管理模块,用于管理服务器、设备等资产信息。
audit/:审计管理模块,记录用户的操作记录、命令执行及会话录制等。
cmdb/:配置管理数据库模块,存储资产的配置项和关联关系。
dashboard/:仪表盘模块,提供可视化统计数据和报表。
users/:用户管理模块,用于管理用户、角色和权限。
bash/:Bash插件模块,提供基于Bash的远程命令执行功能。
cmd/:CMD插件模块,提供基于CMD的远程命令执行功能。
file/:文件管理插件模块,允许上传、下载和编辑远程文件。
sftp/:SFTP插件模块,支持通过SFTP协议进行文件传输。
terminal/:终端插件模块,提供Web终端访问和会话管理功能。
system/:系统管理模块,用于管理JumpServer的配置和系统状态。
utils/:工具模块,包含了一些常用的工具函数和类。
ws/:Websocket模块,提供基于Websocket的实时消息传递功能。
除了以上主要目录,JumpServer还可以集成其他组件和插件,例如LDAP、SSO、审计存储后端等,这些组件和插件的目录结构可能会有所不同。
jumpserver核心结构说明
umpServer 分为多个组件,大致的架构如下图所示,其中 Lina 和 Luna 为纯静态文件,最终由 Nginx 整合。
jumpserver 功能列表
注:带有 X-Pack 标识的功能为 JumpServer 堡垒机企业版功能。
为什么会选择JumpServer?
1. 缺乏录像审计
由于跳板机是没有审计功能的,所以我们交付给开发、测试同事的环境没有操作过程的记录,并且对高危命令、上传/下载的管控存在漏洞,这就导致了一旦出错后需要花费大量的时间来排错。我们在使用过程中遇到过很多次类似的问题,当时还遇到过代码泄露、服务器宕机等事故,这些意外事件的发生触发了公司寻找跳板机替代方案的需要;
2. 运维效率低下
随着企业IT规模的不断扩大,IT资产的体量也迅速膨胀,加上未来基础设施的持续投入和发展,设备数量也会继续增长。因此,如何实现对大规模资产的高效管理成了运维管理的重点工作之一;
3. 安全审计的需要
之前我们在一台资产上保存了大量的用户密码,这就产生了很大的安全隐患,公司对于安全审计的需求逐渐提升。同时,随着IT系统运维对堡垒机依赖程度的不断增加,系统稳定运行的重要性也不断地攀升,这就需要对用户操作所产生的大量审计资料进行有效存储,并随时可以提取回溯。
毫无疑问,堡垒机对于运维人员来说是一个非常关键的工具,大部分企业的运维人员都会首选堡垒机来进行资产的管理和接入。
基于以上痛点问题和实际需求,我们急需找到一款堡垒机去替代跳板机来进行日常的运维安全管理。
作为一个开源爱好者,我偶然间在GitHub上找到了JumpServer开源项目,发现它在功能层面能够满足我们的主要需求,比如录像审计、资产录入、密码代填等功能,并且完全可以覆盖到我们常用的一些使用场景。
以下四点我认为是JumpServer比较具有吸引力的地方:
好用:JumpServer简单易用,没有技术门槛,非常容易上手,对于那些没有技术基础的用户十分友好。同时,这种易用性也让技术人员能够花费更少的时间成本来学习堡垒机的使用技能;
开源:JumpServer提供了一个开放、兼容的平台,用户基数大,让更多像我一样的开源用户相互沟通进步,共同参与到安全管理的生态中来;
安全:JumpServer符合4A规范,能够满足企业运维安全审计的实际要求;
用户体验极佳:用户访问JumpServer的时候能够享受到简洁的使用界面,无需插件,很大程度提升了用户的使用体验。
jumpserver 用户展示
千锤百炼,广泛服务于银行、证券、制造、物流、媒体、互联网等行业,累计安装超过 200,000 次。