目录
跳板机与堡垒机
跳板机(Jump Server)
堡垒机(Bastion Host)
区别
堡垒机
功能
工作原理
类型
安全运维中的作用
jumpserver 简述
应用场景
技术特点
核心功能
主要组件
基础架构
应用架构
逻辑架构
优势
安转部署及使用
单机部署示例简单介绍
准备安装环境
配置 IP 地址
安装 JumpServer 堡垒机
使用简述
用户管理
资产管理
权限管理
会话管理
日志审计
文件管理
WEB 终端
系统设置
跳板机与堡垒机
跳板机(Jump Server)
跳板机是一种安全中转节点,主要用于提供远程访问企业内部网络的通道。用户(公司远程办公员工、IT远程协助等)需要访问企业内部网络就必须通过跳板机,跳板机可以限制用户的访问内部网络的权限,并记录用户的操作行为,并提供多层身份验证等安全措施,防止非法用户的访问。跳板机可以将外部网络的流量转发到内部网络中,从而实现对内部网络的访问。它通过这种方式,为内部网络提供了一个额外的安全层,并且可以对内部网络的安全进行管理,例如限制某些应用程序的使用、限制访问某些网站等。
堡垒机(Bastion Host)
堡垒机是一种网络安全控制节点,主要用于隔离安全较高的内部网络(企业内网)和安全程度较低的外部网络之间的访问。堡垒机的主要功能包括身份验证、网络流量过滤、应用程序控制、日志记录和审计以及配置管理。它通常部署在内部网络和外部网络的边缘,通过控制用户对内部网络的访问,从而保障企业内部网络的安全。堡垒机可以限制用户的访问权限、记录用户的操作日志,并可以提供多层身份验证等安全措施,以防止非法用户入侵。
区别
跳板机更多地被用作远程访问的中转站,它允许用户通过它来访问内部网络中的其他服务器,但是它本身并不提供对内部网络的保护。而堡垒机则是用来保护内部网络,它通过严格控制访问权限和监控网络流量来防止未授权的访问和潜在的安全威胁。堡垒机通常被视为网络的“看门人”,它直接面对外部威胁,保护内部网络不受侵害。
总结来说,跳板机和堡垒机都是网络安全的重要工具,它们通过不同的方式来确保网络环境的安全和数据的完整性。跳板机侧重于提供安全的远程访问通道,而堡垒机则侧重于保护内部网络免受外部威胁的侵害。
堡垒机
功能
-
身份验证:堡垒机对访问内部网络的用户进行身份验证,确保只有授权用户才能访问。
-
网络流量过滤:它过滤网络流量,防止恶意流量和未经授权的访问。
-
应用程序控制:堡垒机管理对网络和服务器资源的访问,控制应用程序的使用。
-
日志记录和审计:它记录所有通过其进行的操作,为事后审计提供详细日志。
-
配置管理:堡垒机还可以对网络和应用程序进行配置管理,以确保内部网络的安全性和可靠性。
工作原理
堡垒机作为运维人员与目标服务器之间的中介,通过协议代理的方式接管终端计算机对网络和服务器的访问。运维人员的操作请求首先发送到堡垒机,然后由堡垒机代理执行这些操作。这样,所有的操作都会被记录下来,包括屏幕录像和字符操作日志,以便在需要时进行审计。
类型
-
网关型堡垒机:部署在外部网络和内部网络之间,作为进入内部网络的检查点,提供安全访问控制。
-
运维审计型堡垒机:部署在内网中,对运维人员的操作权限进行控制和审计,解决了权限控制和行为审计问题。
安全运维中的作用
在安全运维中,堡垒机提供了一个集中的平台来管理运维权限,全程管控操作行为,并实时还原运维场景。它保障了运维行为的身份可鉴别性、权限可管控性和操作可审计性,解决了资产多难管理、运维职责权限不清晰以及运维事件难追溯等问题。此外,堡垒机还支持多云和混合云环境下的资产统一管理,提供了全球化部署的能力,以及对特权访问行为的管控和智能运维风控与审计。
通过上述解释,我们可以看到堡垒机在网络安全中扮演着至关重要的角色,它不仅保护了内部网络资源免受攻击,还为运维操作提供了全面的审计和控制手段。
jumpserver 简述
JumpServer 是一款由 FIT2CLOUD(飞致远)公司开发的开源堡垒机,它代表了全球首款采用开源模式的堡垒机产品。JumpServer 基于 GNU GPL v2.0 开源协议发布,符合 4A(认证Authentication、授权Authorization、审计Accounting、审批Approval)规范,提供了专业的运维审计解决方案。
JumpServer 作为一款专业的运维安全审计系统,实现了一系列的功能,以满足企业在运维管理、安全控制和合规性方面的需求。以下是 JumpServer 实现的主要功能及其含义:
-
用户组、用户:
-
用户组是为了简化授权流程而设计的,通过将用户分组,可以方便地对一组用户进行统一的权限管理。用户是系统的登录主体,可以进行远程操作和资产管理。用户可以加入不同的用户组,实现批量管理和细粒度的权限控制。
-
资产组、资产、IDC:
-
资产指的是需要被管理的服务器或网络设备。JumpServer 允许用户对资产进行详细的信息记录和自定义备注,同时支持自动获取和更新主机的硬件信息。资产组则是对资产进行分类管理的一种方式,可以对资产组内的所有资产执行统一的操作。IDC(Internet Data Center)指的是互联网数据中心,JumpServer 支持对分布在不同数据中心的资产进行管理。
-
sudo、系统用户、授权规则:
-
sudo 是一种在 Unix 和类 Unix 系统中用来授予用户执行特定命令的权限的机制。JumpServer 支持对 sudo 权限的管理和审计。系统用户是指在操作系统中有登录权限的用户,JumpServer 允许将这些系统用户与 JumpServer 用户关联起来,实现身份映射。授权规则是定义用户、资产和系统用户之间权限关系的策略,确保用户只能执行被允许的操作。
-
在线历史、登录历史、命令记录、上传下载记录:
-
JumpServer 提供了全面的审计功能,可以实时监控用户的在线状态和操作历史。登录历史记录了用户的登录时间和方式,命令记录详细记载了用户执行的每一个命令。上传下载记录则追踪了用户通过 rz 和 sz 命令进行的文件传输活动,确保数据传输的安全性和可追溯性。
-
上传、下载:
-
JumpServer 支持通过标准的 rz 和 sz 命令进行文件的上传和下载操作。这为用户提供了一种简单、安全的方式来传输文件,同时所有的文件传输活动都会被系统记录和审计。
-
默认设置:
-
JumpServer 提供了默认的管理用户设置,包括用户密码和密钥管理。这些默认信息旨在简化资产的添加和管理流程,使得用户可以快速地将新的资产纳入 JumpServer 的管理范围。
应用场景
JumpServer 适用于各种规模的企业和组织,尤其是那些对运维操作安全性和审计要求较高的环境。无论是金融、电信、政府还是其他行业的企业,JumpServer 都能提供稳定、高效、安全的运维审计解决方案。
技术特点
-
开发语言与框架:JumpServer 使用 Python 和 Django 框架进行开发,这使得它具有强大的开发能力和灵活性。Python 作为一种广泛使用的高级编程语言,以其简洁的语法和强大的库支持,为 JumpServer 的开发和后续维护提供了便利。
-
Web 2.0 规范:JumpServer 遵循 Web 2.0 规范,这意味着它具有良好的用户交互性和高度的可扩展性。用户可以通过标准的 Web 浏览器访问 JumpServer,享受现代化的 Web 应用体验。
-
Web Terminal 方案:JumpServer 配备了业界领先的 Web Terminal 解决方案,允许用户直接在浏览器中进行远程终端操作,无需安装额外的客户端软件。这大大提高了用户的工作效率和体验。
-
分布式架构:JumpServer 采用分布式架构设计,支持多机房跨区域部署。中心节点提供 API 接口,各机房可以部署登录节点,实现横向扩展,无资产数量及并发访问的限制。
核心功能
-
协议转发节点:JumpServer 作为终端计算机和服务器资产之间的中间协议转发节点,对所有目标资产的请求进行转发。它可以拦截非法访问,阻断不合规的危险命令,并对内部人员的所有操作进行审计监控。
-
安全审计:JumpServer 的核心功能之一是安全审计。它能够记录和监控所有通过该系统进行的操作,为事后审计提供详实的数据支持。这有助于企业及时发现和响应潜在的安全威胁,同时也为合规性检查提供了依据。
-
多协议支持:JumpServer 支持管理多种常见的远程访问协议,包括 SSH、Telnet、RDP 和 VNC,这使得它可以广泛应用于不同的网络环境和系统平台。
主要组件
JumpServer 作为一款全面的开源堡垒机,其架构设计包含了多个关键组件,每个组件都有其独特的功能和作用,共同构成了整个系统的完整解决方案。
-
Jumpserver:
-
这是 JumpServer 堡垒机的核心组件,提供了一个管理后台界面,允许管理员通过 Web 页面进行各种管理和配置操作。
-
在 Jumpserver 中,管理员可以管理资产信息,包括添加、修改、删除服务器和网络设备等。
-
用户管理功能允许管理员创建和管理用户账户,分配用户角色和权限,以及对用户进行组管理。
-
资产授权功能使得管理员可以根据策略对用户进行资产访问授权,确保只有授权用户才能访问特定的资产。
-
此外,Jumpserver 还负责处理用户会话管理、审计日志记录等关键任务,确保所有的操作都有迹可循。
-
Koko:
-
Koko 是 JumpServer 中负责提供 SSH 服务的组件,它允许用户通过 SSH 协议安全地连接到资产。
-
除了 SSH 服务,Koko 还提供了 Web Terminal 服务,用户可以通过 Web 浏览器直接访问资产的命令行界面,无需额外的客户端软件。
-
Koko 通过接收来自 Jumpserver 的指令,代理用户与资产之间的连接,确保所有的远程访问都是经过认证和授权的。
-
Lina:
-
Lina 是 JumpServer 的前端组件,提供了用户与系统交互的 Web 界面。
-
通过 Lina,用户可以登录到 JumpServer,执行各种操作,如资产访问、文件传输、会话管理等。
-
Lina 设计上注重用户体验,提供了直观、易用的界面,使得用户可以轻松地完成复杂的操作。
-
Luna:
-
Luna 是 JumpServer 中负责提供 Web 前端页面的组件,它与 Lina 协同工作,提供用户友好的界面。
-
Luna 的设计旨在提高用户的工作效率,通过清晰的布局和直观的操作流程,使用户能够快速找到所需功能。
-
未来,Luna 可能会与 Lina 合并,以简化架构和提高性能。
-
Guacamole:
-
Guacamole 是 JumpServer 用于提供 RDP 功能组件,允许用户通过 RDP 协议远程访问 Windows 资产。
-
通过 Guacamole,用户可以在 Web 浏览器中直接访问 Windows 桌面环境,无需安装额外的远程桌面客户端。
-
这种方式特别适合于需要远程管理 Windows 服务器的场景,同时也支持通过 Web Terminal 访问其他类型的资产。
这些组件共同构成了 JumpServer 堡垒机的强大功能,提供了一个全面的解决方案,以满足企业在运维管理和安全审计方面的需求。通过这些组件的紧密合作,JumpServer 能够为用户提供一个安全、高效、易于管理的远程访问环境。
基础架构
JumpServer 的基础架构设计采用了分层架构,以确保系统的高可用性、可扩展性和安全性。
应用架构
-
负载层:
-
负责系统的流量分发和负载均衡,确保用户请求可以均匀地分配到不同的服务器上,提高系统的处理能力和可用性。
-
接入层:
-
作为用户访问的第一入口,处理用户的连接请求,进行初步的安全检查和用户认证,确保只有合法用户可以进入系统。
-
核心层:
-
包含 JumpServer 的核心组件,是整个系统运行的中心。核心组件负责处理会话管理、权限控制、资产连接等关键任务。
-
数据层:
-
存储系统的所有数据,包括用户信息、资产信息、会话记录等。数据层的设计需要保证数据的安全性和可靠性。
-
存储层:
-
负责存储系统产生的各种日志和录像文件。存储层通常采用高性能、大容量的存储设备,以满足大量数据的存储需求。
逻辑架构
JumpServer 的逻辑架构设计考虑了系统的分布式特性,支持多机房跨区域部署。中心节点提供 API 接口,各机房部署登录节点,可以实现横向扩展,无资产数量及并发访问限制。
优势
-
开源:
-
JumpServer 基于开源许可协议,用户可以零门槛获取源代码和安装包。这意味着用户可以免费使用 JumpServer,同时也能够根据需要对源代码进行修改和定制,以适应特定的业务需求。开源的特性也促进了社区的活跃,使得 JumpServer 能够快速迭代和持续改进。
-
分布式:
-
JumpServer 支持分布式架构,能够轻松应对大规模并发访问的挑战。这种架构允许系统在多个服务器上运行,通过负载均衡和故障转移机制,确保服务的高可用性和稳定性。这对于需要处理大量用户请求和资产管理的大型企业或服务提供商来说尤为重要。
-
无插件:
-
JumpServer 提供了极致的 Web Terminal 使用体验,用户无需安装任何插件即可通过浏览器直接访问资产。这种无插件的设计简化了用户的使用流程,降低了安全风险,并提高了跨平台兼容性,使得用户可以在任何设备上通过 Web 浏览器安全地进行远程操作。
-
多云支持:
-
在多云环境中,JumpServer 能够统一管理分布在不同云平台上的资产。这种跨云管理能力使得企业可以在多个云服务提供商之间灵活地迁移和扩展资源,同时保持一致的安全管理策略和操作体验。
-
云端存储:
-
JumpServer 支持将审计录像存储在云端,确保数据的持久性和可靠性。这种云端存储解决方案不仅避免了本地存储的局限性,还提供了易于扩展的存储容量,保障了审计数据的完整性和可追溯性。
-
多租户:
-
JumpServer 支持多租户架构,允许多个子公司或部门共享同一套系统资源。这种架构使得每个租户都可以拥有独立的管理空间和权限设置,同时减少了资源冗余和重复投资。这对于大型组织和云服务提供商来说,是一种高效的资产管理和成本控制策略。
安转部署及使用
在 JumpServer 官网上提供了多种部署方式,以适应不同用户的需求和环境。以下是这些部署方式的简要介绍:
-
一键部署:
-
这是一种非常快捷和简便的部署方式,用户可以通过官网提供的自动化脚本来完成 JumpServer 的安装和配置。这种方式适合对 JumpServer 有一定了解,并且希望快速部署的用户。但是,由于自动化脚本可能无法覆盖所有定制化需求,因此这种方式可能存在一些限制。
-
手动部署:
-
手动部署方式需要用户对 JumpServer 的安装和配置过程有更深入的了解。用户需要按照官方文档中的步骤,逐一完成环境准备、依赖安装、系统配置等操作。这种方式适合有一定系统管理经验的用户,可以更灵活地根据实际需求进行配置。
-
离线部署 (amd64):
-
离线部署方式适用于无法直接连接到互联网环境的用户。用户需要下载官网提供的离线安装包,然后在本地环境中进行安装和配置。这种方式对于受限制的网络环境非常有用,但需要用户对部署过程有一定的了解。
-
离线部署 (arm64):
-
类似于 amd64 的离线部署,这种方式也是为无法连接互联网的环境设计的。用户需要下载适用于 arm64 架构的离线安装包,并在相应的硬件平台上进行安装和配置。
-
源码部署:
-
源码部署是所有部署方式中难度较高的一种。用户需要从官网下载 JumpServer 的源代码,然后根据系统架构和需求进行编译和配置。这种方式适合对 JumpServer 有深入了解,并且需要进行高度定制化的用户。
-
容器部署:
-
容器化部署需要用户对 Kubernetes (K8s) 有一定的熟悉度。通过 Docker 和 Kubernetes,用户可以在容器环境中部署和管理 JumpServer。这种方式提供了更高的灵活性和可扩展性,适合现代化的 DevOps 环境。
选择哪种部署方式取决于用户的技术背景、具体需求以及可用资源。对于初学者来说,一键部署可能是最方便的选择。而对于希望深入学习 JumpServer 并进行定制化部署的用户,手动部署或源码部署可能更加合适。容器部署则适合那些已经在使用 Kubernetes 进行容器化管理的用户。每种部署方式都有其独特的优势和适用场景,用户可以根据自己的实际情况进行选择。
单机部署示例简单介绍
准备安装环境
首先,需要准备一个安装环境,这可以是一台裸物理服务器或者虚拟化平台上的一台虚拟机。需要在这台机器上安装 CentOS 7 操作系统。可以从 CentOS Vault Mirror 网站下载 CentOS 7 的镜像文件:Index of /。
配置 IP 地址
在安装操作系统后,需要配置网络。以下是配置网络的步骤:
-
查看网卡名字:使用
ip addr
或ifconfig
命令查看可用的网络接口。 -
配置网卡 IP 地址:以
ens33
网卡为例,编辑/etc/sysconfig/network-scripts/ifcfg-ens33
文件。 -
进入编辑模式:使用
vi
编辑器打开配置文件。 -
设置
BOOTPROTO
为static
以使用静态 IP 地址。 -
设置
ONBOOT
为yes
以确保开机时网卡激活。 -
填写
IPADDR
(IP 地址)、NETMASK
(子网掩码)、GATEWAY
(网关)和DNS1
、DNS2
(DNS 服务器地址)。 -
保存并退出编辑模式:按
Esc
键退出编辑模式,然后输入:wq
保存更改并退出。 -
重启网卡:使用
systemctl restart network
或service network restart
命令重启网络服务。
安装 JumpServer 堡垒机
接下来,可以开始安装 JumpServer 堡垒机:
-
从 JumpServer 官网:JumpServer - 开源堡垒机 - 官网下载离线安装包,并上传到 Linux 服务器的
/opt
目录。可以使用 FileZilla 等 FTP 客户端软件来上传文件。 -
在
/opt
目录下解压安装包:使用tar
命令解压下载的安装包。 -
进入解压后的安装包文件夹,并执行安装程序
./jmsctl.sh install
。 -
启动 JumpServer 服务
./jmsctl.sh start
。 -
使用默认的 Web 界面地址和账号密码登录 JumpServer。初次登录时,系统会提示更改初始密码。
至此 jump server 堡垒机的搭建就完成了
使用简述
官 方 文 档:JumpServer 文档
用户管理
- 用户列表:在此功能下,管理员可以创建新的用户账号,管理用户的基本信息,并设置多因子认证(MFA)选项。MFA 提高了账户的安全性,要求用户在登录时提供额外的验证信息。
资产管理
-
资产列表:管理员可以添加和管理需要被堡垒机管理的资产,如服务器、交换机、PC 等。在添加资产时,需要确保资产的远程服务已经配置好。
-
网域列表:此功能允许管理员创建网域和网关服务器,以便在网络隔离的环境中实现资产的远程管理。
-
系统用户:在此功能下,管理员可以为每个资产创建登录用户,并设置认证方式,如托管密码或手动输入。
权限管理
- 资产授权:管理员可以将特定的资产授权给用户,使用户能够访问和管理这些资产。
会话管理
- 会话管理:管理员可以查看当前在线的会话和历史会话,对会话进行监控、中断和审计。
日志审计
-
登录日志:记录用户的登录信息,帮助管理员追踪用户的登录行为。
-
FTP 日志:记录用户通过 FTP 传输的文件信息。
-
操作日志:记录平台用户的操作历史。
文件管理
- 文件管理:JumpServer 提供了文件管理功能,允许用户通过 Web 界面管理资产上的文件。
WEB 终端
- WEB 终端:用户可以使用 WEB 终端功能连接支持 SSH/Telnet 协议的资产,并享受自定义主题的终端体验。
系统设置
-
基本设置:管理员可以设置 JumpServer 的访问 URL 等基本信息。
-
邮件设置:配置邮件服务器信息,以便 JumpServer 可以发送邮件通知。
-
认证设置:配置认证方式,如微信认证、钉钉认证等。
-
安全设置:设置安全相关的选项,如密码策略、会话超时等。
-
定期清理:设置定期清理任务,以维护系统的性能和安全。
-
更改端口:管理员可以根据需要更改 WEB 和命令行的端口设置。