schlpr0k/IronJump
GitHub: schlpr0k/IronJump
IronJump 是一个基于 Bash 的强化型 SSH 堡垒机框架,用于在 IT/OT 环境中快速部署和管理安全的跳板机与端点访问控制。
Stars: 4 | Forks: 2
# IronJump SSH 管理套件 - 管理员使用指南
欢迎使用 **IronJump**,这是一个专为 IT、网络安全和 OT 环境打造的强化型 SSH 堡垒机和端点管理系统。本指南为在实际基础架构部署中管理 IronJump 的系统管理员提供了详细的操作说明。
## 目录
- [关于 IronJump](#about-ironjump)
- [什么是 IronJump?](#what-is-ironjump)
- [IronJump 的重要性](#why-ironjump-matters)
- [哪些人应该使用它?](#who-should-use-this)
- [示例用例](#example-use-cases)
- [入门指南](#getting-started)
- [Root 服务器管理](#root-server-management)
- [配置与部署管理](#configuration--deployment-management)
- [用户账户管理](#user-account-management)
- [端点设备账户管理](#endpoint-device-account-management)
- [端点设备管理](#endpoint-device-management)
- [访问控制管理](#access-control-management)
- [分配](#assignments)
- [批量分配与撤销](#mass-assignments--revocation)
- [更改角色类型](#change-role-type)
- [系统实用工具](#system-utilities)
- [最后说明](#final-notes)
- [离线部署](#offline-deployments)
## 关于 IronJump
### 什么是 IronJump?
IronJump 是一个用 Bash 编写的强化型 SSH 堡垒机和端点管理框架。它允许安全专业人员和管理员在包括 IT、OT 和远程系统在内的混合基础架构中安全地部署和维护跳板机及端点设备,而无需依赖基于云的访问代理或第三方组件。IronJump 实施严格的访问控制,简化了 SSH 密钥管理,并包含自动化工具来强化服务、管理用户,以及利用 autossh 促进安全的反向隧道。它是为那些要求高信任度、低开销和完全操作控制权的环境而构建的。
### IronJump 的重要性
许多组织难以在分布式基础架构中平衡访问的便利性与强大的安全控制。传统的跳板机通常存在配置错误、权限过大或缺乏标准化部署和管理的问题。IronJump 通过提供统一且基于角色的管理界面来解决这一问题,以处理服务器和端点的配置,所有这些都通过一个独立、可审计的 Bash 框架完成。
IronJump 在提高可见性、可审计性和控制力的同时,降低了管理的复杂性。
### 哪些人应该使用它?
* 在执行任务期间建立隔离的、一次性堡垒机的渗透测试人员
* 管理对敏感 IT/OT 网络远程访问的安全团队
* 为本地或混合系统部署 SSH 访问的 DevOps 工程师
* 管理访问层级和通往受感染基础架构的回传隧道的红队
* 用强化的自动化替代脆弱且无文档记录的堡垒机设置的系统管理员
### 示例用例
1. **安全的现场设备访问**:通过具有 SSH 密钥过期机制的强化型中央跳板机,授予工程师对远程 OT 设备的临时访问权限。
2. **渗透测试基础架构**:在内部评估期间部署临时 SSH 堡垒机,通过受控隧道安全地路由流量。
3. **远程 Linux 主机的反向隧道访问**:将不受信任或漫游的设备连接回中央 IronJump 堡垒机,以实现安全的远程访问。
4. **分层管理员管理**:为关键端点上的不同管理员级别分配唯一的 SSH 密钥和过期日期。
5. **事件响应遏制**:快速部署 IronJump 以隔离受感染的主机,同时维持用于取证的受控访问。
## 入门指南
### 安装
```
sudo git clone --recurse-submodules https://github.com/schlpr0k/IronJump.git /opt/IronJump
cd /opt/IronJump
sudo chmod +x IronJump.sh
sudo ./IronJump.sh
```
此外,在首次运行 /opt/IronJump/IronJump.sh 之后,您也可以从任何地方运行 IronJump:
```
sudo ironjump
```
## Root 服务器管理
仅在系统角色设置为 `SERVER` 或 `HYBRID` 时可用。
### 配置与部署管理
**菜单路径:** `主菜单` → `Root 服务器管理` → `配置与部署`
- **1. 查看配置文件**
- 以只读模式显示 IronJump 配置文件。
- **2. 修改配置文件**
- 使用 `vi` 打开配置文件。使用 `:wq` 保存更改
- **3. 部署 IronJump Root 服务器**
- 检查角色是否已经是 `SERVER`。如果不是,则运行 `f_setup_ironjump` 函数。
- **4. 生成文件和日志归档**
- 将日志、配置和 SSH 密钥收集到一个压缩归档文件中。
- **H. 强化 SSH 服务**
- 将 IronJump 安全标准应用到 `sshd_config`
### 用户账户管理
**菜单路径:** `Root 服务器管理` → `用户账户管理`
- **1. 列出当前的 IronJump 用户**
- **2. 创建新的 IronJump 用户**
- **3. 启用现有用户**
- **4. 禁用用户**
- **5. 删除用户**
- **6. 更改 SSH 公钥**
- **7. 设置用户账户过期时间**
每个功能都管理 `ironjump_users` 组中的用户。
### 端点设备账户管理
**菜单路径:** `Root 服务器管理` → `端点设备账户管理`
- **1. 列出端点账户**
- **2. 创建新的端点账户**
- **3. 启用端点**
- **4. 禁用端点**
- **5. 删除端点**
- **6. 更改端点 SSH 密钥**
- **7. 设置端点过期日期**
## 端点设备管理
仅在角色为 `ENDPOINT` 或 `HYBRID` 时可用。
**菜单路径:** `主菜单` → `端点设备管理`
- **1. 连接到 IronJump 服务器**
- 注册端点。如果已经配置为 `ENDPOINT`,将不会继续执行
- **2. 强制执行计划外权限同步**
- 手动与 Root 服务器同步用户/权限数据
- **3. 生成归档**
- 收集端点文件、日志和配置
- **4. 强化 SSH 服务**
- 为端点应用 SSH 安全配置
- **D. 熔炼 (SMELT) 此端点**
- **警告:** 不可逆操作。清除所有 IronJump 数据
## 访问控制管理
仅适用于 `SERVER` 和 `HYBRID` 角色。
**菜单路径:** `主菜单` → `访问控制管理`
### 分配
- **1. 列出所有分配**
- 显示当前所有用户到端点的分配
- **2. 允许或修改分配**
- **子菜单:**
- 按用户:将端点分配给特定用户
- 按端点:将用户分配给特定端点
- **3. 撤销分配**
- **子菜单:**
- 按用户:移除用户对特定端点的访问权限
- 按端点:从端点移除所有用户
### 批量分配与撤销
- **4. 允许/撤销用户的所有端点权限**
- 快速授予/撤销用户对所有端点的访问权限
- **5. 撤销所有分配**
- **警告:** 全局重置所有访问控制关系
## 更改角色类型
**菜单路径:** `主菜单` → `更改角色类型`
- 提示管理员选择新角色:
- `SERVER`
- `ENDPOINT`
- `HYBRID`
- `UNASSIGNED`
- 更新存储在 `/opt/IronJump/ironjump.role` 中的角色标志
## 系统实用工具
可从任何菜单访问:
- **S. SSH 监控**
- 通过 `lsof`、`netstat` 或类似工具显示活动连接
- **R. 重启服务器**
- 确认后重启主机
- **Q. 退出**
- 返回至 shell
## 最后说明
- 日志存储在 `/var/log/ironjump.log` 中
- 每个菜单级别都强制执行特定于角色的行为
- 为了实现完全自动化,请确保正确克隆了 `autossh`:
```
sudo git clone --recurse-submodules https://github.com/schlpr0k/IronJump.git /opt/IronJump
```
### 离线部署
- 对于离线部署(设置期间没有互联网访问),主机上必须安装以下软件包:
- IronJump 服务器:gcc make lsof ssh openssh-client openssh-server diceware
- Ingots (端点):gcc make lsof ssh openssh-client openssh-server
- 如果您可以从目标端点 SSH 登录到 IronJump 堡垒机服务器,请使用 scp 将 /opt/IronJump 文件夹克隆到端点。代码是完全一样的。
如遇问题或需要支持,请在 [GitHub Issues](https://github.com/schlpr0k/IronJump/issues) 提交工单。标签:Bash, SSH, Streamlit, 内存分配, 堡垒机, 应用安全, 访问控制, 跳板机, 运维工具