目录
一、简介
1.跳板机
1.1 跳板机简介
跳板机就是一台服务器,具备公网和内网,我们的开发人员或者运维人员,要想维护内部集群服务时,需要先统一登陆到跳板机这台服务器,然后在通过跳板机的内网登陆目标集群服务器
1.2 跳板机缺陷
没有实现对运维人员操作行为的控制和审计,使用跳板机的过程中还是会出现误操作,违规操作导致故障,一旦出现操作事故很难快速定位到原因和责任人;此时堡垒机就诞生了。
2. 堡垒机
2.1 简介
堡垒机,即在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手段实时收集和监控网络环境中每一个组成部分的系统状态、安全事件、网络活动,以便集中报警、及时处理及审计定责。
其从功能上讲,它综合了核心系统运维和安全审计管控两大主干功能。从技术实现上讲,通过切断终端计算机对网络和服务器资源的直接访问,而采用协议代理的方式,接管了终端计算机对网络和服务器的访问。形象地说,终端计算机对目标的访问,均需要经过堡垒机的翻译。打一个比方,堡垒机扮演着看门者的工作,所有对网络设备和服务器的请求都要从这扇大门经过。因此堡垒机能够拦截非法访问和恶意攻击,对不合法命令进行阻断,过滤掉所有对目标设备的非法访问行为,并对内部人员误操作和非法操作进行审计监控,以便事后进行责任追踪。
堡垒机其实是基于跳板机基础之上,能够实现运维更加安全的操作目标集群服务器,提供安全保证。
- 资产集中管理(统一管理)
- 审计,记录,视频回放操作记录
- 限制如rm,dd等危险命令的执行
- 限制登陆目标服务器的身份权限
2.2 为什么要使用堡垒机
在日常对网络设备和服务器运行维护的过程中,常常会出现如下一些主要问题:
- 多个用户使用同一个账号管理一台设备。这种做法会导致发生安全事故后,难以定位账号的实际使用者和责任人,存在较大安全风险和隐患。
- 一个用户使用多个账号管理多台设备。目前,这种做法是比较普遍的,一个运维人员往往需要管理很多设备,他需要记忆多套账号口令,在多套主机系统、网络设备之间切换。这种做法会降低工作效率,增加工作复杂度。
- 现在的网络设备和服务器大多数是被动防御,即在安全问题发生后人为的通过日志分析去定位安全责任,这种做法很难及时通过系统自身审计发现违规操作行为和追查取证。
随着堡垒机的上线,我们可以解决上述这些问题,以及其他的诸如访问控制、自动化操作等问题。
2.3 堡垒机设计理念
堡垒机提供了运维安全审计的4A规范:即认证(Authen)、授权(Authorize)、账号(Account)、审计(Audit)为核心
- Authentication:身份鉴别,防止身份冒用和复用
- Authorization:授权控制,防止内部误操作和权限滥用
- Accouting:账号管理,人员和资产的管理
- Auditing:安全审计,追溯和分析事故的依据
2.4 堡垒机的建设目标
其次堡垒机的建设目标可以概况为5W,主要是为了减低运维风险。
- what审计:你做了什么?
- which授权:你能做哪些?
- where账号:你要去那?
- who:认证你是谁?
- when来源:访问时间?
2.5 堡垒机的价值
- 集中管理
- 集中权限分配
- 统一认证
- 集中审计
- 数据安全
- 运维高效
- 运维合规
- 风险管控
2.6 总结
堡垒机能让运维更安全,更加便捷的登陆目标资产服务 堡垒机还可以帮助企业快速构建“身份鉴别,访问控制,安全审计”,助力企业满足新等保要求。什么是等保?
所有企业都需要使用堡垒机。因为堡垒机是企业进行“资产管理,运维安全审计”的重要组件。
2.7 堡垒机的分类
堡垒机分为商业堡垒机和开源堡垒机
开源软件毫无疑问将是未来的主流。Jumpserver 是全球首款完全开源的堡垒机,是符合 4A 的专业运维审计系统,GitHub Star 数超过 1.1 万,Star 趋势就可以看出其受欢迎程度
2.8 堡垒机的流向原理
目前常见堡垒机的主要功能分为以下几个模块:
1.运维平台
RDP/VNC运维;SSH/Telnet运维;SFTP/FTP运维;数据库运维;Web系统运维;远程应用运维;
2.管理平台
三权分立;身份鉴别;主机管理;密码托管;运维监控;电子工单;
3.自动化平台
自动改密;自动运维;自动收集;自动授权;自动备份;自动告警;
4.控制平台
IP防火墙;命令防火墙;访问控制;传输控制;会话阻断;运维审批;
5.审计平台
命令记录;文字记录;SQL记录;文件保存;全文检索;审计报表;
说明:三权分立
三权的理解:配置,授权,审计
三员的理解:系统管理员,安全保密管理员,安全审计员
三员之三权:废除超级管理员;三员是三角色并非三人;安全保密管理员与审计员必须非同一个人
2.9 堡垒机的身份认证
堡垒机主要就是为了做统一运维入口,所以登录堡垒机就支持灵活的身份认证方式:
- 本地认证:本地账号密码认证,一般支持强密码策略
- 远程认证:一般可支持第三方AD/LDAP/Radius认证
- 双因子认证:UsbKey、动态令牌、短信网关、手机APP令牌等
- 第三方认证系统:OAuth2.0、CAS等。
2.10 堡垒机的运维方式常见有以下几种
- B/S运维:通过浏览器运维。
- C/S运维:通过客户端软件运维,比如Xshell,CRT等。
- H5运维:直接在网页上可以打开远程桌面,进行运维。
- 无需安装本地运维工具,只要有浏览器就可以对常用协议进行运维操作,支持ssh、telnet、rlogin、rdp、vnc协议
- 网关运维:采用SSH网关方式,实现代理直接登录目标主机,适用于运维自动化场景。
2.11 堡垒机的其它常见功能
- 文件传输:一般都是登录堡垒机,通过堡垒机中转。使用RDP/SFTP/FTP/SCP/RZ/SZ等传输协议传输。
- 细粒度控制:可以对访问用户、命令、传输等进行精细化控制
- 支持开放的API
二. JumpServer
1. JumpServer 介绍
JumpServer 是由 FIT2CLOUD(飞致远)公司旗下一款开源的堡垒机,这款也是全球首款开源的堡垒机,使用 GNUGPLv2.0 开源协议,是符合4A规范的运维安全审计系统,使用Python开发,遵循Web 2.0规范,配备了业界领先的 WebTerminal方案,交互界面美观、用户体验好,同时采纳分布式架构,支持多机房跨区域部署以及横向扩展,无资产数量及并发限制。
JumpServer 是全球首款完全开源的堡垒机,使用GNUGPLv2.0开源协议,是符合4A的专业运维审计系统。 JumpServer使用Python/Django进行开发,遵循Web2.0规范,配备了业界领先的 WebTerminal解决方案,交互界面美观、用户体验好。
JumpServer 采纳分布式架构,支持多机房跨区域部署,中心节点提供API,各机房部署登录节点,可横向扩展、无并发访问限制。
JumpServer现已支持管理SSH、Telnet、RDP、VNC协议资产。
堡垒机的核心功能是“运维+安全审计”,要实现这一目标,需要在终端计算机和服务器资产中间加一层协议转发节点,多有对目标资产的请求都需要经过这一节点,该节点能够拦截非法访问,阻断不合规的危险命令,并对内部人员的所有操作进行审计监控,一遍进行时候追溯,以上所说的中间节点就是堡垒机。堡垒机在网络环境中的经典
2. JumpServer架构
JumpServer 采用分层架构,分别是负载层、接入层、核心层、数据层、存储层
JumpServer 基础架构
3. JumpServer 组件
- Core 组件是 JumpServer 的核心组件,其他组件依赖此组件启动。
- Koko 是服务于类 Unix 资产平台的组件,通过 SSH、Telnet 协议提供字符型连接。
- Lion 是服务于 Windows 资产平台的组件,用于 Web 端访问 Windows 资产。
- XRDP 是服务于 RDP 协议组件,该组件主要功能是通过 JumpServer Client 方式访问 windows 2000、XP 等系统的资产。
- Razor 是服务于 RDP 协议组件,JumpServer Client 默认使用 Razor 组件访问 Windows 资产。
- Magnus 是服务于数据库的组件,用于通过客户端代理访问数据库资产。
- Kael 是服务于 GPT 资产平台的组件,用于纳管 ChatGPT 资产。
- Chen 是服务于数据库的组件,用于通过 Web GUI 方式访问数据库资产。
- Celery 是处理异步任务的组件,用于执行 JumpServer 相关的自动化任务。
- Video 是专门处理 Razor 组件和 Lion 组件产生录像的格式转换工作,将产生的会话录像转化为 MP4 格式。
- Panda 是基于国产操作系统的应用发布机,用于调度 Virtualapp 应用
JumpServer 的主要组件有四个,分别为:jumpserver、Koko、Luna、 Guacamole
- Jumpserver:提供管理后台,管理员可以通过 web 页面进行资产管 理,用户管理和资产授权等操作。
- koko:提供 SSH server 和 web Termianal server 方式登陆资产
- Lina Luna:提供 web 前端页面,后续会将整合到 Lina 中
- Guacamole:提供 RDP 功能,用户可通过该方式登陆 windows 资产。
4. JumpServer优势
- 开源:零门槛,线上快速获取和安装;
- 分布式:轻松支持大规模并发访问;
- 无插件:仅需浏览器,极致的 Web Terminal 使用体验;
- 多云支持:一套系统,同时管理不同云上面的资产;
- 云端存储:审计录像云端存储,永不丢失;
- 多租户:一套系统,多个子公司和部门同时使用;
- 多应用支持:数据库,Windows 远程应用,Kubernetes。
5. JumpServer实现的功能
名词 | 含义 |
---|---|
用户组、用户 | 添加组方便进行授权,用户是授权和登录的主体,用户可以加入用户组,进行批量管理 |
资产组、资产、IDC | 资产就是管理的机器(主机),主机信息简洁完整,用户自定义备注登录,支持自动获取主机的硬件信息,资产同样可以加入资产组,进行批量管理 |
SUDO、系统用户、授权规则 | 支持sudo用户授权,系统用户用于登录客户端,授权规则是将用户、资产和系统用户关联起来 |
在线历史、登录历史、命令记录、上传下载记录 | 在线实时监控用户操作,统计用户命令记录,录像回放用户操作内容,阻断控制,详细记录用户上传和下载 |
上传、下载 | 支持文件的上传和下载,实现方式是使用rz(上传)和sz(下载)命令 |
默认设置 | 默认管理用户,设置包括用户密码密钥,默认信息为了方便添加资产而设计 |
6. Authentication——身份验证
- 登录认证:资源统一登录和认证、LDAP 认证、支持 OpenID,实现单点登录
- 多因子认证:MFA(Google Authenticator)
7. Account——账号管理
- 集中账号管理:管理用户管理、系统用户管理
- 统一密码管理:资产密码托管、自动生成密码、密码自动推送、密码过期设置
- 批量密码变更:定期批量修改密码、生成随机密码
- 多云环境的资产纳管:对私有云、公有云资产统一管理
8. Authorization——授权控制
- 资产授权管理:资产树、资产或资产组灵活授权、节点内资产自动继承授权
- RemoteApp:实现更细粒度的应用级授权
- 组织管理:实现多租户管理,权限隔离
- 多维度授权:可以对用户、用户组或者系统角色授权
- 指令限制:限制特权指令使用、支持黑白名单
- 统一文件传输:SFTP 文件的上传\下载
- 文件管理:Web SFTP 文件管理
9. Audit——安全审计
- 会话管理:在线会话管理、历史会话管理
- 录像管理:linux 录像支持、windows 录像支持
- 指令审计:指令记录
- 文件传输审计:上传\下载记录审计
三. JumpServer 安装部署
1. 部署方式
1.1 单机部署
堡垒机主要都是旁路部署,旁挂在交换机旁边,只要能访问所有设备即可
特点:
- 旁路部署,逻辑串联。
- 不影响现有网络结构。
1.2 HA高可用部署
旁路部署两台堡垒机,中间有心跳线连接,同步数据。对外提供一个虚拟IP
特点:
- 两台硬件堡垒机,一主一备/提供VIP。
- 当主机出现故障时,备机自动接管服务。
1.3 异地同步部署
通过在多个数据中心部署多台堡垒机。堡垒机之间进行配置信息自动同步
特点:
- 多地部署,异地配置自动同步
- 运维人员访问当地的堡垒机进行管理
- 不受网络/带宽影响,同时祈祷灾备目的
1.4 集群部署(分布式部署)
当需要管理的设备数量很多时,可以将n多台堡垒机进行集群部署。其中两台堡垒机一主一备,其他n-2台堡垒机作为集群节点,给主机上传同步数据,整个集群对外提供一个虚拟IP地址
特点:
- 两台硬件堡垒机,一主一备、提供VIP
- 当主机出现故障时,备机自动接管服务。
2. 下载JumpServer安装包
目前,常用的堡垒机有收费和开源两类。收费的有行云管家、纽盾堡垒机,开源的有JumpServer 这几种各有各的优缺点,如何选择,大家可以根据实际场景来判断
我们安装的是Linux操作系统的JumpServer,所以需要准备Centos的操作系统,目前大部分环境都在使用Centos7。
Centos7 镜像下载网址:https://vault.centos.org/
JumpServer的安装包下载地址:https://www.jumpserver.org/
3. 安装JumpServer
cd /opt
tar zxvf jumpserver-offline-installer-v3.10.9-amd64.tar.gz
cd jumpserver-offline-installer-v3.10.9-amd64/
./jmsctl.sh install
#等待安装即可 如遇到y/n回车即可
>>> 安装完成了
1. 可以使用如下命令启动, 然后访问
cd /opt/jumpserver-offline-installer-v3.10.9-amd64
./jmsctl.sh start
2. 其它一些管理命令
./jmsctl.sh stop
./jmsctl.sh restart
./jmsctl.sh backup
./jmsctl.sh upgrade
更多还有一些命令, 你可以 ./jmsctl.sh --help 来了解
3. Web 访问
http://192.168.44.20:80
默认用户: admin 默认密码: admin
4. SSH/SFTP 访问
ssh -p2222 admin@192.168.44.20
sftp -P2222 admin@192.168.44.20
5. 更多信息
我们的官网: https://www.jumpserver.org/
我们的文档: https://docs.jumpserver.org/
4. 启动并访问
cd /opt/jumpserver-offline-installer-v3.10.9-amd64
./jmsctl.sh start
http://192.168.44.20:80
默认用户: admin 默认密码: admin
会显示初始密码过于简单(这里建议更改密码)
成功登录