hiteshkumarh/deep-packet-inspection-flask

GitHub: hiteshkumarh/deep-packet-inspection-flask

一个基于Flask的深度包检测引擎,用于分析和过滤PCAP网络流量,实现应用与域名阻止。

Stars: 0 | Forks: 0

# DPI引擎 - 深度包检测分析器 这是一个强大的深度包检测系统,通过解析网络数据包的内部有效载荷来识别和过滤网络流量。该引擎可以在不解密的情况下拦截TLS客户端问候以提取服务器名称指示和HTTP主机头,使您能够识别并阻止特定应用(如YouTube、TikTok、Facebook),无论其是否加密。 本项目完全由 **Python 3** 驱动,具有高性能核心引擎和简洁易用的 **Flask** Web仪表盘。 ## 🚀 功能特点 - **原始PCAP解析**:完全从头在Python中解码以太网、IPv4、TCP和UDP。 - **深度包检测**: - 原生提取TLS 1.0-1.3客户端问候消息中的SNI。 - 从标准HTTP流量中提取`Host`头。 - 解析标准DNS请求。 - **流量跟踪**:有状态分析,将多个数据包与单个统一的对话流关联(五元组跟踪)。 - **基于规则的过滤**:通过应用名称、域名或源IP动态阻止出站访问。 - **Web界面**:简洁的Flask驱动Web UI,用于上传抓包、配置规则和生成实时处理报告。 - **导出过滤后流量**:下载仅包含转发(未被阻止)数据包的PCAP文件。 ## 📦 项目结构 ``` packet_analyzer/ ├── backend/ │ ├── app.py # Main Flask Application Entry Point │ ├── requirements.txt # Python dependencies (Flask, Werkzeug) │ ├── Dockerfile # Docker build configuration │ ├── routes/ # API Routes │ │ └── analyze.py # File upload & subprocess execution handling │ ├── uploads/ # Temporary directory for uploaded PCAPs │ └── packet_analyzer_py/ # Python DPI Engine (Untouched Core) │ ├── core/ # Core parsing modules │ └── main.py # Python CLI Entry Point │ ├── frontend/ │ ├── templates/ # HTML Templates │ │ └── index.html # Main dashboard UI │ └── static/ # Static Assets │ ├── css/style.css │ └── js/app.js │ ├── README.md ├── test_dpi.pcap # Sample network traffic file └── generate_test_pcap.py # Script to generate sample PCAP ``` ## 🛠️ 安装与设置(Windows / macOS / Linux) 您需要在机器上安装 **Python 3.10+**。 ### 1. 克隆仓库 ``` git clone https://github.com/yourusername/packet_analyzer.git cd packet_analyzer ``` ### 2. 创建虚拟环境 强烈建议使用Python虚拟环境隔离项目依赖。 **Windows:** ``` python -m venv venv .\venv\Scripts\Activate.ps1 ``` **macOS / Linux:** ``` python3 -m venv venv source venv/bin/activate ``` ### 3. 安装依赖 安装所需的后端依赖(Flask、Werkzeug): ``` pip install -r backend/requirements.txt ``` ## 🖥️ 运行应用程序 ### 选项1:Web仪表盘(推荐) 1. 启动Flask Web服务器: python backend/app.py 2. 在浏览器中打开 `http://127.0.0.1:5000` 3. 上传PCAP文件(例如根目录下的 `test_dpi.pcap`)。 4. 选择要阻止或允许的应用程序,并即时查看您的DPI过滤结果。 5. 点击**下载过滤后的PCAP**以获取处理后的流量文件。 ### 选项2:命令行界面(CLI) 您可以从终端手动运行DPI引擎,以进行更快速的脚本操作,无需使用Web仪表盘: ``` # 基本运行 python backend/packet_analyzer_py/main.py test_dpi.pcap output.pcap # 使用阻止规则 python backend/packet_analyzer_py/main.py test_dpi.pcap output.pcap \ --block-app YouTube \ --block-app TikTok \ --block-ip 192.168.1.50 \ --block-domain facebook ``` ## 🐳 Docker支持 您还可以完全在容器中运行Web仪表盘。提供了一个最小化的 `python:3.12-slim` Docker镜像。 ``` # 从项目根目录构建镜像 docker build -f backend/Dockerfile -t dpi-analyzer . # 运行容器(映射端口 5000) docker run -p 5000:5000 dpi-analyzer ``` 导航至 `http://localhost:5000` 即可使用应用。 ## 🧪 生成测试数据 如果您需要模拟的 `.pcap` 抓包文件进行实验,可以使用包含的Python脚本: ``` python generate_test_pcap.py ``` 这会生成一个包含模拟TLS、HTTP和DNS流量的逼真网络流,这些流量将路由到标准应用。 https://deep-packet-inspection-flask-2.onrender.com/
标签:DNS请求分析, Flask Web应用, HTTP头提取, PCAP分析, Python编程, TLS解析, 云计算, 五元组跟踪, 多模态安全, 实时报告, 应用阻断, 数据可视化, 流量监控, 深度包检测, 网络协议解析, 网络安全, 网络安全分析, 网络流量分析, 规则引擎, 请求拦截, 逆向工具, 隐私保护