abdallamedhat2005/VPN-Orchestrator
GitHub: abdallamedhat2005/VPN-Orchestrator
VPN编排器是一个自动化工具,用于在隔离Linux环境中部署、比较和验证VPN隧道的功能。
Stars: 0 | Forks: 0
# VPN 编排器
VPN 编排器是一个以 Linux 为中心的分支连接实验室,它能在隔离的网络命名空间内部署和比较 WireGuard 与 OpenVPN。它不仅证明隧道已建立,更能验证通过隧道的路由、转发、NAT、防火墙策略和服务可达性是否实际有效。
## 项目包含内容
- 可重复的、基于命名空间的实验室拓扑,涵盖服务器、客户端、分支主机和受保护服务。
- WireGuard 配置生成以及隧道建立/拆除自动化。
- 使用 Easy-RSA 生成 OpenVPN PKI 并部署路由模式 `tun`。
- 控制平面验证与数据平面验证。
- 两种隧道类型的分离隧道和全隧道测试模式。
- 用于演示隧道健康状态假阳性的破坏/修复场景。
- 用于捕获加密外部流量和明文内部流量的抓包脚本。
- 简单的健康状态仪表板与报告收集。
- 故障排除检查清单与对比报告模板。
## 拓扑结构
- `vpn-server` 命名空间:外部接口 `172.31.0.1/24`,服务局域网 `10.10.0.1/24`
- `vpn-client` 命名空间:外部接口 `172.31.0.2/24`,分支局域网 `192.168.50.1/24`
- `branch-host` 命名空间:`192.168.50.10/24`
- `service-host` 命名空间:`10.10.0.10/24`
服务命名空间运行一个轻量级 HTTP 服务器,以便工具包能验证实际应用可达性,而不仅仅是 ICMP。
## 在 Linux 虚拟机内快速开始
```
cd /path/to/Routing
find scripts -type f -name '*.sh' -exec chmod +x {} +
make deps
make setup
make wg-config MODE=split
make wg-up MODE=split
make control TUNNEL=wireguard
make data TUNNEL=wireguard MODE=split
make capture TUNNEL=wireguard
make wg-down
make ovpn-config MODE=full
make ovpn-up MODE=full
make control TUNNEL=openvpn
make data TUNNEL=openvpn MODE=full
make capture TUNNEL=openvpn
make compare
python3 dashboard/health_dashboard.py
```
## 演示流程
1. 使用 `make setup` 构建实验室。
2. 启动 WireGuard 并证明握手和服务流量均正常工作。
3. 运行 `./scripts/break_scenarios.sh wireguard allowedips`,展示 WireGuard 仍报告最近握手成功,但分支到服务的流量失败。
4. 使用 `./scripts/repair_scenarios.sh wireguard allowedips` 进行修复并验证恢复。
5. 使用 OpenVPN 重复上述过程,然后破坏转发或路由状态。
6. 运行 `make compare` 并查看 `reports/` 目录下收集的报告。
## 备注
- 本项目旨在将文件移入虚拟机后,在 Linux 环境下运行。
- Shell 脚本使用 Linux 路径和命令编写;Windows 仅在此处用作文件暂存位置。
- 路由模式是默认模式。您可以通过设置 `MODE=split` 或 `MODE=full` 在分离隧道和全隧道测试模式间切换。
- 在验证期间,可以通过 `make data TUNNEL=wireguard MODE=nat` 或 `make data TUNNEL=openvpn MODE=nat` 切换 NAT 状态。
- 仪表板是一个轻量级的本地 HTTP 服务器,它会读取 `state/` 目录下的最新状态文件。
标签:Cutter, Linux 运维, OpenVPN, VPN 隧道, Wildcard支持, WireGuard, 健康检查, 实验室环境, 性能测试, 故障排除, 数字取证, 监控仪表板, 网络命名空间, 网络安全, 网络测试, 网络自动化, 自动化脚本, 逆向工具, 隐私保护, 隧道比较