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解析, 云计算, 五元组跟踪, 多模态安全, 实时报告, 应用阻断, 数据可视化, 流量监控, 深度包检测, 网络协议解析, 网络安全, 网络安全分析, 网络流量分析, 规则引擎, 请求拦截, 逆向工具, 隐私保护