|-转 JumpServer 架构浅解
Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能。基于ssh协议来管理,客户端无需安装agent。完全开源,GPL授权
设计思路#
- 设计一个跳转网关,所有登录操作都从网关通过 网关具有模拟终端的功能,透明的中转ssh命令,以支持Tab,Ctrl+A,Ctrl-E等快捷键,网关既可以记录操作日志,又可以审计操作命令。
- 设计一个认证模块 为了实现认证功能,需要有个认证模块,认证信息存到数据库,用户使用跳板机首先需要认证。
- 设计一个授权框架 授权是跳板机不可缺少的部分,授权就是用户和资产的关系,将关系保存的数据库,用户登录主机需要先查授权。
- 设计审计模块 审计是为了追踪,我们支持了在线监控,命令统计,录像回放功能,供管理员审查。
- 用户和主机模块 跳板机脱离不了用户和主机,所以这两个部分是基本的模块,另外我们将主机模块扩展,实现基本CMDB功能。
- Web Terminal 现在都流行Web操作一切,于是我们又实现了Web Terminal,供用户直接在线链接服务器,这里实现是用了Tornado来完成的,Tornado实现WebSocket特别简单。
架构图#
组件说明#
- Jumpserver 为管理后台, 管理员可以通过 Web 页面进行资产管理、用户管理、资产授权等操作, 用户可以通过 Web 页面进行资产登录, 文件管理等操作是核心组件(Core), 使用 Django Class Based View 风格开发,支持 Restful API
- Luna 为 Web Terminal Server 前端页面, 用户使用 Web Terminal 方式登录所需要的组件 ( WebTerminalView )
该组件由团队自己通过Angular 实现,Jumpserver 只提供 API,不再负责后台渲染html等。 - Koko(CoCo) 为 SSH Server 和 Web Terminal Server 。用户可以使用自己的账户通过 SSH 或者 Web Terminal 访问 SSH 协议和 Telnet 协议资产。KoKo(最新版)是go版本的coco,新的Jumpserver ssh/ws server, 重构了 coco 的 SSH/SFTP 服务和 Web Terminal 服务 ( WebSFTPView )
SSH/SFTP/web terminal/web文件管理 ( WebSFTPView ) 实现了 SSH Server 和 Web Terminal Server 的组件,提供 SSH 和 WebSocket 接口, 使用 Paramiko 和 Flask 开发 - Guacamole 为 RDP 协议和 VNC 协议资产组件, 用户可以通过 Web Terminal 来连接 RDP 协议和 VNC 协议资产 (暂时只能通过 Web Terminal 来访问)
Guacamole Apache 跳板机项目,Jumpserver 使用其组件实现 RDP 功能,Jumpserver 并没有修改其代码而是添加了额外的插件,支持 Jumpserver 调用。 - Jumpserver-Python-SDK
Jumpserver Python SDK,(KoKo)Coco 目前使用该 SDK 与 Jumpserver API 交互。
为 Jumpserver ssh terminal 和 web terminal封装了一个sdk, 完成和Jumpserver 交互的一些功能- Service 通用RestApi 接口类
- AppService 增加了app注册等
- UserService 用户使用该类
- jms-storage-sdk
主要作为录像存储的工具类,支持本地或其他cloud存储(e.g. oss)
端口说明#
- Jumpserver 默认端口为 8080/tcp 配置文件 jumpserver/config.yml
- KoKo(Coco) 默认 SSH 端口为 2222/tcp, 默认 Web Terminal 端口为 5000/tcp 配置文件在 KoKo(CoCo)/config.yml
- Guacamole 默认端口为 8081/tcp, 配置文件 /config/tomcat9/conf/server.xml
- Nginx 默认端口为 80/tcp
- Redis 默认端口为 6379/tcp
- Mysql 默认端口为 3306/tcp
技术实现#
使用技术#
- Python 3.6.1
- Django
- Angular (Luna)
- go (koko)
- Celery http://www.celeryproject.org/
- Redis cache 和 celery broke
- Flower - Celery monitoring tool
- Guacamole (webterminal -RDP)
- websoket 框架 (https://github.com/kataras/neffos)
服务启动#
./jms start 命令将会下面服务...
浏览更多内容请先登录。
立即注册
分享的网址网站均收集自搜索引擎以及互联网,非查问网运营,查问网并没有提供其服务,请勿利用其做侵权以及违规行为。
更新于:2022-05-25 21:50:55
相关内容
Opencart 免费主题下载汇总
Opencart 可用的免费主题
python代码整理(2022年4月-2024年3月)
Python和PHP获取百度url跳转的真实地址代码(2022年4月实测有效)
Pip/python-如何查看已安装的包有哪些版本?如何查看某个包存在哪些版本?pip...
用undetected_chromedriver代替selenium解决浏览器打不开网页
sublime text下 Python 问题:TabError: inconsistent use of tabs and s...
视频精选一
IT理论
OSI模型-百度百科
OSI模型-智库百科
OSI model-维基百科
SOCKS-维基百科
socks-百度百科
这里整理一些网上找到的IT项目
All in Web | 远程桌面网关-Apache Guacamole
gitlab 的简介
【教程】使用腾讯云轻量应用服务器搭建 Guacamole 远程桌面代理服务器,让境...
apache 开源项目全家桶 2020年12月中文介绍
JumpServer 架构浅解
手把手从0开始教你搭建Jumpserver,为服务器安全保驾护航!
一步步安装Jumpserver堡垒机图文详解(官方教程版),从此爽歪歪!
[Awesome Github] -2020_07_25
Windows系统Git安装教程(详解Git安装过程)
Aria2:windows上的详细使用方法
开源论坛:社区选择Discourse(在github上论坛排名第一 ,35.8K个星星)
推荐内容