当前位置: 首页 > news >正文

运维安全07 - JumpServer(堡垒机)介绍以及使用

一、安全网关

1.1 跳板机

架构描述

  1. 外部网络:用户从外部网络发起连接请求。

  2. 防火墙:限制访问,仅允许特定端口或IP地址通过。

  3. 跳板机:位于内部网络边缘的一个安全节点,作为进入内部网络的单一接入点。

  4. 目标服务器:位于内部网络中的各种服务和应用服务器。

连接流程

  • 用户首先通过SSH或其他协议登录到跳板机。

  • 登录成功后,再从跳板机内部发起对目标服务器的连接请求。

  • 通常情况下,不允许直接从外部网络访问内部服务器,所有访问必须经过跳板机。

==模拟本地的跳板机==

1.2 堡垒机

架构描述

  1. 外部网络:同样,用户从外部网络尝试访问企业资源。

  2. 防火墙:控制对外部流量的访问权限。

  3. 堡垒机:作为安全强化的主机,它不仅充当了类似跳板机的角色,还提供了更高级别的审计、监控功能以及细粒度的访问控制。

  4. 内部网络资源:包括数据库、应用程序服务器等敏感资源。

连接流程

  • 用户通过Web界面或者专用客户端软件认证后登录到堡垒机。

  • 堡垒机会记录用户的操作行为,并且在某些配置下可以实时监控会话。

  • 根据预先设定的策略,堡垒机决定是否允许用户继续访问内部的具体资源。

  • 所有操作都会被日志记录下来,便于后续审计。

+------------------+       +------------------+      +------------------+
|    外网用户      | ---->  |     防火墙       | --->    |    跳板机/堡垒机  |
+------------------+       +------------------+      +------------------+
                                                        |
                                                        v
                                             +---------------------+
                                             |   内部网络资源      |
                                             +---------------------+

1.3 JumpServer

JumpServer - 开源堡垒机 - 官网

JumpServer 是广受欢迎的开源堡垒机,是符合 4A 规范的专业运维安全审计系统。

JumpServer 帮助企业以更安全的方式管控和登录所有类型的资产,实现事前授权、事中监察、事后审计,满足等保合规要求。

JumpServer 的产品特色包括:

  • 开源:零门槛,线上快速获取和安装;

  • 分布式:轻松支持大规模并发访问;

  • 无插件:仅需浏览器,极致的 Web Terminal 使用体验;

  • 多云支持:一套系统,同时管理不同云上面的资产;

  • 云端存储:审计录像云端存储,永不丢失;

  • 多租户:一套系统,多个子公司和部门同时使用;

  • 多应用支持:数据库,Windows 远程应用,Kubernetes。

JumpServer 堡垒机支持的资产类型包括:

  • SSH (Linux / Unix / 网络设备 等)

  • Windows (Web 方式连接 / 原生 RDP 连接)

  • 数据库 (MySQL / MariaDB / Oracle / SQLServer / PostgreSQL / ClickHouse 等)

  • NoSQL (Redis / MongoDB 等)

  • GPT (ChatGPT 等)

  • 云服务 (Kubernetes / VMware vSphere 等)

  • Web 站点 (各类系统的 Web 管理后台)

  • 应用 (通过 Remote App 连接各类应用)

JumpServer 并不是一个单一的应用程序,而是一个由多个微服务模块组成的堡垒机系统,每个模块负责不同的功能。

Fit2Cloud 基于开源 JumpServer 进行了一些优化和封装,并且提供了基于 Docker 的一键部署方式。

curl -sSL https://resource.fit2cloud.com/jumpserver/jumpserver/releases/latest/download/quick_start.sh | bash

安装成功后,通过浏览器访问登录 JumpServer

地址: http://<JumpServer服务器IP地址>:<服务运行端口>
用户名: admin
密码: ChangeMe

1.4 控制台

仪表盘:显示系统运行状态的概览信息,包括在线用户数、活跃会话数等关键指标以及资源统计和图表分析。

用户管理

  • 用户列表:管理所有用户的详细信息,包括创建、修改和删除用户。

  • 用户组:对用户进行分组管理,便于批量授权和操作。

新建用户组

新建用户

密码选项

生成重置密码链接,通过邮件发送给用户:当用户忘记密码时,可以选择此选项来生成一个重置密码的链接,并通过电子邮件发送给用户。用户点击该链接后可以设置新的密码。

设置密码:允许用户直接在系统中设置或修改密码。

MFA(多因素认证)

禁用:不启用多因素认证功能,用户仅需输入用户名和密码即可登录。

启用:启用多因素认证功能,用户在输入用户名和密码后,还需提供额外的验证方式(如手机验证码、指纹等)才能登录。

强制启用:不仅启用多因素认证,而且要求所有用户必须使用多因素认证才能登录,不能选择跳过。

来源

数据库:用户的认证信息存储在JumpServer的本地数据库中,用户账号和密码由JumpServer管理。

LDAP/AD:通过连接到LDAP或Active Directory服务器进行用户认证,用户的账号和密码信息存储在外部的目录服务中。

CAS:使用中央认证服务(Central Authentication Service)进行用户认证,通常用于企业内部的统一身份认证系统。

启用邮件功能需要配置SMTP,通过QQ邮箱配置该信息

进入忘记密码页面修改普通用户登录密码

资产管理

  • 资产列表:管理所有可访问的IT资源(如服务器、网络设备等),包括添加、编辑和删除资产。

  • 网域列表:管理不同的网络区域或环境,用于组织和分类资产。

在JumpServer的资产列表中,"资产"指的是需要进行管理和访问控制的IT资源。

  1. 主机:这是最常见的资产类型,通常指物理服务器或虚拟机。管理员可以对这些主机进行远程访问、管理和维护。

  2. 网络设备:包括路由器、交换机、防火墙等网络基础设施设备。通过管理这些设备,可以确保网络的正常运行和安全。

  3. 数据库:指各种类型的数据库系统,如MySQL、Oracle、SQL Server等。数据库是存储和处理数据的核心组件,对其进行有效管理对于保障业务连续性和数据安全至关重要。

  4. 云服务:随着云计算的普及,越来越多的企业开始使用云服务。这里的云服务可能包括云服务器、云存储、云数据库等。JumpServer可以帮助管理员统一管理这些云资源。

  5. Web:这可能指的是Web应用服务器或Web服务。管理员可以通过JumpServer对这些Web资源进行访问和操作,确保其正常运行。

  6. 目录服务:目录服务是一种用于存储和管理组织内用户、计算机和其他资源信息的服务,如Active Directory(AD)。通过管理目录服务,可以实现对用户身份和权限的集中管理。

添加网域

新建标签

编辑资产树

新建linux资产(网关)

新建linux资产(主机)

测试两台资产的可连通性

添加数据库资产

测试资产情况

账号管理

  • 账号列表:管理与资产相关的登录账号,包括创建、修改和删除账号。

  • 账号模版:设置账号模板,方便批量生成和管理账号。

创建批量用户模板

用户推送

使用账号模板新建账户时,这个账户信息主要是存储在JumpServer系统内部的。

这意味着该账户的信息如用户名、密码或SSH密钥等是被JumpServer管理和使用的,但并不会自动同步到实际的主机上。

  1. JumpServer内部管理:新建的账户主要用于JumpServer内部的权限管理和审计,以及通过JumpServer进行的远程访问控制。

  2. 不会自动同步到主机:除非你采取额外步骤(如使用JumpServer提供的自动化脚本或者手动操作)将这些用户添加到目标主机上,否则这些用户账户不会出现在你的Linux服务器或其他类型的资产上。

  3. 实际登录验证:如果你想直接登录到某台主机(不经过JumpServer),你需要确保该主机上有对应的用户账户,并且你知道正确的认证信息(比如密码或私钥)。

特权账号的主要用途

  1. 资产管理:特权账号允许管理员对JumpServer管理下的所有资产进行配置、管理和维护。

  2. 权限控制:通过设置不同级别的权限,确保只有经过授权的用户才能使用特权账号进行关键操作。

  3. 安全审计:所有的特权账号活动都会被记录下来,便于后续的安全审计和追踪,这对于保证系统的安全性至关重要。

  4. 自动化任务:可以利用特权账号来自动执行一些需要高权限的任务,比如批量更新、部署软件等。

授权管理

  • 资产授权:为用户或用户组分配访问特定资产的权限。

  • 访问控制:设置详细的访问控制策略。

在 JumpServer 中,当你为某个用户或用户组授予对 内网资产(通过网关访问) 的权限时,JumpServer 会自动将该用户对该网关的访问权限一并授予,否则无法实现跳转访问。

  • 如果你给用户 A 授权了 k8s-node2(通过网关 k8s-node1 访问)

  • 那么 JumpServer 会自动给用户 A 添加对网关 k8s-node1 的访问权限

  • 否则用户 A 就无法通过 k8s-node1 去访问 k8s-node2

过滤与命令组

命令过滤是一种策略配置,它定义了用户在通过JumpServer访问资产时可以或不可以执行哪些命令。命令过滤规则可以根据不同的需求进行设置,比如禁止执行某些危险命令(如rm -rf /)、限制对敏感文件的操作等。

  • 名称:为命令过滤规则命名,便于管理和识别。

  • 命令组:选择一个或多个命令组,这些命令组包含了具体的命令列表。

  • 优先级:当存在多个命令过滤规则时,优先级决定了规则的执行顺序,数值越小优先级越高。

  • 激活中:表示该命令过滤规则是否处于启用状态。

  • 备注:可以添加一些额外的说明信息,帮助理解该规则的目的和适用场景。

命令组则是将一系列相关的命令集合在一起,方便在命令过滤规则中引用。

可以创建一个名为“数据库操作”的命令组,包含所有与数据库管理相关的命令;

或者创建一个“系统维护”命令组,包含常见的系统维护命令。

  • 创建命令组:点击“+ 创建”,可以新建一个命令组,并为其添加相应的命令。

  • 编辑命令组:可以在命令组列表中选择某个命令组进行编辑,修改其包含的命令列表。

  • 删除命令组:如果不再需要某个命令组,可以选择删除。

标签列表

管理标签,可以为资产、用户等添加标签,便于快速查找和分类管理。

1.5 PAM

仪表盘

账号管理

  • 功能:集中管理所有用户账号,包括创建、编辑、删除账号以及设置账号权限等操作。

  • 用途:确保账号信息的准确性和安全性,便于对用户进行统一管理。

账号发现

  • 功能:自动扫描和识别网络中的设备及账号信息。

  • 用途:减少手动录入的工作量,确保账号信息的全面性和及时性。

账号备份

  • 功能:定期或按需备份账号数据,防止数据丢失。

  • 用途:保障账号数据的安全性和可恢复性。

账号会话

  • 功能:记录和管理用户账号的登录和操作会话信息。

  • 用途:便于审计和追踪用户的操作行为,确保合规性。

账号活动

  • 功能:监控和记录账号的各种活动,如登录、操作、修改等。

  • 用途:为安全管理提供详细的数据支持,帮助分析和优化系统性能。

1.6 审计台

仪表盘

会话记录

  • 功能:记录用户的所有会话活动,包括登录、操作、退出等详细信息。

  • 用途:便于追踪用户的操作行为,确保合规性和安全性。

会话命令

  • 功能:记录和审计用户在会话过程中执行的所有命令。

  • 用途:帮助管理员审查和分析用户的操作细节,防止误操作或恶意行为。

文件传输

  • 功能:记录用户在会话过程中进行的文件上传和下载操作。

  • 用途:监控文件传输活动,防止敏感数据泄露。

在线用户

  • 功能:显示当前在线的用户列表及其会话状态。

  • 用途:实时监控在线用户,便于管理和调度资源。

登录日志

  • 功能:记录所有用户的登录和登出事件,包括登录时间、IP地址等信息。

  • 用途:帮助管理员追踪用户的登录行为,发现异常登录尝试。

改密日志

  • 功能:记录用户修改密码的操作日志,包括修改时间、新旧密码等信息(通常不直接显示密码)。

  • 用途:监控密码修改活动,确保密码安全策略的执行。

操作日志

  • 功能:记录用户在系统中的所有操作行为,包括增删改查等详细信息。

  • 用途:为系统维护和故障排查提供详细的日志支持。

作业列表

  • 功能:显示所有已创建和执行的作业任务列表,包括作业名称、状态、执行时间等信息。

  • 用途:帮助管理员管理和跟踪作业任务的执行情况。

作业日志

  • 功能:记录每个作业任务的执行日志,包括输出结果、错误信息等详细内容。

  • 用途:便于分析作业执行过程中的问题,优化作业配置和性能。

1.7 其余设置

系统安全设置

MAF认证

公钥生成

SSH公钥认证是一种基于非对称加密技术的身份验证方法,允许用户无需输入密码即可登录系统。这种方法比传统的密码认证更加安全和方便,因为即使攻击者获得了用户名,没有相应的私钥也无法进行登录。

公钥:可以公开分享给任何需要与之建立信任关系的实体。在JumpServer环境中,用户的公钥会被上传到JumpServer服务器,并且可能被部署到目标资产上。

私钥:必须严格保密,仅由持有者保管。当用户尝试登录时,会使用私钥来证明自己的身份。

访问密钥

用途:主要用于API访问认证,允许第三方应用或服务以编程方式与JumpServer进行交互。

使用场景:当你需要通过脚本或其他自动化工具与JumpServer的API接口进行通信时会用到访问密钥。例如,获取资产信息、创建用户等操作。

安全性:由一对“访问密钥ID”和“私有访问密钥”组成,类似于AWS的访问密钥机制,需妥善保管,一旦泄露可能造成安全风险。

http://www.dtcms.com/a/390135.html

相关文章:

  • 同一个电脑内两个进程间如何通信的几种方式
  • 《FastAPI零基础入门与进阶实战》第20篇:消息管理-封装
  • Pyside6 + QML - 信号与槽04 - Python 主动发射信号驱动 QML UI
  • 【系列文章】Linux系统中断的应用06-中断线程化
  • ruoyi-vue(十五)——布局设置,导航栏,侧边栏,顶部栏
  • 第13章 线程池配置
  • 任天堂获得新专利:和《宝可梦传说:阿尔宙斯》相关
  • Redis MONITOR 命令详解
  • 七、Java-多线程、网络编程
  • 三轴云台之动态补偿机制篇
  • MySQL备份与恢复实战指南:从原理到落地,守护数据安全
  • 手机上记录todolist待办清单的工具选择用哪一个?
  • 仓颉编程语言青少年基础教程:Interface(接口)
  • 用 go-commons 打造一个轻量级内置监控系统,让服务开箱即用
  • PyQt6之QSpinBox计数器应用
  • 大模型应用开发4-MCP实战
  • Ruoyi-vue-plus-5.x第八篇文件管理与存储: 8.3 文件处理功能
  • 【51单片机】【protues仿真】基于51单片机PM2.5温湿度测量蓝牙系统
  • 病毒学原理
  • 怎样快速搭建一个高效的数据存储系统:Python实战指南
  • 音频驱动视频生成新突破:Wan2.2-S2V 模型全面体验与教程
  • 关于pc端分页+h5端加载更多的vue3简单钩子函数
  • MySQL 练习题
  • 推客小程序二级分销机制设计与实现:从0到1搭建裂变增长引擎
  • 【C++】多态(上)
  • uos中创建自定义Ip (192.168.137.1)的热点的方法
  • 【每日算法】搜索插入位置 LeetCode
  • vue+springboot+ngnix前后端分离项目部署
  • sward入门到实战(1) - 安装教程
  • 独立站的优势有哪些