一、JumpServer堡垒机概述

(1)什么是跳板机

跳板机就是一台服务器,开发和运维人员在维护过程中首先要先登录到跳板机上,在通过跳板机登录到目标设备进行运维和操作
跳板机的缺点:
跳板机没有实现对开发或运维人员操作行为的控制和审计,使用跳板机的过程中如果出现误操作、违规操作而导致的事故的话,是无法快速定位到原因和责任人的

(2)什么是堡垒机

堡垒机也是一台服务器,在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手段实时收集、监控网络环境中每一个组成部分(服务器)的系统状态、安全事件、网络活动,以便集中报警、及时处理以及审计定责
可以把堡垒机看作一个升级版的跳板机,跳板机有的功能堡垒机都有并且还多了许多功能,如实时收集、监控网络环境、集中报警等功能
堡垒机的优点:
堡垒机可以给其他服务器推送sudo用户,并且为其设置权限
堡垒机多了一个用户行为监控的功能,并且是录像!

跳板机和堡垒机的区别:
跳板机就是一台服务器而已,运维人员在使用管理服务器的时候,必须先连接上跳板机,然后才能操作内网中的服务器,才能登录到目标设备上进行维护和操作。
跳板机的缺点就是: 仅仅实现了服务器登录安全,但是没有实现对于运维人员行为的操控和审计。而堡垒机有。

(3)JumpServer概述

  • JumpServer是全球首款完全开源的堡垒机,使用GNU GPL v2.0开源协议,是符合4A的专业运维审计系
  • JumpServer使用Python\Django开发,遵循Web 2.0规范,配备了业界领先的web Terminal(web终端,即网页终端)解决方案,交互界面美观,用户体验良好
  • JumpServer采用分布式结构,支持多机房跨区域部署,中心节点提供API(接口),各机房部署登录节点,可以横向扩展,并且没有并发限制
  • JumpServer为互联网企业提供了认证、授权、审计、自动化运维等功能
  • JumpServer通过调用各种应用程序的模块来实现各种功能

(4)JumpServer实现的功能

名词 含义
用户组、用户 添加组方便进行授权,用户是授权和登录的主体,用户可以加入用户组,进行批量管理
资产组、资产、IDC 资产就是管理的机器(主机),主机信息简洁完整,用户自定义备注登录,支持自动获取主机的硬件信息,资产同样可以加入资产组,进行批量管理
sudo、系统用户、授权规则 支持sudo用户授权,系统用户用于登录客户端,授权规则是将用户、资产和系统用户关联起来
在线历史、登录历史、命令记录、上传下载记录 在线实时监控用户操作,统计用户命令记录,录像回放用户操作内容,阻断控制,详细记录用户上传和下载
上传、下载 支持文件的上传和下载,实现方式是使用rz(上传)和sz(下载)命令
默认设置 默认管理用户,设置包括用户密码密钥,默认信息为了方便添加资产而设计
  • 身份验证Authentication
登录认证:资源统一登录和认证、LDAP认证、支持OpenID,实现单点登录
多因子认证:MFA(Google Authenticator)
  • 账号管理 Account
集中账号管理:管理用户管理、系统用户管理
统一密码管理:资产密码托管、自动生成密码、密码自动推送、密码过期设置
批量密码变更:定期批量修改密码、生成随机密码
多云环境的资产纳管:对私有云、公有云资产统一管理
  • 授权控制Authorization
资产授权管理:资产树、资产或资产组灵活授权、节点内资产自动继承授权
RemoteApp:实现更细粒度的应用级授权
组织管理:实现多租户管理,权限隔离
多维度授权:可以对用户、用户组或者系统角色授权
指令限制:限制特权指令使用、支持黑白名单
统一文件传输:SFTP文件的上传\下载
文件管理:Web SFTP文件管理
  • 安全审计Audit
会话管理:在线会话管理、历史会话管理
录像管理:linux录像支持、windows录像支持
指令审计:指令记录
文件传输审计:上传\下载记录审计

(5)JumpServer组件

  • JumpServer的主要组件有四个,分别为:jumpserver、Coco、Luna、Guacamole
jumpserver:jumpserver为管理后台,管理人员可以通过Web页面进行资产管理、用户管理、资产授权等操作
Coco:Coco是SSH server和Web Terminal Server(即网页linux客户端),有了Coco用户可以通过使用自己的账号登录SSH或者Web Terminal直接访问被授权的资产,这里登录的是jumpserver的账户,用户登录jumpserver的账户就可以不用密码直接管理账户中授权的资产,新版本的Coco被Koko代替
Luna:Luna是web前端页面,用户使用Web Terminal方式登录所需要的组件
Guacamole:Guacamole是Windows的组件,用户可以通过Web Terminal来连接Windows资产(暂时只能通过网页终端来访问)

image-20231104124340457

二、部署JumpServer堡垒机

在线安装

  1. 准备一台 2核4G (最低)且可以访问互联网的 64 位 Linux 主机;
  2. 以 root 用户执行如下命令一键安装 JumpServer。
curl -sSL https://resource.fit2cloud.com/jumpserver/jumpserver/releases/latest/download/quick_start.sh | bash

image-20231105181846862

出现如上表示启动成功

docker ps

image-20231105185717497

浏览器访问:10.0.0.8

image-20231105184231278

默认用户密码:admin/admin

三、基本使用教程

【1】用户配置

管理用户是资产被控服务器上的root,jumpserver使用此用户可以【推送推送系统用户】【获取资产硬件信息】等,需要注意的是【jumpserver需要先与资产节点做免密,将私钥发送到资产主机】

[root@jumpserver ~]# ssh-keygen
[root@jumpserver ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.0.125
## 将私钥保存下来,要使用
[root@jumpserver ~]# sz ~/.ssh/id_rsa
  • 创建用户组

image-20231105192014003

image-20231105192100455

  • 创建用户

image-20231105192355219

image-20231106143725948

【2】添加资产(可以添加的有:服务器、网络设备、数据库应用)

image-20231106144126696

image-20231106144140180

image-20231106144243678

【3】资产授权

image-20231106144608612

image-20231106144834311

【4】账户添加

image-20231106150134416

image-20231106150155874

image-20231106150224144

image-20231106150445327

测试是否可以登录

image-20231106150532012

image-20231106150604553

【5】验证(使用普通用户登录资产)

image-20231106144942342

image-20231106145014898

image-20231106150643399

image-20231106150704104

image-20231106150720424

远程登录成功

【6】在线会话、历史记录、审计、回放

可以在审计台查看相应记录信息

image-20231106151545539

image-20231106151622239

回访查看:

image-20231106154012217

image-20231106154104694

【7】限制用户使用危险命令

我们可以给危险性的命令禁止使用,如rm、reboot

image-20231106152608805

image-20231106152755079

image-20231106152816491

image-20231106152919479

远端登录测试服务器,使用相关命令验证是否成功开启

image-20231106153130091

可以看到相关的命令都被禁止操作了

【8】监控登录操作

我们也可以实时监控登录到的服务器远程操作

image-20231106153533544

如果碰到一些危险操作,也可以终断对方的远程登录