开源堡垒机 Jumpserver 入门教程_运维之美的博客-程序员秘密

640?wx_fmt=png


背景


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

Jumpserver 介绍


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


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

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


  • Jumpserver 架构图


640?wx_fmt=png

  • 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/


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


640?wx_fmt=png


配置入门


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


  • 登录系统


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

640?wx_fmt=png


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

640?wx_fmt=png


  • 管理用户

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


640?wx_fmt=png

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

  • 资产管理

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


640?wx_fmt=png


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


  • 系统用户


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

640?wx_fmt=png


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

测试验证

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

  • 连接测试

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

640?wx_fmt=png


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


  • 用户授权


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

640?wx_fmt=png

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

640?wx_fmt=png


  • Web 终端

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

640?wx_fmt=png


  • 在线会话


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


640?wx_fmt=png

  • 命令记录


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


640?wx_fmt=png


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

来源:segmentfault
原文:http://t.cn/EwxjhFU
题图:
来自谷歌图片搜索 
版权:
本文版权归原作者所有
投稿:欢迎投稿,投稿邮箱: [email protected]

640?wx_fmt=gif


推荐阅读

640?wx_fmt=gif

640?wx_fmt=png640?wx_fmt=gif

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/easylife206/article/details/94420364

智能推荐

Android开启多进程及进程间通信的几种方式_-小马快跑-的博客-程序员秘密

文章目录进程开启多进程多进程带来的问题进程间通信进程首先来看进程的定义: **进程是指一个执行单元,在PC和移动设备上是指一个程序或者一个应用。**而线程是CPU调度的最小单元,同时线程是一种有限的系统资源,一个进程可以包含多个线程,因此进程和线程是包含与被包含的关系,当某个应用组件启动且该应用没有运行其他任何组件时,Android 系统会使用单个执行线程为应用启动新的 Linux 进程。默认情况下,同一应用的所有组件在相同的进程和线程(称为“主”线程)中运行。开启多进程多进程的好处:1、增大应用

Pycharm中英文语言切换以及背景色更改问题_pycharm切换语言_sanpang0419的博客-程序员秘密

项目场景:提示:这里简述项目相关背景:最近开始接触python,用到pycharm,软件的安装没什么问题,就一些基本设置写一下做个记录,持续更新自己遇到的一些问题或者值得分享的应用。问题描述提示:这里描述项目中遇到的问题:今天是两个小设置,一个是改成中文系统,一个是背景色的更改。都不难,大家可参考看看。解决方案:提示:这里填写该问题的具体解决方案:一、语言的更改第一步:打开pycharm,file中找到settings或者快捷方式“Ctrl+Art+S”第二步:在settings找

【坑】glusterfs + ctdb + samba 搭建高可用服务_ctdb+samba+glusterfs_程序猿_存储研发的博客-程序员秘密

坑1 : samba 版本与 libtevent版本不兼容问题所有的安装包都从这个地址下载吧,不要直接yum install下载地址:https://download.gluster.org/pub/gluster/samba/CentOS/epel-7/x86_64/ 坑2:  cups服务没有安装,导致smb服务提示:can not connect to localhost...

TensorFlow(2.x)对结构化数据进行分类_tensorflow训练结构化数据_SamSha1971的博客-程序员秘密

TensorFlow(2.x)对结构化数据进行分类参考文档在参考文档https://tensorflow.google.cn/tutorials/structured_data/feature_columns的基础上,增加了分类模式。使用说明$ python bx.py --helpusage: bx.py [-h] [-t] [-c]optional arguments: -h, --help show this help message and exit -t, --t

Qt工作笔记-使用QGraphicsItem加载图片并实现碰撞_qt碰撞检测_IT1995的博客-程序员秘密

因为要做一个游戏,在线只是一个知识点例子,作下笔记而已。只给出伪代码,游戏作玩,开源发布!!!这里有2个知识点一个是QGraphicsItem的绘图。一个是QGraphicsItem的碰撞。实现绘图要重写:boundingRect()和paint();一定要保证所有的绘图都要在boundingRect()的边界之中。本次绘图代码如下:QRectF Graphic::boundingRect()co...

数据结构(删除多余元素)_爪 哇的博客-程序员秘密

数据结构(删除多余元素) 顺序表题目描述在长度为n(n<1000)的顺序表中可能存在着一些值相同的“多余”数据元素(类型为整型),编写一个程序将“多余”的数据元素从顺序表中删除,使该表由一个“非纯表”(值相同的元素在表中可能有多个)变成一个“纯表”(值相同的元素在表中只能有一个)。输入第一行输入表的长度n;第二行依次输入顺序表初始存...

随便推点

大型商业源码_牙签哥的博客-程序员秘密

推荐免费下载430套大型商业源码下载地址:http://www.hur.cn/tg/linkin.asp?linkid=203003下载地址:[URL=http://www.hur.cn/tg/linkin.asp?linkid=203003 ]http://www.hur.cn/tg/linkin.asp?linkid=203003[/URL]下载地址:http://www.hu

git 版本退回 分支切换与合并_梅溪的博客-程序员秘密

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到

termux安装pandas和matplotlib(亲测可用)_termux pandas_彩克拉夫斯基的博客-程序员秘密

@TOCtermux安装pandas#安装pythonpkg install python#安装pandas,可以先pip安装一下numpy(非必须)export CFLAGS="-Wno-deprecated-declarations -Wno-unreachable-code"pip install pandasTermux安装matplotlib#Pillow库依赖pkg install libjpeg-turbopkg install zlib#matplotlib库依赖p

springboot项目启动时出现:TypeException: The alias 'XXX' is already mapped to the value 'XX' 错误_沙滩de流沙的博客-程序员秘密

springboot项目启动时具体报错内容如下:org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'accountController': Unsatisfied dependency expressed through field 'acc...

HDU 6034 Balala Power! —— Multi-University Training 1_bangpi1875的博客-程序员秘密

  TalentedMr.Tanghasnnstrings consisting of only lower case characters. He wants to charge them with Balala Power (he could change each character ranged fromatozinto each number ranged fr...

linux 用户卸载搜狗输入法一生轻松_努力淡定偶尔愤青的博客-程序员秘密

写下这段话,也是因为被搜狗输入法折磨两次整个人处于愤怒到无以复加,才记录一下,告诫自己。习惯了windows下使用搜狗输入法,所以在linux也安装了搜狗,但是搜狗的尿性,真的是,在平时使用还好,唯独在开机输密码的时候,如果你熄屏状态时恰恰是中文全角状态,那么恭喜你,能不能开机就全看脸了。搜狗输入法,上说的是,全角半角切换状态是shift+space,但是你会发现在待机页面有时候你怎么点,都是没用...

推荐文章

热门文章

相关标签