JumpServer连接方式限制

背景

公司期望通过堡垒机纳管MySQL资产,并让开发通过堡垒机登录生产数据库执行SQL查看相关数据,但是需要限制其不能复制和导出生产数据。

堡垒机现状

我司目前使用堡垒机版本为V3.10.7企业版,当前对于数据库有以下几种方式进行连接:

  • Web CLI:浏览器直接连接,用户可以随意复制,且Linux资产也使用该方式进行连接,所以无法通过企业版<资产管理->连接方式>功能进行限制
  • Web GUI:同上,Windows资产使用该连接方式
  • 数据库客户端和DB连接向导:数据库专用连接方式,通过代理的形式在用户本地打开对应的应用程序进行连接,这种方式更加的不可控,可以通过连接方式功能进行限制(这两种连接方式应该也是企业版才有)
  • 远程应用:以Windows为载体,堡垒机通过临时用户登录Windows并打开相应的应用程序。可以控制用户的复制粘贴,上传下载等。

综上所述,只有远程应用能符合我们的场景。

堡垒机连接方式限制

经过一系列的研究和测试,我们最终修改了“Luna”的部分代码达到了相应的目的,具体修改如下:
代码相关信息:Luna:src/app/services/http.ts


在我们测试过程中,发现每次在浏览器上连接资产都会发送一个“connection-token”的请求,经过测试该请求里面的"connectData"对象有每个连接的类型以及连接方式还有其他等多的信息等,所以我们就此下手,最终我们通过Web CLI和Web GUI连接MySQL效果如下:
image

关于打包:如何打包Github上面都有,docker方式在v3版本我们只需要将打包后的代码替换jms_web容器工作目录下面的luna目录即可,由于是静态资源,是动态生效的。

总结

首先我们的方式可能确实有点抽象,但是没办法,找了售后进行友好交流,没有结论,出此下策。但我相信,应该不限于我司有该需求,所以期望堡垒机能够提供资产类型级别的连接方式管理,当你真正有需求的时候,当前基于连接方式的管理确实不太灵活。

1 个赞

目前,连接方式无法以协议进行限制,感谢反馈,提到issue比较有效

目前v3暂时此类优化,可以提issue,v4版本可能会新增