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, 健康检查, 实验室环境, 性能测试, 故障排除, 数字取证, 监控仪表板, 网络命名空间, 网络安全, 网络测试, 网络自动化, 自动化脚本, 逆向工具, 隐私保护, 隧道比较