从0开始搭建并使用Jumpserver堡垒机

0    73    1

👉 本文共约3668个字,系统预计阅读时间或需14分钟。

1、Jumpserver简单介绍

Jumpserver 是全球首款完全开源的堡垒机,使用 GNU GPL v2.0 开源协议,是符合 4A 的专业运维审计系统。Jumpserver 使用 Python / Django 进行开发,遵循 Web 2.0 规范,配备了业界领先的 Web Terminal 解决方案,交互界面美观、用户体验好。
Jumpserver 采纳分布式架构,支持多机房跨区域部署,中心节点提供 API,各机房部署登录节点,可横向扩展、无并发访问限制。

2、架构图如下

img

3、组件说明

  • Jumpserver
    现指 Jumpserver 管理后台,是核心组件(Core), 使用 Django Class Based View 风格开发,支持 Restful API。
  • Coco
    实现了 SSH Server 和 Web Terminal Server 的组件,提供 SSH 和 WebSocket 接口, 使用 Paramiko 和 Flask 开发。
  • Luna
    现在是 Web Terminal 前端,计划前端页面都由该项目提供,Jumpserver 只提供 API,不再负责后台渲染html等。
  • Guacamole
    Apache 跳板机项目,Jumpserver 使用其组件实现 RDP 功能,Jumpserver 并没有修改其代码而是添加了额外的插件,支持 Jumpserver 调用。
  • Jumpserver-Python-SDK
    Jumpserver API Python SDK,Coco 目前使用该 SDK 与 Jumpserver API 交互。
参考文章:http://docs.jumpserver.org/zh/latest/admin_instruction.html

4、安装环境准备

系统环境说明

关闭防火墙与selinux

准备 Python3 和 Python 虚拟环境

安装依赖包

编译安装python

建立 Python 虚拟环境

因为 CentOS 6/7 自带的是 Python2,而 Yum 等工具依赖原来的 Python,为了不扰乱原来的环境我们来使用 Python 虚拟环境

5、安装jumpserver

安装依赖 RPM 包

安装 Python 库依赖

这里官方比较坑,说不要指定源,不指定源根本装不了,可根据实际情况指定相关的新pip源进行安装,实在安装不了的,下载源码包手工安装。

安装 Redis

安装 MySQL

这里直接使用二进制安装包安装,具体可参考之前的文章

LAMP架构应用实战MySQL服务安装

创建数据库 Jumpserver 并授权

修改 Jumpserver 配置文件

生成数据库表结构和初始化数据

运行jumpserver

运行之后没有报错信息,就可以使用浏览器访问了http://server_ip:8080

img

默认用户名/密码:admin/admin此时运行的只是jumpserver的WEB端,如果需要访问访问 Web Terminal 会报错如下

本人提供Oracle、MySQL、PG等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!

img

安装 SSH Server 和 WebSocket Server: Coco

新打开一个 SSH终端连接去安装

下载项目文件

安装依赖

img

点击确认之后会出现下面的提示

img

测试连接

安装 Web Terminal 前端: Luna

Luna 已改为纯前端,需要 Nginx 来运行访问,访问(https://github.com/jumpserver/luna/releases)下载对应版本的 release 包,直接解压,不需要编译。

img

需要注意的是修改默认IP如下图

img

配置 Nginx 整合各组件

最后通过nginx直接访问如下

img

简单使用配置

系统几个用户的区别

  • 用户:是指你在web上创建的用户,会在跳板机上创建这个用户,作用就是用于登录跳板机,另外用户分为普通用户和超级管理员,后者可以审计查看用户登陆记录、命令历史等
  • 管理用户:是指客户端上的如root等高权限账号(或普通用户拥有NOPASSWD: ALL sudo权限), 作用用于推送系统用户,注意是已经在客户端用户上存在的用户。
  • 系统用户:是指要在客户端上创建这个系统用户,通过推送来实现,作用就是登录客户端。

管理用户和系统用户的关系:

  • 两者都是客户端上的用户,后者涉及到一个推送动作
  • 比如推送test系统用户,也就是在客户端上创建test用户,那么创建用户需要有权限
  • 有没有权限创建就要看你是用客户端的root用户还是普通用户做为管理用户
  • 如果后者做为管理用户就需要添加sudo权限又是NOPASSWD: ALL

添加用户组

img

添加用户
这个用户是用于登录jumpsesrver的用户,与后面的管理用户、系统用户没有关联

img

添加完成

img

创建管理用户
这个用户必须具备客户端管理权限,否则后面会有问题,这里我以管理用户为例创建

img

添加系统用户
系统用户是Jumpserver跳转登录资产时使用的用户,可以理解为登录资产用户,如 web, sa, dba(ssh web@some-host), 而不是使用某个用户的用户名跳转登录服务器(ssh xiaoming@some-host); 简单来说是 用户使用自己的用户名登录Jumpserver, Jumpserver使用系统用户登录资产。 系统用户创建时,如果选择了自动推送 Jumpserver会使用ansible自动推送系统用户到资产中,如果资产(交换机、windows)不支持ansible, 请手动填写账号密码。 目前还不支持Windows的自动推送.
注:这个系统在创建时,是可以配置sudo权限的

img

创建资产

img

创建完成后,可以在下面的界面测试连接性
点击更新硬件信息

img

img

点击测试可连接性

img

表示正常连接,返回资产列表如下图

img

测试登录效果

WEB端也可以看到在线的会话

img

历史会话

img

还可以看到具体回放功能,点击回放可查看登录用户的操作过程

img

命令记录

img

整体仪表盘

img

标签:

头像

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

16 − 5 =

 

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部