背景

笔者最近想起此前公司使用过的堡垒机系统,觉得用的很方便,而现在的公司并没有搭建此类系统,想着以后说不定可以用上;而且最近也有点时间,因此来了搭建堡垒机系统的兴趣,在搭建过程中参考了比较多的文档,其中最详细的还是官方文档,地址:https://jumpserver.readthedocs.io/ 。

Jumpserver 介绍

Jumpserver 是全球首款完全开源的堡垒机,使用 GNU GPL v2.0 开源协议,是符合 4A 的专业运维审计系统。

Jumpserver 使用 Python / Django 进行开发,遵循 Web 2.0 规范,配备了业界领先的 Web Terminal 解决方案,交互界面美观、用户体验好。

Jumpserver 采纳分布式架构,支持多机房跨区域部署,中心节点提供 API,各机房部署登录节点,可横向扩展、无并发访问限制。

  • Jumpserver 架构图

  • Jumpserver 组件说明

1. Jumpserver

现指 Jumpserver 管理后台,是核心组件(Core), 使用 Django Class Based View 风格开发,支持 Restful API。

2. Coco

实现了 SSH Server 和 Web Terminal Server 的组件,提供 SSH 和 WebSocket 接口, 使用 Paramiko 和 Flask 开发。

3. Luna

现在是 Web Terminal 前端,计划前端页面都由该项目提供,Jumpserver 只提供 API,不再负责后台渲染 html 等。

4. Guacamole

Apache 跳板机项目,Jumpserver 使用其组件实现 RDP 功能,Jumpserver 并没有修改其代码而是添加了额外的插件,支持 Jumpserver 调用。

5. Jumpserver-Python-SDK

Jumpserver API Python SDK,Coco 目前使用该 SDK 与 Jumpserver API 交互。

系统运行

在官方文档中安装堡垒机有很多种方法,这让笔者有些纠结,另外而且在不同系统中安装方法也不一致,不过正在徘徊不定时,发现一种通用的安装方法,便是采用 Docker 进行安装,因此本文中笔者将以 Docker 安装为例。

  • 下载镜像

在 Docker 官方镜像库当中并没有收录 Jumpserver,因此下载镜像命令如下所示:

$ docker pull registry.jumpserver.org/public/jumpserver:1.0.0

从 1.4.5 版本开始,官方镜像库中已经收录了 Jumpserver。如果你需要使用最新版本可以用以下命令下载镜像:

$ docker pull jumpserver/jms_all

下载过程可能比较慢,笔者大约花费了 14 分钟才将其下载完成,下载完成后结果如下所示:

1.0.0: Pulling from public/jumpserver
af4b0a2388c6: Pull complete
aa66a3d10fd2: Pull complete
1d4c6a27f2ac: Pull complete
2490267572de: Pull complete
b00f1599768d: Pull complete
398fc903cdc3: Pull complete
f8490bbfc09a: Pull complete
86d238b365f5: Pull complete
2cd3b1ef59b2: Pull complete
4a21434eeb73: Pull complete
ae8cf3e909e0: Pull complete
7c440776471a: Pull complete
0a5e895f91af: Pull complete
b86672241685: Pull complete
af16a4945f95: Pull complete
0374e723cd6c: Pull complete
e18b86849df9: Pull complete
648aa832cb74: Pull complete
b52364a5c704: Pull complete
Digest: sha256:0f26e439c492ac52cbc1926aa950a59730607c947c79557ab3da51bfc2c7b5d4
Status: Downloaded newer image for registry.jumpserver.org/public/jumpserver:1.0.0
  • 运行镜像

下载之后笔者需要将下载下来的容器运行起来,为了防止 80 端口被宿主机其他进程所占用,因此将容器端口映射到宿主机的 8011 上,运行命令如下所示:

$ docker run --name jms_server -d -p 8011:80 -p 2222:2222 registry.jumpserver.org/public/jumpserver:1.0.0

在参数当中因为有加入后台运行参数 -d,容器运行之后终端不会进入容器 bash 中,而且当命令执行成功之后,docker 将会返回容器 ID,如果返回信息则可能出现了异常错误,正常返回结果如下所示:

4709a7d85af28bf05a63fb3e42541a41c30edda6668fd54a446cfab006c35b9e
  • 运行检查

容器运行之后,笔者需要对其进行检测确保运行成功,检查方式有两个,首先观察容器是否正常运行,然后是检查堡垒机是否能被浏览器所访问。

首先通过如下命令可以查看当前正在运行的容器。

$ docker ps

如果容器正常运行将会出现刚才笔者所运行的堡垒机容器 ID,正常返回结果参考如下:

CONTAINER ID        IMAGE                                             COMMAND               CREATED             STATUS              PORTS                                                   NAMES4709a7d85af2        registry.jumpserver.org/public/jumpserver:1.0.0   "/opt/start_jms.sh"   8 minutes ago       Up 8 minutes        443/tcp, 0.0.0.0:2222->2222/tcp, 0.0.0.0:8011->80/tcp   jms_server

在返回结果当中可以看到之前 Docker 返回的容器 ID 正处于运行状态,便可以确定容器运行正常,接着笔者还需要通过浏览器来检测是否运行成功,使用浏览器打开如下地址:

http://127.0.0.1:8011/

当浏览器出现如下界面时,则基本代表成功。

配置入门

在确定系统正常运行之后,接下来就可以对系统进行一些配置,堡垒机配置比较简单,下面的配置是将是使用堡垒机最为基础的一些配置,配置主要是添加一些资产进行管理,这便需要添加管理用户、系统普通用户、账户授权等操作。

  • 登录系统

在前面的检验运行的截图当中可以看到需要登录,而账号和密码笔者并没有在官方文档中所看到,笔者随手一尝试,发现用户名和密码分别是 admin 与admin,如下图所示:

登录成功之后,进入系统看到的界面如下图所示:

  • 管理用户

接下来笔者需要添加一些资产,添加资产的前提条件是有一个管理用户,这个管理用户是资产的最高权限账户,堡垒机之后会使用此账户来登录并管理资产,和获取一些统计信息,笔者在资产管理->管理用户列表中点击创建系统用户按钮,便来到了创建管理用户的页面,如下图所示:

在表单中可以看见必须填写用户名,和认证所用的密码或私钥,按照真实情况去填写,比如笔者的资产最高权限账户是 song,密码 123456Ab,那么就如实填写上去。

  • 资产管理

在添加管理用户之后,便可以添加资产了,添加资产也非常的简单,在资产列表点击创建资产按钮,便来到了添加资产的页面,如下图所示:

添加资产需要填写,资产的 IP 地址,以及 SSH 的端口号,以及选择资产的操作系统类型,并且选择用哪一个管理用户。

  • 系统用户

在资产管理下还有一个系统用户管理,这个系统用户的使用场景是,有时候需要在很多个目标资产中创建一个普通账户,这时候肯定是十分麻烦;此时便可以通过堡垒机上的系统用户管理来创建一个系统用户;然后下发到目标资产中,这样一来就不需要去目标主机一个个登录然后去创建,因此非常方便,添加系统用户如下图所示:

创建系统用户需输入需要创建的账号,以及选择认证的方式,默认为秘钥方式,也可以将选择框选中去掉,通过密码来认证。

测试验证

在前面的配置步骤操作完毕后,便可以进行一些常规功能验证,以此来加深对Jumpserver 系统的了解,这些功能测试点有 资产连接测试、用户授权、Web终端、在线会话、命令记录等功能。

  • 连接测试

连接测试的目的是检查资产是否可以被堡垒机所访问,可以在资产列表点击资产名称,便可以进入资产详情页面,右侧有两个按钮,点击刷新按钮,正确配置的参考效果如下图所示:

如果能看到左侧的硬件信息发生了变更,就代表此前配置的管理用户没有问题,否则会弹出错误提示框。

  • 用户授权

当配置资产后,如果想在堡垒机中直接连接终端就还需要给用户授权,授权分为两个步骤,第一步是给web终端账户授权,在会话管理->终端管理,如下图所示:

第二步则是给用户自己本身授权,在授权管理->资产权限->创建权限规则中做好相应配置,如下图所示:

  • Web 终端

当给用户授权之后,用户便可以会话管理->Web终端中与系统进行交互,如下图所示:

  • 在线会话

有些时候想看谁在操作服务器,可以很轻松的通过在线会话功能来查看当前有哪些用户在操作终端,在会话管理->在线会话列表中进行查看,如下图所示:

  • 命令记录

笔者觉得堡垒机最大的作用之一便是审计,如果想知道某个用户在系统中执行了那些命令,可以很方便的在会话管理->命令记录中进行查看,如下图所示:

至此,我们就演示完了 Jumpserver 堡垒机的基本安装和使用。如果你对其非常感兴趣,可自行参考官方文档做进一步研究哟~

来源:segmentfault
原文:http://t.cn/EwxjhFU
题图:来自谷歌图片搜索 
版权:本文版权归原作者所有
投稿:欢迎投稿,投稿邮箱: editor@hi-linux.com


推荐阅读

  • 10 个构建和管理容器的技巧

  • 谈谈互联网架构

  • 开源堡垒机 Teleport 入门教程

  • 浅谈 TCP 的三次握手和四次挥手

  • 史上最全的 Linux 运维工程师面试问答录

开源堡垒机 Jumpserver 入门教程相关推荐

  1. jumpserver 使用教程_开源堡垒机 Jumpserver 入门教程

    原标题:开源堡垒机 Jumpserver 入门教程 背景 笔者最近想起此前公司使用过的堡垒机系统,觉得用的很方便,而现在的公司并没有搭建此类系统,想着以后说不定可以用上:而且最近也有点时间,因此来了搭 ...

  2. Linux部署开源堡垒机JumpServer详细教程

    堡垒机,也叫做运维安全审计系统,它的核心功能是 4A: 身份验证 Authentication 账号管理 Account 授权控制 Authorization 安全审计 Audit 简单总结一句话:堡 ...

  3. 开源堡垒机 Teleport 入门教程

    由于业务需求,以前账号管理混乱,所以很多人有生产服务器的 root 权限:所以目前需要一个能 SSH 登录线上服务器的工具,同时具有简单的审计功能. 为了解决以上问题我找到了 Teleport 这个功 ...

  4. 服务器管理神器 开源堡垒机 jumpserver 实战教程

    一.简介 前面我们聊到了openvpn的部署和使用,它能够实现从互联网通过openvpn连接到公司内网服务器,从而进行远程管理. 但openvpn有一个缺点不能记录用户内部网服务器上操作了什么,拥有客 ...

  5. 开源堡垒机JumpServer的资产及用户配置说明

    文章目录 前言 一.创建用户 二.配置资产(服务器) 1.配置Linux服务器步骤如下: 第一步.创建特权用户 第二步.创建资产 第三步.创建系统普通用户 第四步.创建授权规则 2.配置Windows ...

  6. 开源堡垒机 Jumpserver 1.4.9 发布,数据库支持 ssl

    开发四年只会写业务代码,分布式高并发都不会还做程序员?   开源堡垒机 Jumpserver v1.4.9 发布了 , 更新内容如下: Bug修复: 创建定时任务时的时区问题 修复celery日志可能 ...

  7. 开源堡垒机Jumpserver

    Jumpserver介绍 JumpServer 是全球首款开源的堡垒机,使用 GNU GPL v3.0 开源协议,是符合 4A 规范的运维安全审计系统. JumpServer 使用 Python / ...

  8. 关于开源堡垒机Jumpserver二次开发

    针对市场上商业堡垒机动辄七八十万的投入,一般屌丝公司都是伤不起,只能砸机兴叹,开源堡垒机自然是一个方案.是拿来即用吗,NO,那是作死,不说安全.性能.并发,高可用,光维护资产.用户账号密码.授权,就可 ...

  9. 开源堡垒机jumpserver及麒麟堡垒机安装

    环境 序号 主机IP 主机名 系统 备注 1 192.168.3.81 stu1 rockylinux8.6最小化安装 jumpserver保垒机安装 2 192.168.3.82 stu2 rock ...

最新文章

  1. OpenCV学习笔记(四十一)——再看基础数据结构core OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年 OpenCV学习笔记(四十三)——存取像素值操作汇总co
  2. oppo手机工程模式清除数据需要密码_「MIUI玩机技巧27」如何快速查询和清除电池信息...
  3. 如何使用subversion管理iOS源代码
  4. 0829双层循环嵌套
  5. 熟悉MyEclipse
  6. oracle 截取 tr,oracle中实现截取字符串(substr)、查找字符串位置(instr)、替换字符串(replace)...
  7. 深度置信网络(DBN)
  8. java 数独游戏_java数独游戏完整版分享
  9. HTML基础常识问答(一)
  10. 浪潮服务器【磁盘阵列】故障修复
  11. 语言认知模型--的学习笔记
  12. 高防服务器有哪些优势
  13. java catch 空指针异常_java空指针异常怎么处理
  14. 在HTML页面里调用PHP的方法
  15. 使用snap安装mosquitto并且进行初步配置
  16. 图说三极管,太容易懂了!(史上最详细版本)
  17. jquery Callbacks 回调对象的读书笔记-源码分析
  18. 【01】软件项目管理结构图
  19. Java:实现基于计算法的CRC-CCITT算法(附完整源码)
  20. 高斯-勒让德求积分的Python程序

热门文章

  1. VScode如何恢复误删文件
  2. 第6篇 | Weblogic反序列化攻击不依赖日志溯源攻击时间
  3. SRV记录的说明及使用
  4. win x64平台驱动测试数字签名
  5. VMware ESXi
  6. 稳定wow60级服务器,魔兽世界:永久60级与TBC该怎么选,60级服务器真的会有玩家么?...
  7. discuz论坛安装流程
  8. 天池比赛短租数据集分析之数据图表
  9. 格创厕所查查,一款专注于找厕所的小程序
  10. 代理游戏有哪些方式?流程是什么?