一、jumpserver的基本介绍
规避运维风险
1:跳板机
跳板机是一种用于单点登陆的主机应用系统。跳板机通常是由一台服务器能过特定的软件实现,维护人员在维护过程中,首先要统一登录到这台服务器上,然后从这台服务器再登录到目标设备进行维护。但跳板机没有实现对运维人员操作行为的控制和审计,此外,跳板机存在严重的安全风险,一旦跳板机系统被攻入,则将后端资源风险完全暴露无遗。对于一些服务(如:telnet)可以通过跳板机来完成一定的控制访问,但是对于更多的服务(SSH、RDP等)来讲,就显得力不从心了。
跳板机缺点:
①跳板机功能比较差,只能提供一个最基本的连接
②跳板机有控制功能,但是没有审计功能,规范性比较差;有安全风险
③只支持远程连接,不支持远程桌面、数据库RDP、也不支持K8S等
【注】:一旦加入到跳板机或者堡垒机,后面被控制的服务器、应用、数据节点、K8S等都被称为资产。
2:堡垒机
由于跳板机的不足,更多的组织需要更先进、更好的安全技术,来实现运维操作管理和安全。堡垒机开始以独立的产品形态被广泛部署,有效降低了运维操作风险,使得运维操作管理变得更简单、更安全。堡垒机能满足角色管理与授权审批、信息资源访问控制、操作记录和审计、系统变更和维护控制要求,并生成一些统计报表配合管理规范,从而不断提升IT内控的合规性。
3.jumpserver用到的场景
场景一:jumpserver一张网卡,只有私有地址;直接用jumpserver去管理后台资产,客户直接对接jumpserver
场景二:jumpserver两张网卡,公有、私有地址;直接用jumpserver去管理后台资产,客户直接对接jumpserver
场景三:jumpserver两张网卡,公有、私有地址;在客户端和jumpserver之间设置一个VPN隧道,设置vpn只能访问jumpserver,大大增加了安全机制
4.jumpServer 简介
①:基本介绍
JumpServer 是全球首款完全开源的堡垒机, 使用 GNU GPL v2.0 开源协议, 是符合 4A 的专业运维审计系统。为互联网企业提供了认证,授权,审计,自动化运维等功能。
JumpServer 使用 Python / Django 进行开发, 遵循 Web 2.0 规范, 配备了业界领先的 Web Terminal 解决方案, 交互界面美观、用户体验好。
JumpServer 采纳分布式架构, 支持多机房跨区域部署, 中心节点提供 API, 各机房部署登录节点, 可横向扩展、无并发访问限制。
JumpServer 现已支持管理 SSH、 Telnet、 RDP、 VNC 协议资产。
官方地址: JumpServer - 开源堡垒机 - 官网
②:特色优势
开源: 零门槛,线上快速获取和安装
分布式: 轻松支持大规模并发访问;
无插件: 仅需浏览器,极致的 Web Terminal 使用体验
多云支持: 一套系统,同时管理不同云上面的资产
云端存储: 审计录像云端存储,永不丢失
多租户: 一套系统,多个子公司和部门同时使用
③:功能列表
堡垒机四个核心能力: 运维安全审计的4A规范
④JumpServer 组成(微观)(宏观jumpserver mysql redis三合一)
Lina:node.js
前端 UI 项目,实现web页面展示,主要使用 Vue,Element UI 完成
Core:python
现指 Jumpserver 管理后台,是核心组件(Core), 使用 Django Class Based View 风格开发,支持 Restful API。
Coco/Koko
实现了 SSH Server 和 Web Terminal Server 的组件,提供 SSH 和 WebSocket 接口, 使用Paramiko 和 Flask 开发。Koko 是 Go 版本的 coco,重构了 coco 的 SSH/SFTP 服务和 Web Terminal 服务。
Luna
现在是 Web Terminal 前端,计划前端页面都由该项目提供,Jumpserver 只提供 API,不再负责后台渲染html等。主要使用Angular CLI 完成
Lion
Lion 使用了 Apache 软件基金会的开源项目 Guacamole,JumpServer 使用 Golang 和 Vue 重构了 Guacamole 实现 RDP/VNC 协议跳板机功能。
二、安装 和管理JumpServer
1.安装jumpserver
①:直接脚本安装
官网下载脚本直接安装(推荐,但时间会长一些)
虚拟机输入命令直接安装:
curl -sSL https://resource.fit2cloud.com/jumpserver/jumpserver/releases/lat est/download/quick_start.sh | bash
②:jumpserver的连接
1:命令连接 ssh -p2222 admin@192.168.10.100
2:登录jumpserver GUI
打开 web 管理界⾯(访问虚拟机 IP)
【注】:⾸次登录需要修改密码
③:jumpserver的邮件设置
['smtp_password'] = 'xbhrnjkceztobicd' //把授权码复制到文档中
测试邮件
④:jumpserver的用户(登录jumpserver的用户)和用户组设置
然后使用刚创建的用户进行登录
⑤:jumpserver创建审计员
创建不同的组
用户组创建情况
查看用户分组情况
登录审计用户:
⑥:jumpserver管理资产(资产是账号)
JumpServer中的三种用户
登录用户:
分配给用户用于登录JumpServer时使用
管理用户:
对后端服务器具有管理权限的系统帐号 root或administrator 及sudo ALL权限的用户,用于管理后端服务器。新版中已取消此名称,改名为系统用户中特权用户
系统用户:
给登录用户使用ssh连接后端服务器时对应的系统用户 ,一般是后端服务器的普通的系统用户帐号,新版中改名为系统用户中普通用户
⑦:创建资产:
添加资产中的账号列表(注意:最新版已经改版为系统账号中的特权账号或普通账号,并且已经植入资产中创建)
创建可以被jumpServer用户访问的后端服务器和其它资产,比如:路由器,交换机等
创建平台
创建第一个资产:
ssh验证选择私钥:
⑧:资产平台:默认情况下Jump server管理的资产基于后台的操作系统,基于不同的网络连接协议,可以在资产平台进行同一化设置和管理(注意:默认平台有些协议和功能无法更改,可以自定义资产平台进行更改)
⑨:关联使用系统用户的资产
Windows支持远程连接:
①右击此电脑--->属性-->打开远程桌面
②启用共享
创建第二个资产列表:测试Windows
【注】:要把Windows的防火墙关掉,显示错误,但是远程连接可以连接上
创建第三个数据库资产,分组为北京开发
首先开一台虚拟机模拟mysql
添加账号时,首先要在mysql里面创建用户并对其授权
添加第四个主机资产,分组为上海测试
同样首先需要开一台虚拟机模拟ubuntu
添加账号
查看账号,里面有系统账号里面的特权账号,普通账号
进行权限管理:
给第二个资产授权:
web终端进行连接:
⑩:测试可连接性(重要)
2.资产的批量导出和导入
当需要管理的后端服务器很多时,每台主机手动导入效率很低,可以利用资产的导出导入功能实现批量导入,提高效率
3.资产连接
Linux资产连接、文件传输
windows资产RDP连接
数据库资产连接
4.权限控制
资产授权
用户登录
用户登录:
命令过滤控制(优先级数字越小越好)
5.jumpserver审计功能
6.创建网域
实际生产环境中混合云使用很常见,但是jumpserver无法直接管理公有云服务器
可以通过JumpServer的网域功能实现混合云服务器的统一管理
网域的管理流程:
购买几台云主机,且有一台云主机必须具备公网IP, 此主机充当网关服务器
让网关服务器与所有的云主机(包括网关服务器)免密(可选)
jumpserver要与网关服务器免密(可选)
创建网域名称
创建网关,指定网关服务器的公网IP,认证指定root和jumpserver的root的私钥文件(或者网关服务器的root密码)
添加一个特权用户(阿里云root),root,网关服务器root用户私钥(或者root密码)
添加资产(所有云主机,包括网关服务器),输入云主机的IP,并选择从上面创建网域进行跳转,认证选上面创建的特权用户
授权给用户组管理上面创建的资产
测试完成,不要忘记释放云主机和公网IP资源
实验:
原理:客户访问jumpServer,jumpServer可以连接公网,公网服务器内部有许多资产。间接实现私网访问私网。(公网服务器都需要开启核心路由转发功能,实现jumpServer可以ping通公网,而这步操作为:在jumpServer里面加入网域,把公网ip地址加入)
思路:首先jumpServer把公网服务器当做一个网域,而网域可以直接和其内部服务器通信;其次我们需要再jumpServer里把通信的内部服务器写到其资产列表里;最后把资产列表和网域关联在一起