vektort13/MITMVpn

GitHub: vektort13/MITMVpn

面向课堂演示的 OpenVPN 被动遥测实验室,通过实时本地化仪表盘展示 VPN 运营者可见的网络元数据,用于隐私意识教育。

Stars: 10 | Forks: 4

MITMVpn - OpenVPN Passive Telemetry Lab

MITMVpn

仅限授权的 OpenVPN 被动遥测实验室,配备本地化仪表盘和一键 VPS 部署脚本。

Install Languages Safety Stack

🇷🇺 Русский · 🇺🇸 English · 🇻🇳 Tiếng Việt · 🇨🇳 中文

MITMVpn 是一个用于课堂演示的 roadwarrior 风格实验环境。它部署了 OpenVPN、DNS 捕获、被动网络元数据收集,以及一个实时 Apache 仪表盘,用于显示 VPN 客户端会话、域名、应用指纹、风险、TLS/QUIC 元数据和基于类别的浏览摘要。 它是为具有明确同意的受控演示而构建的。它**不会**解密 HTTPS 流量。 ## 这玩意儿是怎么工作的? ## Как Это Работает? ## 项目概览 | 领域 | 你能得到什么 | | --- | --- | | 部署 | 适用于 Debian/Ubuntu 的一键式 VPS 安装脚本。 | | VPN | 配备三个生成的实验室客户端的 OpenVPN roadwarrior 服务器。 | | 仪表盘 | 实时 Apache/PHP 仪表盘,支持自动刷新、表格、时间线、导出和类别弹窗。 | | 遥测 | DNS 可见性、Suricata EVE 元数据、p0f 操作系统提示、JA3/JA3S、QUIC/TLS 指纹。 | | 应用提示 | 浏览器、即时通讯、云服务、媒体、开发者工具、Tor/proxy/VPN、远程管理和其他类别。 | | 本地化 | 仪表盘和项目页面支持 🇷🇺 俄语、🇺🇸 英语、🇻🇳 越南语、🇨🇳 中文。 | | 安全性 | 仅限授权的实验室,无 HTTPS 负载解密,生成的密钥会被 Git 忽略。 | ## 快速开始 在干净的 Debian/Ubuntu VPS 上克隆私有仓库并运行 roadwarrior 安装脚本: ``` git clone https://github.com/vektort13/MITMVpn.git cd MITMVpn sudo ./roadwarrior.sh ``` 如果你的 VPS 有多个地址或公共 IP 检测不正确: ``` sudo PUBLIC_IP=203.0.113.10 TIMEZONE=Europe/London ./roadwarrior.sh ``` 安装完成后: | 项目 | 位置 | | --- | --- | | 仪表盘 | `http://SERVER_IP/` | | 公共学生视图 | `http://SERVER_IP/student/` | | 仪表盘凭证 | `/root/openvpn-dashboard-credentials.txt` | | OpenVPN 客户端配置文件 | `/root/client-configs/files/*.ovpn` | 下载生成的客户端配置文件: ``` scp -r root@SERVER_IP:/root/client-configs/files ./client-configs ``` ## 从工作站部署 如果项目在本地,并且 VPS 可以通过 SSH 访问: ``` ./deploy.sh root@SERVER_IP /path/to/private_key ``` 或者使用环境变量: ``` SSH_TARGET=root@SERVER_IP SSH_KEY=/path/to/private_key ./deploy.sh ``` ## 本地化仪表盘 实时仪表盘包含语言选择器,并会在浏览器中记住选择的语言。 | 语言 | 界面覆盖范围 | | --- | --- | | 🇷🇺 Русский | 主仪表盘、控件、状态消息、表格、模态框、类别标签。 | | 🇺🇸 English | 主仪表盘、控件、状态消息、表格、模态框、类别标签。 | | 🇻🇳 Tiếng Việt | 主仪表盘、控件、状态消息、表格、模态框、类别标签。 | | 🇨🇳 中文 | 主仪表盘、控件、状态消息、表格、模态框、类别标签。 | 原始域名、应用程序名称、JA3 提示和检测器证据等运行时数据将按原样显示。 ## 公共学生视图 安装程序会为课堂发布一个单独的只读页面: ``` http://SERVER_IP/student/ ``` 学生可以在自己的设备上查看实时仪表盘,并且只能更改界面语言。管理操作保留在经过身份验证的仪表盘后台: - 不能清除日志; - 没有 DNS 重定向控制权限; - 不能导出或生成报告; - 无法访问 `logs.php` 变更接口。 ## 架构 ``` flowchart LR C1[Lab Client 1] -->|OpenVPN| VPN[OpenVPN Server] C2[Lab Client 2] -->|OpenVPN| VPN C3[Lab Client 3] -->|OpenVPN| VPN VPN --> DNS[dnsmasq DNS logs] VPN --> SUR[Suricata EVE metadata] VPN --> P0F[p0f OS fingerprints] VPN --> SESS[OpenVPN session logs] DNS --> DET[Passive classifier] SUR --> DET P0F --> DET SESS --> API[PHP API] DET --> API API --> DASH[Localized Apache Dashboard] DASH --> EXP[JSON / HTML exports] DASH --> REDIR[DNS Redirect Lab] ``` ## 仪表盘显示内容 | 视图 | 详情 | | --- | --- | | 客户端档案 | 真实入口 IP、地理提示、在线/离线状态、会话持续时间、流量计数器。 | | 网站和域名 | 域名列表、网站图标、停留时间估算、事件来源、DNS 重定向控制。 | | 兴趣/类别 | 可点击的类别标签,打开包含该类别所有网站的模态框。 | | 检测到的软件 | 带有置信度分数和信号说明的被动应用提示。 | | 风险 | Tor、代理、VPN、远程管理和其他高信号类别。 | | TLS/QUIC 指纹 | JA3/JA3S 哈希、分类器提示、实验室唯一性、命中次数。 | | 时间线 | 用于演示和分析的按时间顺序排列的活动流。 | ## 组件 | 文件 | 用途 | | --- | --- | | `roadwarrior.sh` | 一键式 VPS 安装程序和编排器。 | | `provision_openvpn_lab.sh` | OpenVPN、dnsmasq、NAT/防火墙、Apache 基本身份验证、客户端配置生成。 | | `setup_passive_detection.sh` | Suricata、p0f、被动分类器、受控的客户端端口扫描计时器。 | | `deploy_dashboard.sh` | 将本地化的仪表盘安装到 Apache web 根目录。 | | `dashboard_live.php` | 实时本地化 SPA 仪表盘。 | | `dashboard_api.php` | 供仪表盘使用的 JSON 数据源。 | | `dashboard_logs.php` | 导出、报告、日志清除、DNS 重定向 API。 | | `dashboard_favicon.php` | 用于域名行的网站图标代理/缓存。 | | `passive_app_detection.py` | 被动元数据解析器和应用程序分类器。 | | `client_portscan.py` | 对已连接的 VPN 客户端地址进行受控的实验室扫描。 | | `dns_redirect_manager.py` | 供仪表盘使用的仅限 DNS 的重定向管理器。 | ## 安全模型 本项目仅用于受控教育和内部实验室演示。 - 仅在获得每位参与者明确授权的情况下使用。 - HTTPS 负载不会被解密。 - DNS 重定向仅限于 DNS,旨在演示浏览器证书和 HSTS 的限制。 - 生成的 `.ovpn` 文件、SSH 密钥、证书和仪表盘凭据默认被排除在 Git 之外。 ## 系统要求 | 要求 | 说明 | | --- | --- | | 操作系统 | Debian 11/12 或 Ubuntu 22.04/24.04 VPS。 | | 访问权限 | Root 访问权限或 sudo。 | | 网络 | 公共 IPv4 地址。 | | 防火墙 | 开放入站 `80/tcp` 和 `1194/udp`。 | ## 实用命令 ``` systemctl status openvpn-server@server dnsmasq apache2 systemctl status suricata-openvpn p0f-openvpn openvpn-passive-detect journalctl -u openvpn-passive-detect -f tail -f /var/log/openvpn/dnsmasq.log ``` ## 仓库维护 该仓库有意忽略了生成的实验室密钥和运行时工件: ``` .ssh/ client-configs/ *.ovpn *credentials*.txt __pycache__/ *.log ``` 将生成的实验室密钥保留在服务器上或私有保险库中,不要放在 Git 中。 ## 🇷🇺 俄语 **MITMVpn** поднимает на чистом VPS учебную OpenVPN-инфраструктуру и веб-дашборд для демонстрации того, какие метаданные видит оператор VPN. Возможности: - активные и завершенные VPN-сессии; - реальный входной IP клиента до VPN; - DNS-запросы и домены, увиденные через VPN; - фавиконки сайтов и примерное время активности по доменам; - пассивные признаки приложений: браузеры, мессенджеры, облака, Tor/proxy/VPN, remote-admin и другие категории; - p0f OS fingerprinting и JA3/JA3S TLS/QUIC fingerprints; - таблицы, timeline, live-console, HTML/JSON export; - DNS redirect lab-переключатели для демонстрации ограничений DNS-only redirect; - локализация дашборда: 🇷🇺 RU, 🇺🇸 EN, 🇻🇳 VI, 🇨🇳 ZH. Быстрый запуск: ``` git clone https://github.com/vektort13/MITMVpn.git cd MITMVpn sudo ./roadwarrior.sh ``` После установки: - Dashboard: `http://SERVER_IP/` - Страница для студентов: `http://SERVER_IP/student/` - Логин/пароль: `/root/openvpn-dashboard-credentials.txt` - OpenVPN-конфиги: `/root/client-configs/files/*.ovpn` ## 🇺🇸 英语 **MITMVpn** provisions a teaching OpenVPN lab on a clean VPS and exposes a live dashboard for consent-based demonstrations of VPN operator visibility. Highlights: - active and historical VPN sessions; - real ingress IP before the VPN tunnel; - DNS requests and domains observed through the tunnel; - site favicons and approximate domain dwell time; - passive application hints for browsers, messengers, cloud apps, Tor/proxy/VPN, remote admin tools, and other categories; - p0f OS fingerprints and JA3/JA3S TLS/QUIC fingerprints; - tables, timeline, live console, HTML/JSON exports; - DNS redirect lab toggles for showing DNS-only redirect limitations; - dashboard localization: 🇷🇺 RU, 🇺🇸 EN, 🇻🇳 VI, 🇨🇳 ZH. Quick start: ``` git clone https://github.com/vektort13/MITMVpn.git cd MITMVpn sudo ./roadwarrior.sh ``` After installation: - Dashboard: `http://SERVER_IP/` - Public student view: `http://SERVER_IP/student/` - Credentials: `/root/openvpn-dashboard-credentials.txt` - OpenVPN profiles: `/root/client-configs/files/*.ovpn` ## 🇻🇳 越南语 **MITMVpn** triển khai một lab OpenVPN trên VPS sạch và cung cấp dashboard live cho bài demo có sự đồng ý của người tham gia. Tính năng chính: - phiên VPN đang hoạt động và lịch sử phiên; - IP thật trước khi đi vào VPN; - truy vấn DNS và tên miền đi qua VPN; - favicon website và thời lượng hoạt động ước lượng theo tên miền; - gợi ý ứng dụng từ metadata thụ động: trình duyệt, nhắn tin, cloud, Tor/proxy/VPN, remote-admin và các nhóm khác; - fingerprint hệ điều hành bằng p0f và fingerprint TLS/QUIC JA3/JA3S; - bảng dữ liệu, timeline, live console, export HTML/JSON; - DNS redirect lab để minh họa giới hạn của redirect chỉ bằng DNS; - ngôn ngữ dashboard: 🇷🇺 RU, 🇺🇸 EN, 🇻🇳 VI, 🇨🇳 ZH. Cài đặt nhanh: ``` git clone https://github.com/vektort13/MITMVpn.git cd MITMVpn sudo ./roadwarrior.sh ``` Sau khi cài đặt: - Dashboard: `http://SERVER_IP/` - Trang xem cho sinh viên: `http://SERVER_IP/student/` - Tài khoản/mật khẩu: `/root/openvpn-dashboard-credentials.txt` - Cấu hình OpenVPN: `/root/client-configs/files/*.ovpn` ## 🇨🇳 中文 **MITMVpn** 会在干净的 VPS 上部署一个教学用 OpenVPN 实验环境,并提供实时仪表盘,用于经过同意的课堂演示。 主要功能: - 当前和历史 VPN 会话; - VPN 前的真实入口 IP; - 通过 VPN 看到的 DNS 请求和域名; - 网站 favicon 和按域名估算的停留时间; - 基于被动元数据的应用识别提示:浏览器、即时通讯、云服务、Tor/proxy/VPN、远程管理等; - p0f 操作系统指纹和 JA3/JA3S TLS/QUIC 指纹; - 表格、时间线、实时控制台、HTML/JSON 导出; - DNS redirect lab,用于展示 DNS-only 重定向的限制; - 仪表盘语言:🇷🇺 RU、🇺🇸 EN、🇻🇳 VI、🇨🇳 ZH。 快速安装: ``` git clone https://github.com/vektort13/MITMVpn.git cd MITMVpn sudo ./roadwarrior.sh ``` 安装完成后: - Dashboard: `http://SERVER_IP/` - 学生只读页面:`http://SERVER_IP/student/` - 登录信息:`/root/openvpn-dashboard-credentials.txt` - OpenVPN 配置:`/root/client-configs/files/*.ovpn`
标签:ffuf, Metaprompt, 逆向工具