bobbymayyy/DIP
GitHub: bobbymayyy/DIP
DIP 是一个基于 Ansible 和 shell 脚本的可部署基础设施平台,专为快速搭建事件响应和防御性网络作战所需的一体化网络环境而设计。
Stars: 0 | Forks: 0
# DIP:可部署基础设施平台
**DIP** 是一个可部署的基础设施平台,旨在快速搭建事件响应和防御性网络作战基础设施。该项目分为两个平台分支:
- **DIP**:基于 Proxmox VE 的部署路径
- **DIPx**:基于 VMware ESXi 的部署路径
其目标是使可重复的基础设施部署变得更加快速、一致,并在对时间敏感的响应场景中更加实用,在这些场景下,团队需要快速建立网络、协作、存储、问题跟踪和安全监控。
## 该项目的功能
DIP 使用 shell 编排和 Ansible playbooks 自动化部署小型且随时可用的响应基础设施技术栈。其设计理念是:事件响应环境应当是可复现、可移植且能够快速重建的。
从宏观层面来看,DIP 可以协助部署:
- Proxmox VE 集群配置
- OPNsense 路由和虚拟交换
- 用于本地文件共享和存储的 Nextcloud
- 用于团队沟通的 Mattermost
- 用于项目和问题跟踪的 Redmine
- 用于网络/安全监控与分析的 Security Onion
该项目还包含支持服务的配置文件,例如 PXE/iPXE 引导、DNS/DHCP、nginx、软件仓库以及终端工作流辅助工具。
## 仓库结构
```
DIP/
├── DIP/ # Proxmox VE deployment track
│ ├── ansible/ # Ansible configuration, inventory, and playbooks
│ │ ├── ansible.cfg
│ │ ├── inventory.cfg
│ │ └── playbooks/
│ ├── configs/ # Supporting configs for boot, DNS/DHCP, nginx, repos, tmux, etc.
│ ├── docs/ # Architecture and contingency diagrams
│ └── RUN_ME.sh # Main interactive deployment script
│
└── DIPx/ # VMware ESXi deployment track
├── ESXI/
└── REPO/
```
## 平台分支
### DIP:Proxmox VE
Proxmox VE 路径是该仓库中开发程度最高的部署分支。它使用交互式 shell 脚本来准备环境、配置 SSH 访问、发现 Proxmox 节点、构建或加入集群、生成 Ansible inventory,并调用部署或销毁 playbooks。
部署流程以 `DIP/RUN_ME.sh` 以及 `DIP/ansible/playbooks/` 下的 playbooks 为核心。
### DIPx:VMware ESXi
DIPx 看起来是基于 VMware ESXi 的相同概念分支。它在 `DIPx/` 下单独组织,包含与 ESXi 和软件仓库相关的目录。
## 部署组件
### 基础设施自动化
DIP 使用 Ansible playbooks 执行部署和销毁操作。Proxmox playbook 集合包括用于核心服务的部署 playbooks 以及用于清理的匹配销毁 playbooks。
示例包括:
```
01_configure_proxmox.yml
11_deploy_opnsense.yml
21_deploy_nextcloud.yml
22_deploy_mattermost.yml
23_deploy_redmine.yml
33_deploy_securityonion.yml
911_destroy_opnsense.yml
921_destroy_nextcloud.yml
922_destroy_mattermost.yml
923_destroy_redmine.yml
931_destroy_securityonion.yml
932_destroy_securityonion.yml
933_destroy_securityonion.yml
```
### 交互式控制脚本
`RUN_ME.sh` 充当主要的操作员入口点。它提供了一个基于 dialog 的菜单,用于选择基础设施操作、查看 vault 保护的值,以及运行部署或销毁工作流。
该脚本执行的任务包括:
- 检查所需工具(如 `dialog` 和 Ansible)
- 从本地软件包或在线软件包管理器安装依赖项
- 检测脚本是否在 Proxmox 主机上运行
- 在预期的管理子网上发现 Proxmox 节点
- 在控制节点和目标节点之间配置免密码 SSH
- 创建或加入 Proxmox 集群
- 生成 Ansible inventory 文件
- 运行选定的 Ansible 部署或销毁 playbooks
## 预期用例
最好将 DIP 理解为一个快速构建的网络安全靶场或响应专用网络工具包。它不仅仅是一个 homelab 安装程序。其设计指向实际的现场场景:团队需要快速部署基础设施以进行分析、协调、证据处理、监控或恢复支持。
潜在的用例包括:
- 事件响应基础设施准备
- 防御性网络作战支持环境
- 恶意软件或高风险分析支持网络
- 临时协作与案例管理基础设施
- 训练靶场和实验室环境
- 用于连续性演练的可重建基础设施
## 要求
具体要求将取决于部署路径和目标环境,但 Proxmox 分支预期需要以下各项的某种组合:
- Proxmox VE 节点
- Linux 控制节点或直接从 Proxmox 节点执行
- 目标 Proxmox 主机的 Root 访问权限
- Bash
- Ansible
- `dialog`
- `sshpass`
- Open vSwitch 实用程序
- `python3-proxmoxer`
- 控制节点与 Proxmox 节点之间的网络访问
- 在无互联网连接操作时所需的本地 `.deb` 或 `.rpm` 软件包
## 基本用法
克隆仓库:
```
git clone https://github.com/bobbymayyy/DIP.git
cd DIP/DIP
```
运行交互式部署脚本:
```
chmod +x RUN_ME.sh
sudo ./RUN_ME.sh
```
接下来,使用菜单选择基础设施部署或销毁操作。
## 安全说明
该项目涉及敏感的基础设施功能,包括 hypervisor 配置、路由、SSH 信任、Ansible Vault 数据以及事件响应工具。在生产环境中使用之前,请仔细检查以下内容:
- 硬编码的 IP 范围和假设
- Root SSH 行为
- 密码处理
- Ansible Vault 内容
- 生成的 inventory 文件
- Playbook 的破坏性操作
- 销毁工作流
- 网桥和数据接收接口选择
- 包含的用于离线操作的任何本地软件包
## 项目状态
该仓库代表了一个早期但内容庞大的基础设施自动化项目。代码库显示出对实际部署速度、操作员工作流、离线/有限连接操作以及可重复的网络基础设施构建的强烈关注。
未来可能需要进行清理的某些领域:
- 添加根级别的 `README.md`
- 将配置变量与 shell 逻辑分离
- 使用已记录的变量替换硬编码的网络范围
- 添加示例 inventory 和经过脱敏处理的 vault 模板
- 直接在 README 中添加图表
- 添加部署菜单的截图
- 记录预期的拓扑结构和网络假设
- 添加经过测试的部署场景
- 添加更清晰的 DIP 与 DIPx 使用指南
## 重要意义
DIP 是一个用于事件响应的可重建基础设施熔炉。该平台旨在将流程转化为可重复的部署工作流,而不是在高压事件期间手动逐一建立工具。
这使得该项目不仅作为代码具有价值,而且也是系统架构、自动化、网络安全运营、虚拟化、网络和业务连续性思维的出色展示。
## 许可证
目前未包含许可证文件。在期望他人重用或贡献之前,请添加许可证。
标签:Ansible, PB级数据处理, Proxmox VE, VMware ESXi, 安全运维, 应急响应基础设施, 特权提升, 系统提示词, 自动化部署, 逆向工具