jumpserver-堡垒机

一、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里把通信的内部服务器写到其资产列表里;最后把资产列表和网域关联在一起

  • 13
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要连接JumpServer开源堡垒机,你需要使用Java SSH库来实现SSH连接。在Java中,有很多SSH库可供选择,例如JSch和SSHJ。 以下是使用SSHJ库连接JumpServer开源堡垒机的步骤: 1. 导入SSHJ库 你需要将SSHJ库添加到你的Java项目中。你可以从Maven Central Repository下载库的jar文件,或者使用Maven或Gradle等构建工具引入该库。 2. 创建SSH客户端 使用SSHJ库创建一个SSH客户端对象。这个对象将用于建立与远程服务器的SSH连接。 ```java SSHClient ssh = new SSHClient(); ssh.loadKnownHosts(); // 加载已知主机 ssh.connect("jumpserver-hostname"); // 连接JumpServer ``` 3. 认证登录JumpServer 在连接到JumpServer之前,你需要提供JumpServer的用户名和密码进行认证。可以使用以下代码进行身份验证: ```java ssh.authPassword("jumpserver-username", "jumpserver-password"); ``` 4. 建立到目标主机的SSH连接 使用SSHJ库建立到目标主机的SSH连接。你需要提供目标主机的IP地址、端口号、用户名和密码进行认证。 ```java SSHTarget target = new SSHTarget("target-hostname", "target-username", "target-password"); Session session = ssh.startSession(); session.allocateDefaultPTY(); // 分配默认的伪终端 session.authPassword(target.getUser(), target.getPassword()); // 认证登录目标主机 session.openForwardedTcpipChannel(target.getHost(), target.getPort()); // 建立SSH通道 ``` 5. 关闭SSH连接 最后,你需要关闭SSH连接,包括与JumpServer和目标主机之间的连接。 ```java session.close(); // 关闭与目标主机的连接 ssh.disconnect(); // 关闭与JumpServer的连接 ``` 以上是使用SSHJ库连接JumpServer开源堡垒机的基本步骤。你可以使用类似的代码在Java中连接其他SSH服务器

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值