jumpserver 工单系统 二次开发工单管理并开源代码
介绍
JumpServer 是广受欢迎的开源堡垒机,是符合 4A 规范的专业运维安全审计系统。JumpServer 帮助企业以更安全的方式管控和登录所有类型的资产,实现事前授权、事中监察、事后审计,满足等保合规要求。
产品特色
- 开源:零门槛,线上快速获取和安装;
- 分布式:轻松支持大规模并发访问;
- 无插件:仅需浏览器,极致的 Web Terminal 使用体验;
- 多云支持:一套系统,同时管理不同云上面的资产;
- 云端存储:审计录像云端存储,永不丢失;
- 多租户:一套系统,多个子公司和部门同时使用;
- 多应用支持:数据库,Windows 远程应用,Kubernetes。
背景
- 我们公司的windows资产,以前都是让大家连接8年前的一个商用的跳板机奇治。老旧,数据混乱
- 并且存在一个1.4.10的jumpserver。然后权限也非常的混乱。
- 大家连接数据库查询数据,都是用一台共用的一台windows,然后从这台windows用数据库客户端链接。并且每一个人还拥有很多的数据库账号。数据库侧 那边开通了各种账号。
- 反正就是特别的混乱
- 并且没有任何的审计,然后上次出现了一个事故,线上的数据被删除清空了。最后是从备份恢复了数据。但是也缺少了点数据。幸好数据不是特别的重要
- 之后领导就想整理这一块的东西
计划
- 重新搭建新版jumpserver,替换老的jumpserver,以及商用的奇治跳板机
- 以后windows linux资产都要通过新版的jumpserver登陆
- 数据库需要从jumpserver登陆,权限细分到单库上面
设计
- 无非就是在新版的jumpserver给用户新建各种服务器以及数据库的权限
- 并且数据库,需要去数据库里面新建各种人的账号,但是这样的话跟之前一样了。不方便管理
- 所谓有了规矩,规则的话。那么整个事情就变的 好维护,以及好管理了
服务器权限设计
- 服务器权限的话 就分两种,app和root。
- 一个普通用户的一个超级用户的
- 每一个用户从jumpserver创建一个 资产授权。后期这个用户也好管理
数据库权限设计
- 我设计的是给数据库那边新建一个根据用户名的账号,后面我们用这个账号给授权不同的权限。
- 然后我们给每一个人创建一个 资产授权。方便后期管理。
- 那么就会表现成 数据库有一个jump_db_fanlichun_r的数据库账号
- 然后给这个jump_db_fanlichun_r用户授权,比如查询,修改,等等
- 最后我们给这个用户创建一个 资产授权。名称也是jump_db_fanlichun_r。
问题反思
- 如果都是人工操作的话,不免麻烦,服务器还好。但是数据库就比较麻烦,因为涉及到给数据库账号授权。那么你就得登陆数据库,然后授权。
- 那么能不能直接弄一个自动化的形式,不需要人工干预。
- 我在网上搜了,jumpserver确实有工单系统。但是这个是企业版的,我就是一个小打小闹的,企业版的要1年小几万。那肯定是不可能的,除非你们公司是大公司,对于jumpserver工单系统比较依赖
- 而且很多公司 都是自己的工单系统
- 最后我就准备自己写一个工单管理系统
展示
开源代码介绍
- 是在jumpserver(v3.10.9)上面二次开发出了一个简单的工单申请
- 用户可以申请服务器和mysql库的权限
- mysql 权限可以细分到库表
- 自动创建授权,不用人为干预
软件架构
- 我这个是基于jumpserver v3.10.9 开发的。
- 大家可以试试别的版本,基本上只涉及到几个接口
- 只要这几个接口不变,我这个简单版的工单申请 就可以运行的
- 只需要在你的版本代码上面 新增几个接口就行
- 然后前端新增页面就行
代码接口介绍
# 我新增的接口主要有以下几个 # 都是在这个文件里面
jumpserver-ticket/jumpserver-v3.10.9/apps/perms/urls/user_permission.py # 具体接口 # 自己新增的 工单申请
# 这个接口是获取全部的资产的
path('mytickets/getassets/', api.mytickets.get_all_node), # 这个是创建申请服务器的工单接口
path('mytickets/apply/', api.perm_apply.perm_application), # 这个是创建申请mysql数据库权限的接口
path('mytickets/applydb/', api.perm_apply.perm_application_db), # 这个是查看自己的工单申请接口
path('mytickets/myapplication/', api.mytickets.my_application), # 这个是管理员查看并审批 用户申请的接口
path('mytickets/myapproval/', api.mytickets.my_myapproval), # 对接工单系统 # 这两个接口是因为 我们本身就有工单系统平台。
# 然后我给我们的开发专门写的两个接口 # 这个是创建服务器权限的接口
path('mytickets/createauthnodes/', api.mytickets.create_auth_nodes),
# 这个是创建mysql数据库权限的接口
path('mytickets/createauthmysql/', api.mytickets.create_auth_mysqls),
安装教程
- 从官网下载代码,修改代码(下载我的代码)
- 先编译core代码,docker build -f Dockerfile-ce -t jumpserver/mycore-ce-v3-2:v3.10.9 . 最终会编译出一个镜像
- 编译lina前端代码,yarn build。 最终会编译出一个lina目录
# 进入docker compose文件夹
cd /opt/jumpserver-installer-v3.10.8/compose # 批量替换core镜像
sed -i "s/mycore-ce-v3-1/mycore-ce-v3-2/g" *
cd .. # 停止服务
./jmsctl.sh stop # 启动服务
./jmsctl.sh start
# 因为前端打包出来的是一个lina文件夹
# 所以你可以再写一个dockerfile,以原始的lina镜像为基础,把这个文件给编译进去 # 我采用了一种比较最简单的方式 直接把文件复制进去,然后重启nginx
# 但是缺点就是容器重启了 那么你修改的lina代码就没有了,得再复制一遍
# 方式有很多种,看你采用哪种都行 docker cp lina 7309df137aff:/tmp/lina
docker exec -it 7309df137aff bash
rm -rf lina
mv /tmp/lina . nginx -t
nginx -s reload
修改配置
- 下载我的代码
- 修改连接数据库的账号密码,你得有数据库账号,并且权限是。或者你用root账号也行
- 你在全局文件里搜 db_user 的行,然后把用户名密码 改成你有权限的用户
- 然后需要修改调用你本身jumpserver接口的 token。因为我没有完全去读和jumpserver的 代码,所以我这就是取巧。直接在代码里面调用接口全局文件搜索 admin_token 的行。然后把token替换成的你token。
- 具体怎么获取token,查看jumpserver官方文档,要选择private_token的方式。jumpserver官方文档创建token
- 然后再按照我上面的安装步骤 就可以了
开源地址
https://gitee.com/ccsang/jumpserver-ticket
结语
jumpserver 工单系统 二次开发工单管理并开源代码的更多相关文章
- Epicor系统二次开发
Epicor系统二次开发 一.获取或修改界面EpiDataView的字段数据(Get EpiDataView data) C# EpiDataView edv = (EpiDataView)oTran ...
- (dede)织梦系统二次开发笔记
(dede)织梦系统二次开发记录 --soulsjie 一.模板常用文件说明 模板文件都在文件夹templets下,我们以默认模板(default)为例,对模板文件结构进行分析: 首页模板文件目录 \ ...
- EasyNVR网页H5无插件播放摄像机视频功能二次开发之直播通道接口保活示例代码
背景需求 随着雪亮工程.明厨亮灶.手机看店.智慧幼儿园监控等行业开始将传统的安防摄像头进行互联网.微信直播,我们知道摄像头直播的春天了.将安防摄像头或NVR上的视频流转成互联网直播常用的RTMP.HT ...
- 2017.2.28 activiti实战--第六章--任务表单(二)外置表单
学习资料:<Activiti实战> 第六章 任务表单(二)外置表单 6.3 外置表单 考虑到动态表单的缺点(见上节),外置表单使用的更多. 外置表单的特点: 页面的原样显示 字段值的自动填 ...
- 最新升级优化 shopee|美客多 Mercadolibre|shopfiy|lazada|独立货代贴单系统 可规模化的贴单打单系统 源码下载独立部署
七想网络 跨境猴 最新优化改进版本的 虾皮代打包-虾皮代贴单 独立部署源码版本货代贴单系统 介绍: 台湾海外仓_shopee货代_虾皮物流–虾皮代贴单 虾皮代打包-虾皮代贴单-虾皮货代平台 shope ...
- Ecshop系统二次开发教程及流程演示
来源:互联网 作者:佚名 时间:03-01 16:05:31 [大 中 小] Ecshop想必大家不会觉得陌生吧,大部分的B2C独立网店系统都用的是Ecshop系统,很受用户的喜爱,但是由于Ecs ...
- IBOS云办公系统二次开发之功能介绍(PHP技术)
IBOS自动化办公系统是我见到的功能.架构最好的开源自动化办公系统,功能与企业需求吻合度之高.架构之灵活,让我不得不将之介绍给大家,让跟多需要学习PHP开发的朋友来了解她,拥抱她! 如果您还没有很好的 ...
- EasyNVR网页Chrome无插件播放摄像机视频功能二次开发之云台控制接口示例代码
随着多媒体技术和网络通信技术的迅速发展,视频监控技术在电力系统.电信行业.工业监控.工地.城市交通.水利系统.社区安防等领域得到越来越广泛的应用.摄像头直播视频监控通过网络直接连接,可达到的世界任何角 ...
- python-Django监控系统二次开发Nagios
1.Nagios安装 yum install -y nagios.i686 yum install -y nagios-plugins-all.i686 安装完后会在apache的配置文件目录下/et ...
- NX二次开发-UFUN单按钮模态对话框窗口打印uc1601用法
NX9+VS2012 #include <uf.h> #include <uf_ui.h> UF_initialize(); //方法1(uc1601) uc1601();// ...
随机推荐
- DOM – Work with Document.styleSheets and JS/Scss Breakpoint Media Query
前言 为了方便管理, 我们会定义 CSS Variables, 类似于全局变量. 有时候做特效的时候还需要 JavaScript 配合, 这时就会希望 JavaScript 可以获取到 CSC Var ...
- JavaScript – CommonJS
前言 既然写了 JavaScript – ES Module, 也就顺便些 CommonJS 呗, 建议先看 ES Module 那篇. 参考 Youtube – Require vs Import ...
- HTML – Native Dialog Modal
前言 之前介绍 Native Form 的时候有提及过 method="dialog", 但由于它太新了, 所以没去研究. 这篇就介绍一下. Dialog 也好 Modal 也好, ...
- HTML & CSS – Styling Table
前言 Table (表格) 历史悠久, 它有许多独特的默认样式, 它也是最早的布局方案方案哦 (现在依然有用 table 来做布局的, 比如 email template). 这篇来介绍一下基本的 t ...
- MyBatisPlus——简介
概述 MyBatisPlus(简称MP)是基于MyBatisPlus框架基础上开发的增强型工具,旨在简化开发.提高效率 国内开发的技术 特性 无侵入:只做增强不做改变,不会对现有工程产生影响 强大的C ...
- 为了更好的 Flutter | 2021 第二季度开发者调研
自 Flutter 2 发布以后,诸多振奋人心的开发特性 也随之解锁,从 加速应用开发 到 流畅地开发多平台应用 都已经有了长足的进步.我们也从社区收集到了不少大家关心的问题,并进行了 解答.毫无疑问 ...
- Maven 使用方法
Maven Maven是一个项目管理工具,它包含了一个项目对象模型(POM:Project Object Model),其表现于一个XML文件(pom.xml),其中包含了项目的基本学习,依赖关系,插 ...
- IntelliJ IDEA插入时间文本
IntelliJ IDEA插入时间文本 需求: 在使用IDEA编辑一些文本时,需要插入指定格式的当前时间文本,首先想到的是找找有没有相关的IDEA插件,看到确实有别的猿做过相关的插件,但当时找到的文章 ...
- Math 数学库
Math.random() 随机数字 Math.PI 圆周率
- 封神台 SQL注入 靶场 (猫舍)手动注入
封神台 SQL注入 靶场 (猫舍)手动注入 靶场地址 http://pu2lh35s.ia.aqlab.cn/?id=1 使用脚本 可以直接使用sqlmap脚本 直接 对这个地址进行测试 不过这样实在 ...