AmirBrDr/network-security-lab
GitHub: AmirBrDr/network-security-lab
基于 OSPF 虚拟路由基础设施的网络安全可观测性实验平台,集成监控、入侵检测与本地 AI 事件分析。
Stars: 1 | Forks: 0
# 网络安全实验室
网络安全实验室是一个公开的作品集项目,它从一个完整的 OSPF 路由实验室开始,并将其扩展为一个网络安全可观测性平台。
其目标是在一个连贯的实验室中展示实际的网络、Linux 基础设施、监控、入侵检测、事件记录以及由本地 AI 辅助的故障排除能力。
## 项目摘要
该实验室建立在基于 FRRouting 的三路由器 OSPF 拓扑之上。一旦路由基础稳定,该项目就会加入指标、日志、仪表板、IDS 警报、受控的攻击模拟以及提供支持的本地 AI 助手。
AI 层并不是该项目的核心。其基础是网络:OSPF、VLAN、TAP 接口、故障测试、可观测性以及安全证据。
## 拓扑

## 物理拓扑

## 可观测性预览

阶段 3 在 OSPF 实验室的基础上添加了 Grafana 可观测性层,包含
用于系统健康、网络接口流量、FRR 服务状态、
OSPF 邻居计数和集中式 Loki 日志的仪表板。
## 该项目展示的内容
- 使用 OSPFv2 和 OSPFv3 的动态路由。
- FRRouting 配置与验证。
- 基于 VLAN 和 TAP 的虚拟网络。
- IPv4 和 IPv6 路由。
- 默认路由通告与托管 VLAN。
- 网络故障测试与收敛测量。
- 使用 Prometheus 和 Grafana 进行监控。
- 使用 Loki 进行集中式日志记录。
- 使用 Suricata 进行入侵检测。
- 在隔离的实验室虚拟机内进行受控的安全模拟。
- 使用 Ollama 进行本地 AI 辅助的故障排除。
- 文档、截图、证据以及作品集打包。
初始拓扑使用 OSPF 三角形中的三个路由器:
| 节点 | 角色 | TAP |
| --- | --- | --- |
| `R1` | 路由器 / 默认路由源 | `tap62` |
| `R2` | 路由器 | `tap63` |
| `R3` | 路由器 | `tap64` |
| 监控虚拟机 | IDS 传感器与安全监控 | `tap65` |
| 管理虚拟机 | 可观测性与管理服务 | `tap66` |
| MacBook Pro M3 Pro | 使用 Ollama 进行本地 AI 推理 | 主机 |
预留的 TAP 接口:
| TAP | 用途 |
| --- | --- |
| `tap67` | 未来的客户端、DMZ 或集成 |
| `tap68` | 未来扩展 |
| `tap69` | 备份、调试或未来集成 |
## 计划技术栈
| 层级 | 工具 |
| --- | --- |
| 路由 | FRRouting, OSPFv2, OSPFv3 |
| 虚拟网络 | TAP 接口, VLANs, 2 型 hypervisor 虚拟机 |
| 指标 | Prometheus, exporters |
| 仪表板 | Grafana |
| 日志 | Loki |
| IDS | 优先使用 Suricata,未来可能添加 Zeek |
| AI 推理 | Apple Silicon 上的 Ollama |
| AI 后端 | FastAPI |
| 检索 | 基于文档、配置和选定参考的本地 RAG |
## 运行弹性
实验室虚拟机被配置为在大学 2 型 hypervisor 重启(例如维护或更新重启)后自动启动。`@reboot` crontab 条目会运行实验室启动脚本并记录输出以供故障排除;详细信息记录在[服务器资源](docs/server-resources.md)中。
## 路线图
该项目在 [docs/roadmap.md](docs/roadmap.md) 中进行追踪。
当前的里程碑结构:
| 里程碑 | 目标 |
| --- | --- |
| M0 - 规划与范围 | 验证项目范围、仓库、追踪器、TAP 计划和资源 |
| M1 - OSPF 基础 | 构建完整的 FRRouting OSPF 实验室 |
| M2 - 故障测试 | 测量收敛、丢包和路由恢复 |
| M3 - 可观测性 | 添加 Prometheus、Grafana、Loki、日志、指标和警报 |
| M4 - 安全 / IDS | 部署 Suricata 并记录受控事件 |
| M5 - AI 支持层 | 为日志、警报和故障添加本地 AI 解释 |
| M6 - RAG 知识层 | 将助手的回答基于项目文档和配置 |
| M7 - 演示界面 | 可选的拓扑、警报、聊天和事件时间线 UI |
| M8 - 作品集打包 | 最终的 README、截图、证据、视频和摘要 |
## 最低成功标准
如果项目实现了以下目标,则被认为是成功的:
- 在 `R1`、`R2` 和 `R3` 之间实现稳定的 OSPFv2 和 OSPFv3 路由。
- 实验室范围内的 IPv4 和 IPv6 连通性。
- 有文档记录的路由表、邻居、配置和数据包证据。
- 包含测量到的收敛行为的故障测试。
- 用于网络和系统可见性的 Grafana 仪表板。
- 为路由器和关键服务提供集中式日志。
- 来自受控且仅限实验室模拟的 Suricata 警报。
- 包含证据和结论的事件报告。
- 一个清晰解释该项目的公开 GitHub 仓库。
## 安全边界
所有安全测试仅限于隔离的实验室环境。
受控扫描、可疑流量和暴力破解模拟仅在运行于本地/2 型 hypervisor 设置中的实验室虚拟机之间进行。不打算对任何外部系统进行测试。
## 仓库结构
```
.
├── README.md
├── docs
│ ├── ai-stack.md
│ ├── architecture.md
│ ├── images
│ │ └── topology.svg
│ ├── ospf-lab.txt
│ ├── project-calendar.md
│ ├── roadmap.md
│ ├── server-resources.md
│ └── tap-plan.md
├── monitoring
│ └── grafana
│ ├── dashboards
│ └── provisioning
├── screenshots
│ ├── phase1
│ └── phase3
└── LICENSE
```
## 文档
- [项目路线图](docs/roadmap.md)
- [项目日历](docs/project-calendar.md)
- [地址分配计划](docs/addressing-plan.md)
- [架构](docs/architecture.md)
- [TAP 计划](docs/tap-plan.md)
- [服务器资源](docs/server-resources.md)
- [AI 技术栈](docs/ai-stack.md)
- [OSPF 实验室参考](docs/ospf-lab.txt)
标签:AI风险缓解, DLL 劫持, FRRouting, Metaprompt, OSPF, 大语言模型, 网络架构, 自定义请求头, 逆向工具