介绍

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创建一个 资产授权。后期这个用户也好管理

数据库权限设计

问题反思

  • 如果都是人工操作的话,不免麻烦,服务器还好。但是数据库就比较麻烦,因为涉及到给数据库账号授权。那么你就得登陆数据库,然后授权。
  • 那么能不能直接弄一个自动化的形式,不需要人工干预。
  • 我在网上搜了,jumpserver确实有工单系统。但是这个是企业版的,我就是一个小打小闹的,企业版的要1年小几万。那肯定是不可能的,除非你们公司是大公司,对于jumpserver工单系统比较依赖
  • 而且很多公司 都是自己的工单系统
  • 最后我就准备自己写一个工单管理系统

展示

开源代码介绍

  1. 是在jumpserver(v3.10.9)上面二次开发出了一个简单的工单申请
  2. 用户可以申请服务器和mysql库的权限
  3. mysql 权限可以细分到库表
  4. 自动创建授权,不用人为干预

软件架构

jumpserver core代码
jumpserver lina代码

  1. 我这个是基于jumpserver v3.10.9 开发的。
  2. 大家可以试试别的版本,基本上只涉及到几个接口
  3. 只要这几个接口不变,我这个简单版的工单申请 就可以运行的
  4. 只需要在你的版本代码上面 新增几个接口就行
  5. 然后前端新增页面就行

代码接口介绍

# 我新增的接口主要有以下几个

# 都是在这个文件里面
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),

安装教程

安装的话 就按照官网的安装就行
大概步骤的话:
  1. 从官网下载代码,修改代码(下载我的代码)
  2. 先编译core代码,docker build -f Dockerfile-ce -t jumpserver/mycore-ce-v3-2:v3.10.9 .    最终会编译出一个镜像
  3. 编译lina前端代码,yarn build。 最终会编译出一个lina目录
部署core:
# 进入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:
# 因为前端打包出来的是一个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
这样就部署好了

修改配置

  1. 下载我的代码
  2. 修改连接数据库的账号密码,你得有数据库账号,并且权限是。或者你用root账号也行
  3. 你在全局文件里搜 db_user 的行,然后把用户名密码 改成你有权限的用户
  4. 然后需要修改调用你本身jumpserver接口的 token。因为我没有完全去读和jumpserver的 代码,所以我这就是取巧。直接在代码里面调用接口全局文件搜索 admin_token 的行。然后把token替换成的你token。
  5. 具体怎么获取token,查看jumpserver官方文档,要选择private_token的方式。jumpserver官方文档创建token
  6. 然后再按照我上面的安装步骤 就可以了

开源地址

jumpserver-Ticket

https://gitee.com/ccsang/jumpserver-ticket

结语

如果有大佬感兴趣的,咱们可以一起交流。
或者有什么问题的,请留言。
就是平时写的一个小功能,愿对大家有用。
一起进步,一起成长!

jumpserver 工单系统 二次开发工单管理并开源代码的更多相关文章

  1. Epicor系统二次开发

    Epicor系统二次开发 一.获取或修改界面EpiDataView的字段数据(Get EpiDataView data) C# EpiDataView edv = (EpiDataView)oTran ...

  2. (dede)织梦系统二次开发笔记

    (dede)织梦系统二次开发记录 --soulsjie 一.模板常用文件说明 模板文件都在文件夹templets下,我们以默认模板(default)为例,对模板文件结构进行分析: 首页模板文件目录 \ ...

  3. EasyNVR网页H5无插件播放摄像机视频功能二次开发之直播通道接口保活示例代码

    背景需求 随着雪亮工程.明厨亮灶.手机看店.智慧幼儿园监控等行业开始将传统的安防摄像头进行互联网.微信直播,我们知道摄像头直播的春天了.将安防摄像头或NVR上的视频流转成互联网直播常用的RTMP.HT ...

  4. 2017.2.28 activiti实战--第六章--任务表单(二)外置表单

    学习资料:<Activiti实战> 第六章 任务表单(二)外置表单 6.3 外置表单 考虑到动态表单的缺点(见上节),外置表单使用的更多. 外置表单的特点: 页面的原样显示 字段值的自动填 ...

  5. 最新升级优化 shopee|美客多 Mercadolibre|shopfiy|lazada|独立货代贴单系统 可规模化的贴单打单系统 源码下载独立部署

    七想网络 跨境猴 最新优化改进版本的 虾皮代打包-虾皮代贴单 独立部署源码版本货代贴单系统 介绍: 台湾海外仓_shopee货代_虾皮物流–虾皮代贴单 虾皮代打包-虾皮代贴单-虾皮货代平台 shope ...

  6. Ecshop系统二次开发教程及流程演示

      来源:互联网 作者:佚名 时间:03-01 16:05:31 [大 中 小] Ecshop想必大家不会觉得陌生吧,大部分的B2C独立网店系统都用的是Ecshop系统,很受用户的喜爱,但是由于Ecs ...

  7. IBOS云办公系统二次开发之功能介绍(PHP技术)

    IBOS自动化办公系统是我见到的功能.架构最好的开源自动化办公系统,功能与企业需求吻合度之高.架构之灵活,让我不得不将之介绍给大家,让跟多需要学习PHP开发的朋友来了解她,拥抱她! 如果您还没有很好的 ...

  8. EasyNVR网页Chrome无插件播放摄像机视频功能二次开发之云台控制接口示例代码

    随着多媒体技术和网络通信技术的迅速发展,视频监控技术在电力系统.电信行业.工业监控.工地.城市交通.水利系统.社区安防等领域得到越来越广泛的应用.摄像头直播视频监控通过网络直接连接,可达到的世界任何角 ...

  9. python-Django监控系统二次开发Nagios

    1.Nagios安装 yum install -y nagios.i686 yum install -y nagios-plugins-all.i686 安装完后会在apache的配置文件目录下/et ...

  10. NX二次开发-UFUN单按钮模态对话框窗口打印uc1601用法

    NX9+VS2012 #include <uf.h> #include <uf_ui.h> UF_initialize(); //方法1(uc1601) uc1601();// ...

随机推荐

  1. DOM – Work with Document.styleSheets and JS/Scss Breakpoint Media Query

    前言 为了方便管理, 我们会定义 CSS Variables, 类似于全局变量. 有时候做特效的时候还需要 JavaScript 配合, 这时就会希望 JavaScript 可以获取到 CSC Var ...

  2. JavaScript – CommonJS

    前言 既然写了 JavaScript – ES Module, 也就顺便些 CommonJS 呗, 建议先看 ES Module 那篇. 参考 Youtube – Require vs Import ...

  3. HTML – Native Dialog Modal

    前言 之前介绍 Native Form 的时候有提及过 method="dialog", 但由于它太新了, 所以没去研究. 这篇就介绍一下. Dialog 也好 Modal 也好, ...

  4. HTML & CSS – Styling Table

    前言 Table (表格) 历史悠久, 它有许多独特的默认样式, 它也是最早的布局方案方案哦 (现在依然有用 table 来做布局的, 比如 email template). 这篇来介绍一下基本的 t ...

  5. MyBatisPlus——简介

    概述 MyBatisPlus(简称MP)是基于MyBatisPlus框架基础上开发的增强型工具,旨在简化开发.提高效率 国内开发的技术 特性 无侵入:只做增强不做改变,不会对现有工程产生影响 强大的C ...

  6. 为了更好的 Flutter | 2021 第二季度开发者调研

    自 Flutter 2 发布以后,诸多振奋人心的开发特性 也随之解锁,从 加速应用开发 到 流畅地开发多平台应用 都已经有了长足的进步.我们也从社区收集到了不少大家关心的问题,并进行了 解答.毫无疑问 ...

  7. Maven 使用方法

    Maven Maven是一个项目管理工具,它包含了一个项目对象模型(POM:Project Object Model),其表现于一个XML文件(pom.xml),其中包含了项目的基本学习,依赖关系,插 ...

  8. IntelliJ IDEA插入时间文本

    IntelliJ IDEA插入时间文本 需求: 在使用IDEA编辑一些文本时,需要插入指定格式的当前时间文本,首先想到的是找找有没有相关的IDEA插件,看到确实有别的猿做过相关的插件,但当时找到的文章 ...

  9. Math 数学库

    Math.random()  随机数字 Math.PI  圆周率

  10. 封神台 SQL注入 靶场 (猫舍)手动注入

    封神台 SQL注入 靶场 (猫舍)手动注入 靶场地址 http://pu2lh35s.ia.aqlab.cn/?id=1 使用脚本 可以直接使用sqlmap脚本 直接 对这个地址进行测试 不过这样实在 ...