利用JumpServer实现对公司资产的权限管理,使相应服务器只能被指定的用户访问,并且仅可以执行允许的操作命令。

通俗点讲,JumpServer在应用过程中主要涉及三种对象:

  • 被管理的资产(服务器)
  • 被管理的用户
  • 规则(用户和资产的对应关系、操作权限等)

拓扑图

假设公司有三条业务线,分别对应app1、app2、app3,分别由王一、李二、赵三这3名开发负责,这3个app的数据库均由DBA张库负责维护,现在要通过JumpServer堡垒机实现如下功能:

  • 王一只能连接app1相关的服务器,服务器代表为node101(192.168.1.101);
  • 李二只能连接app2相关的服务器,服务器代表为node102(192.168.1.102);
  • 赵三只能连接app3相关的服务器,服务器代表为node103(192.168.1.103);
  • 张库只能连接数据库相关的服务器,服务器代表为node100(192.168.1.100)node111(192.168.1.111);
  • 四名人员均不能在服务器执行危险指令。

2.1:用户管理

使用管理员账号登录,进行用户组和用户的创建。

2.1.1:创建用户组

为JumpServer创建两个用户组:DevDBA,分别对应开发人员和数据库管理人员。

点击用户管理-用户组-创建,进行用户组的创建:

创建用户组时,因为还没有创建用户,所以用户先不指定,等创建用户时指定用户组即可。

创建Dev用户组:

创建DBA用户组:

创建完成:

2.1.2:创建用户

为JumpServer添加王一、李二、赵三、张库这四名用户,并分配到对应的用户组。

可以点击用户管理-用户列表-创建,逐个进行用户的创建;

也可以下载用户导入模板,录入用户信息后批量导入,下面采用批量导入的方式进行。

点击用户管理-用户列表-导入,在弹出窗口中选择下载模板:

在导入模板中填写每个用户的信息,并保存。

*号为必填项。

官方的字段填写说明:

表单 说明
名称 姓名, 标识用, 可以重复
用户名 登录时使用, 具有唯一性, 不可以重复
密码 密码策略设置为 1 时需要在此处输入密码
邮件 邮件地址, 具有唯一性, 不可以重复
SSH 公钥 选填, 可以上传用户自己的 ssh 公钥
微信 选填, 仅标识
手机 选填, 仅标识
多因子认证 0 关闭, 1 开启, 2 强制开启, 动态口令认证
备注 选填, 仅标识
有效 True 有效, False 无效, 无效的用户无法登录
密码策略 0 表示自动生成密码, 1 需要在上面输入密码
失效日期 用户过期时间
用户组 选填, 用户组的名称, 请先在用户组里面创建
角色 角色有 Admin, User, Auditor
组织角色名称 组织角色名称有 [‘Admin’], [‘User’]

点击用户管理-用户列表-导入,导入刚才编辑好的csv文件:

导入成功:

2.1.3:验证用户登录

使用zhaosan登录JumpServer:

2.2:资产管理

2.2.1:创建管理用户

管理用户是资产(被控服务器)上的 root,或拥有 NOPASSWD: ALL sudo 权限的用户, JumpServer 使用该用户来 推送系统用户获取资产硬件信息 等。

管理用户和系统用户的概念:

  • 创建或导入资产时需要指定管理用户
    管理用户是为JumpServer本身创建的,JumpServer通过管理用户,从被管理服务器上获取系统、硬件等信息的。
  • 创建资产授权规则时需要指定系统用户
    系统用户则是为各用户创建的,用户通过JumpServer远程连接服务器时,使用的就是指定的系统用户。

由于五台服务器都为root用户,密码也一致,所以此处仅创建了一个管理用户。

实际中,各服务器的超级管理员用户及密码应该都是不同的,需要创建多个,以分配给相应的资产。

点击资产管理-管理用户-创建,创建管理用户。

官方的管理用户字段填写说明:

表单 说明
名称 名称, 具有唯一性
用户名 资产的登录账号
密码 资产登录账号的密码
SSH密钥 私钥, 如果私钥有密码, 在上面的密码栏输入
SSH公钥 选填
备注 选填, 仅标识

创建成功:

点击相应管理用户,进入用户详情页,记录管理用户ID,以备导入资产时使用。

  • root_通用的ID:ef1acee6-8a25-4458-8379-aad0f5c89e82

2.2.2:创建系统用户

系统用户是 JumpServer 跳转登录资产时使用的用户,可以理解为登录资产用户,如 web,sa,dba(ssh web@some-host),而不是使用某个用户的用户名跳转登录服务器(ssh xiaoming@some-host); 简单来说是用户使用自己的用户名登录 JumpServer,JumpServer 使用系统用户登录资产。 系统用户创建时,如果选择了自动推送,JumpServer 会使用 Ansible 自动推送系统用户到资产中,如果资产(交换机)不支持 Ansible,请手动填写账号密码。

实际中,系统用户都是使用资产服务器上已存在的业务用户,如www等;当此处创建的系统用户在资产服务器上不存在时,JumpServer会自动在该服务器上创建用户。

因为是测试,本次实验直接让JumpServer为资产服务器创建用户,而不事先在资产服务器上创建用户。

这里通过批量导入的方式,创建四个用户,app1、app2、app3、db,分别对应四名用户的管理需要。

点击资产管理-系统用户-导入,点击下载按钮,下载系统用户导入模板。

填写相关系统用户的信息,保存。

下图隐藏了选填选项。

自动推送的

导入系统用户。

导入成功:

2.2.3:创建节点

左侧是资产树,右击可以新建、删除、更改树节点,授权资产也是以节点方式组织的,右侧是属于该节点下的资产。

节点可以理解为对资产进行分组,按应用程序、或者业务类型进行划分。

这里创建应用程序数据库两个节点,分别对应app和数据库服务器。

点击资产管理-资产列表,在左侧资产树的Default上右击,选择创建节点

创建两个节点:

右击相应节点,选择显示节点详情,记录节点ID,以备导入资产时使用:

  • 应用程序的节点ID:0098b2c5-8932-494d-ade9-3205ae67a427
  • 数据库的节点ID:fab372db-4aee-48b1-9838-a14c490cb92e

2.2.4:创建资产

采用批量导入的方式,将node101、102、103、111、100五台服务器导入。

点击资产管理-资产列表-导入,点击下载模板:

在资产导入模板中填写服务器信息,并保存。

下图已隐藏空的选填项。

官方的字段填写说明:

表单 说明
主机名 主机名, 具有唯一性
IP 资产 IP, 可以重复
协议 该项不需要填写
端口 该项不需要填写
协议组 必填, 多个协议 [‘ssh/22’, ‘rdp/3389’]
激活 TRUE或FALSE,False 时该资产对用户不可见
公网IP 选填, 仅标识
资产编号 选填, 仅标识
制造商 选填, 仅标识
型号 选填, 仅标识
序列号 选填, 仅标识
CPU型号 选填, 仅标识
CPU数量 选填, 仅标识
CPU核数 选填, 仅标识
CPU总数 选填, 仅标识
内存 选填, 仅标识
硬盘大小 选填, 仅标识
硬盘信息 选填, 仅标识
操作系统 选填, 仅标识
系统版本 选填, 仅标识
系统架构 选填, 仅标识
主机名原始 选填, 仅标识
备注 选填, 仅标识
管理用户 必填, 管理用户的 id
网域 选填, 如果使用网域请填写网域的 id
系统平台 必填, Linux, macOS, Windows, Unix 等
节点 资产节点的 id
节点名称 对应节点 id 的名称,如[’/Default/Test’]
标签管理 选填, 仅标识

导入资产列表:

导入成功:

资产创建成功后,JumpServer就会通过指定的管理用户(root)来获取资产信息,点击相应主机名,即可看到获取到的资产信息:

2.2.5:命令过滤

系统用户可以绑定一些命令过滤器,一个过滤器可以定义一些规则 当用户使用这个系统用户登录资产,然后执行一个命令 这个命令需要被绑定过滤器的所有规则匹配,高优先级先被匹配, 当一个规则匹配到了,如果规则的动作是允许,这个命令会被放行, 如果规则的动作是禁止,命令将会被禁止执行, 否则就匹配下一个规则,如果最后没有匹配到规则,则允许执行。

2.2.5.1:创建命令过滤器

先创建命令过滤器。然后在命令过滤器中添加命令过滤规则

点击资产管理-命令过滤-创建,创建一个名为禁止危险命令的命令过滤器:

点击提交,完成创建:

2.2.5.2:创建命令过滤器规则

点击相应的命令过滤器,点击命令过滤器规则-创建,创建禁止如下命令的规则:

reboot
rm
poweroff
ssh
bash
.
mv

点击提交:

创建成功:

2.2.5.3:系统用户添加命令过滤器

转到系统用户界面,点击相应系统用户操作列的更新按钮,分别添加命令过滤器。

2.3:权限管理

在创建好用户和资产的基础上,就要进行用户和资产之间的规则创建,即哪个用户可以访问哪些服务器,以及可以对这些服务器进行什么样的操作等。

2.3.1:创建资产授权规则

可以点击权限管理-资产授权-创建,进行资产授权规则的创建。

app1、app2、app3通过指定用户资产进行授权;

db是通过指定用户组节点进行授权的。

2.3.1.1:app1授权规则

2.3.1.2:app2授权规则

2.3.1.3:app3授权规则

2.3.1.4:db授权规则

2.3.1.5:创建完成

2.3.2:验证资产授权规则和命令过滤

2.3.2.1:wangyi用户验证

使用wangyi用户登录jumpserver,验证对node101的访问:

查看用户资产:

连接资产:

点击Web终端,打开luna窗口,单机左侧资产树中的资产,进行连接。

wangyi用户登录jumpserver后,jumpserver是使用app1这个系统用户连接node101的。

2.3.2.2:lier用户验证

查看lier用户资产:

lier用户登录jumpserver后,jumpserver是使用app2这个系统用户连接node102的。

2.3.2.3:zhaosan用户验证

查看zhaosan用户资产:

zhaosan用户登录jumpserver后,jumpserver是使用app3这个系统用户连接node103的。

2.3.2.4:zhangku用户验证

查看zhangku用户资产,zhangku用户有两个资产,node100和node111:

zhangku用户登录jumpserver后,jumpserver是使用db这个系统用户连接node100和node111的。

2.3.2.5:命令过滤验证

JumpServer 2:JumpServer 应用框架搭建相关推荐

  1. java 详解 搭建 框架_maven 基本框架搭建详解

    在平时的开发中还是在写blog时,在项目实例开始都会需要一遍一遍的介绍maven框架搭建,重复性的工作让我觉得烦恼,现在展现一下Java的核心思想"重复利用",将这个重复性的描述提 ...

  2. gvgai框架搭建及controller编写

    gvgai框架搭建及controller编写 gvgai框架搭建 controller编写 gvgai框架搭建 gvgai官网:http://www.gvgai.net/ 框架下载:http://ww ...

  3. [转载]SSH框架搭建详细图文教程

    什么是SSH? SSH对应 struts spring hibernatestruts 采用MVC模式,主要是作用于用户交互spring 采用IOC和AOP~作用比较抽象,是用于项目的松耦合hiber ...

  4. spring mvc + mybatis 框架搭建 ( idea + gradle)

    spring mvc + mybatis 框架搭建 idea + gradle 刚刚入门,只是个人见解,如有错误或者问题欢迎指出指正. 邮箱: [ wgh0807@qq.com ] 文章引用: [ap ...

  5. Angular开发实践(一):环境准备及框架搭建

    引言 在工作中引入Angular框架将近一年了,在这一年中不断的踩坑和填坑,当然也学习和积累了很多的知识,包括MVVM框架.前后端分离.前端工程化.SPA优化等等.因此想通过Angular开发实践这系 ...

  6. SSH框架搭建问题总结

    1.eclipse中tomcat配置是否正确?能否在网页中访问的到? 如何在eclipse中配置tomcat就不说了,我们看下问题,在网页上访问tomcat的地址,为什么出现404错误呢? 解决办法: ...

  7. React-Native 之 GD (一)目录结构与第三方框架使用与主题框架搭建

    1.APP效果图 2.工程环境配置 IOS: 将压缩包内的 Images.xcassets 文件夹直接替换掉我们iOS工程中的 Images.xcassets 文件夹. 这时候我们可以看到所有图片资源 ...

  8. (三) Angular2项目框架搭建心得

    前言: 在哪看到过angular程序员被React程序员鄙视,略显尴尬,确实Angular挺值得被调侃的,在1.*版本存在的几个性能问题,性能优化的"潜规则"贼多,以及从1.*到2 ...

  9. Unity 游戏框架搭建 (二十一) 使用对象池时的一些细节

    上篇文章使用SafeObjectPool实现了一个简单的Msg类.代码如下: class Msg : IPoolAble,IPoolType{#region IPoolAble 实现public vo ...

最新文章

  1. 使用windows.name解决js跨域数据通信
  2. 开发中最基本的对数据的增删改查SQL
  3. kubesphere服务网格servicemesh(Istio)示例:部署 Bookinfo 和管理流量
  4. Eigrp恶意插入路由和致瘫***测试(四)
  5. 9行代码AC——L1-022 奇偶分家(10 分)(~解题报告~)
  6. 良好的编码风格 java_关于java:编码风格是否遵循良好做法
  7. Python官方文档学习心得(第二篇)
  8. 数据标注——VoTT的学习笔记
  9. silverlight创建新的控件——一个简单的弹出菜单
  10. PFSense 2.1 端口映射配置
  11. 前照灯检测仪_前照灯检测仪
  12. 内网穿透Natapp
  13. 上传图片报413错误
  14. 2022年武汉经开区首次进入规模以上工业企业奖励资金申报条件时间及资料
  15. 线性离散系统的分析与校正
  16. 新手如何运营好阿里国际站+产品标题组成
  17. 数据说话---如何写好年终总结
  18. SAP FI会计科目主数据
  19. 【转】How To Ask Questions The Smart Way---提问的智慧
  20. 网络图如何用计算机计算方法,工程网络图时间参数最简单计算方法.doc

热门文章

  1. MySQL外键约束要求与参照操作
  2. elasticsearch多字段聚合实现方式
  3. 山西省第二届网络安全技能大赛(企业组)部分赛题WP(二)
  4. error C2001:newline in constant
  5. 世界杯直播 | 抖音视频编码器优化
  6. dotnet C# 多次对一个对象调用构造函数会发生什么
  7. LeetCode 每日一题——658. 找到 K 个最接近的元素
  8. c++ 11 nullptr
  9. origin三维散点图_OriginPro2017绘制四维散点图(三维散点+一维颜色)
  10. Unity Shader 数据精度使用情况 float half fixed