1. JumpServer简介
本文部分内容来自ChatGPT。
JumpServer是一款开源的堡垒机系统,是符合 4A 规范的专业运维安全审计系统,提供了Web页面管理、资产管理、权限管理、会话审计等功能。通过JumpServer,用户可以轻松地实现对多个设备的远程访问和管理,同时还能进行权限控制,从而提高了运维效率和安全性。
主要功能:
- 资产管理:对各类设备进行统一管理,支持SSH、RDP、VNC等多种协议。
- 权限管理:用户、用户组、资产、系统用户等多维度权限控制。
- 审计功能:实时会话监控,录像回放,命令审计等。
- Web访问:无需安装客户端,可直接通过浏览器访问设备。
相关文档:
2. 安装JumpServer
2.1. 源码安装
1 | curl -sSL https://github.com/jumpserver/jumpserver/releases/download/v2.28.10/quick_start.sh | bash |
2.2. Docker安装
在安装JumpServer之前,请确保已安装以下组件:
Docker:版本17.12.0以上
Docker Compose:版本1.18.0以上
1、下载JumpServer的Docker Compose配置
1 | git clone https://github.com/jumpserver/Dockerfile.git |
2、修改配置项
1 | cp config_example.conf .env |
修改下面的参数:
1 | SECRET_KEY=my-secret-key |
3、启动JumpServer
1 | docker-compose up -d |
4、访问JumpServer
在浏览器中输入服务器IP地址和8080端口,使用默认的管理员账号admin和密码admin登录。
3. 节点和权限概念
3.1. 节点管理
节点(Node)是JumpServer中的一个逻辑概念,用于对资产进行分组和管理。建议根据组织结构或业务需求来创建和维护节点。
在“资产管理”-“节点列表”中点击“新建节点”按钮。
输入节点名称,如“开发环境”、“生产环境”、“数据库服务器”等。
将相应的资产分配到对应的节点中。
3.2. 权限管理
权限管理是JumpServer的核心功能之一,通过创建不同的用户、用户组、系统用户,可以实现细粒度的权限控制。
- 用户管理:根据实际需要创建用户,如“运维人员”、“开发人员”等,建议接入LDAP。
- 用户组管理:将具有相似权限需求的用户归纳到同一个用户组中,相当于角色,如“运维组”、“开发组”等。
- 系统用户管理:创建系统用户,如“root”、“ubuntu”等,并配置对应的认证信息。
- 资产授权:为用户或用户组分配访问资产的权限。
以下是一个权限管理的示例:
- 在“用户管理”中创建用户“dev01”,并设置其密码。
- 在“用户组管理”中创建用户组“开发组”,并将“dev01”添加到该组中。
- 在“系统用户管理”中创建系统用户“ubuntu”,并配置其认证信息。
- 在“资产管理”-“授权列表”中点击“新建授权”,选择“开发组”作为授权对象,选择相应的资产节点和系统用户,“ubuntu”作为授权系统用户,并设置合适的有效期。
通过以上设置,用户“dev01”将获得访问和管理授权节点中资产的权限。同时,JumpServer会根据授权的有效期自动生效和失效,确保权限在特定时间范围内有效。
注意:不要开启用户名与用户相同的系统用户,否则主机上会创建几十甚至几百个用户,不方便维护。
4. 节点和权限最佳实践
4.1. 节点管理
资源节点分成三类:按地域划分、按业务划分和按组件划分。每个机器属于一个地域节点,同时属于多个业务节点或多个组件节点。
- 按地域划分,例如可以分成腾讯云广州3区、阿里云杭州2区、自建机房北京2区等,每个地域下面可以根据用途再细分成开发、测试和生产。当有新机器加入时,直接添加到这些节点下面。
- 按业务划分,例如可以分成搜索、度秘、语音、地图、商业、文心一言等,每个业务下面可以根据用途再细分成开发、测试和生产。当业务需要机器时,就点击资产更新,把分配的机器加入到对应业务节点下面。
- 按组件划分,例如可以分成K8S、Spark、Hadoop、GitLab等,每个组件下面可以根据用途再细分成开发、测试和生产。当组件需要机器时,就点击资产更新,把分配的机器加入到对应组件节点下面。
4.2. 权限管理
权限管理说明:
- 授权时以业务和用户组为基本单位
- 一个机器可以属于多个业务
- 一个业务包含多个用户组(角色)
- 授权给用户组,而不是给用户
- 每个用户组具有不同的权限
- 一个用户可以属于多个用户组
例如,业务A包含host1和host2两台机器,运维用户组具有系统用户root、dev、qa的权限,开发用户组具有系统用户dev的权限,测试用户组具有系统用户qa的权限。
张三是业务A的开发同学,那么就把他加入到业务A的开发用户组。张三同时还是业务B的运维同学,那么就把他加入到业务B的运维用户组。
5. JumpServer问题记录
参考文档《JumpServer问题记录》