本文根据高效运维专家群友文章整理并发布。欢迎关注“高效运维”公众号,以抢先赏阅诚意满满的各种原创文章。
编辑
-
黄兴(文章整理)
嘉宾介绍
广宏伟
Jumpserver项目发起者,资深运维工程师,毕业于著名的新东方烹饪学校,精通八大菜系.
一、为什么开始
犹记得当初刚到新的公司,公司里面没有批量管理工具,新来程序猿同事,需要手动为它们在服务器一个个添加账号。
过了一段时间,经理说服务器上的部署的应用没了,查了半天history没发现谁删的。痛定思痛后决定购买堡垒机产品,经理咨询报价后,说:老广,听说你在学习Python,要不你来写一个吧,后来就有了Jumpserver。
至于为什么叫 Jumpserver,我的英语水平告诉我“跳”是’jump’, “机”是’server’, 于是取名叫 Jumpserver。
二、功能介绍
Jumpserver 是一款由Python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能。基于ssh协议来管理,客户端无需安装agent。
支持常见系统:
Redhat CentOS
Debian
SUSE Ubuntu
FreeBSD
其他ssh协议硬件设备
功能:
-
精确记录操作命令
-
支持批量文件上传下载
-
支持主机搜索登录
-
支持批量命令执行(Ansible完成)
-
支持Web Terminal连接主机
-
支持Web端批量命令执行
-
支持录像回放
-
支持硬件信息如cpu,内存等抓取
-
支持资产Excel导入导出
-
支持资产批量更改
-
支持系统用户的批量推送(Ansible实现)
-
支持用户,主机,用户组,主机组,系统用户混合细颗粒授权
-
支持sudo管理
-
支持命令统计和命令搜索
-
支持上传下载文件审计
-
支持终止用户连接
-
支持各种搜索
-
其他
三、设计思路:
-
设计一个跳转网关,所有登录操作都从网关通过
网关具有模拟终端的功能,透明的中转ssh命令,以支持Tab,Ctrl+A,Ctrl-E等快捷键,网关既可以记录操作日志,又可以审计操作命令。 -
设计一个认证模块
为了实现认证功能,需要有个认证模块,认证信息存到数据库,用户使用跳板机首先需要认证。 -
设计一个授权框架
授权是跳板机不可缺少的部分,授权就是用户和资产的关系,将关系保存的数据库,用户登录主机需要先查授权。 -
设计审计模块
审计是为了追踪,我们支持了在线监控,命令统计,录像回放功能,供管理员审查。 -
用户和主机模块
跳板机脱离不了用户和主机,所以这两个部分是基本的模块,另外我们将主机模块扩展,实现基本CMDB功能。 -
Web Terminal
现在都流行Web操作一切,于是我们又实现了Web Terminal,供用户直接在线链接服务器,这里实现是用了Tornado来完成的,Tornado实现WebSocket特别简单。 -
其它
四、功能截图
-
登陆页面
-
首页
-
录像回放
-
批量命令
-
web terminal
五、愿景
我们身为运维er中的一员,运维工作让我们有了饭,有了衣,有了自己的家庭。我们应当为此做些微不足道的贡献,哪怕就那么一点点。
我们希望各位在开发运维工作的朋友们也加入到开源的队列中,分享自己的代码。
我们对项目的一直保持不变的热情,我们未来会在稳定性、实用性、文艺性方面做出努力,我们也非常欢迎志同道合的朋友加入。
六、其它
Git地址:
https://github.com/ibuler/jumpserver
快速开始:
https://github.com/ibuler/jumpserver/wiki/Quickinstall
Wiki:
https://github.com/ibuler/jumpserver/wiki
Demo:
http://demo.jumpserver.org
交流群:
399218702