基于Docker搭建Jumpserver堡垒机操做实践

1、背景

笔者最近想起此前公司使用过的堡垒机系统,以为用的很方便,而如今的公司并无搭建此类系统,想着之后说不定能够用上;并且最近也有点时间,所以来了搭建堡垒机系统的兴趣,在搭建过程当中参考了比较多的文档,其中最详细的仍是官方文档,地址以下所示:web

  1. Jumpserver 文档

2、操做概要

1. 系统运行
2. 配置入门
3. 测试验证
复制代码

3、系统运行

在官方文档中安装堡垒机有不少种方法,这让笔者有些纠结,另外并且在不一样系统中安装方法也不一致,不过正在徘徊不定时,发现一种通用的安装方法,即是采用docker进行安装,所以本文中笔者将以docker安装为例docker

3.1 下载镜像

在docker官方镜像库当中并无收录jumpserver,所以下载镜像命令以下所示:浏览器

docker pull registry.jumpserver.org/public/jumpserver:1.0.0
复制代码

下载过程可能比较慢,笔者大约花费了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
复制代码

3.2 运行镜像

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

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
复制代码

3.3 运行检查

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

首先经过以下命令能够查看当前正在运行的容器ssh

docker ps
复制代码

若是容器正常运行将会出现刚在笔者所运行的堡垒机容器ID,正常返回结果参考以下tcp

CONTAINER ID        IMAGE                                             COMMAND               CREATED             STATUS              PORTS                                                   NAMES
4709a7d85af2        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/
复制代码

当浏览器出现以下界面时,则基本表明成功

image

4、配置入门

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

4.1 登陆系统

在前面的检验运行的截图当中能够看到须要登陆,而帐号和密码笔者并无在官方文档中所看到,笔者随手一尝试,发现用户名和密码分别是adminadmin,以下图所示

image

登陆成功以后,进入系统看到的界面以下图所示

image

4.2 管理用户

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

image

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

4.3 资产管理

在添加管理用户以后,即可以添加资产了,添加资产也很是的简单,在资产列表点击建立资产按钮,便来到了添加资产的页面,以下图所示

image

添加资产须要填写,资产的IP地址,以及ssh的端口号,以及选择资产的操做系统类型,而且选择用哪个管理用户

4.4 系统用户

在资产管理下还有一个系统用户管理,这个系统用户的使用场景是,有时候须要在不少个目标资产中建立一个普通帐户,这时候确定是十分麻烦;此时即可以经过堡垒机上的系统用户管理来建立一个系统用户;而后下发到目标资产中,这样一来就不须要去目标主机一个个登陆而后去建立,所以很是方便,添加系统用户以下图所示

image

建立系统用户需输入须要建立的帐号,以及选择认证的方式,默认为秘钥方式,也能够将选择框选中去掉,经过密码来认证。

5、测试验证

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

5.1 链接测试

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

image

若是能看到左侧的硬件信息发生了变动,就表明此前配置的管理用户没有问题,不然会弹出错误提示框;

5.2 用户受权

当配置资产后,若是想在堡垒机中直接链接终端就还须要给用户受权,受权分为两个步骤,第一步是给web终端帐户受权,在会话管理->终端管理,以下图所示

image

第二步则是给用户本身自己受权,在受权管理->资产权限->建立权限规则中作好相应配置,以下图所示

image

5.3 web终端

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

image

5.4 在线会话

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

image

5.5 命令记录

笔者以为堡垒机最大的做用之一即是审计,若是想知道某个用户在系统中执行了那些命令,能够很方便的在会话管理->命令记录中进行查看,以下图所示

image

6、 图书推荐

若是对笔者的实战文章较为感兴趣,能够关注笔者新书《PHP Web安全开发实战》,现已在各大平台上架销售,封面以下图所示

image

做者:汤青松

微信:songboy8888

日期:2018-10-30

相关文章
相关标签/搜索