Yogeshgowdapatil/Netra-Network-Intelligence-Platform
GitHub: Yogeshgowdapatil/Netra-Network-Intelligence-Platform
Netra 是一个基于 Python Flask 与 Scapy 的网络情报与安全监控平台,提供子网扫描、数据包捕获、入侵检测和可视化防火墙控制等一体化能力。
Stars: 0 | Forks: 0
# 📡 Netra — 网络情报与安全监控器
Netra 是一个高级的、基于浏览器的网络监控和威胁情报平台。它在一个流畅、现代的玻璃拟态仪表板内提供实时流量数据包捕获、本地子网设备发现、自动化入侵检测 (IDS) 以及可视化防火墙控制器。
## 🚀 核心功能
* **🕸️ 交互式子网拓扑图**:基于动画和物理效果的节点图,将本地子网设备渲染为动态浮动粒子。支持拖放机制、相机缩放/平移控制以及点击检查侧边栏。
* **🖥️ 本地网络扫描器**:通过 ARP 探测扫描子网(在非 root 用户运行时回退到动态模拟扫描),以构建主机名、IP 和 MAC 地址配置文件。
* **📡 实时数据包嗅探器**:捕获传入和传出的数据包。解析各层(IP、TCP、UDP、ICMP)以实时映射源/目标端口和字节吞吐量。
* **🛡️ 入侵检测系统 (IDS)**:监控特征模式(例如端口扫描 SYN 扫描、DDoS 高流量峰值、暴力破解异常)并触发主动拦截策略。
* **🔥 防火墙黑名单控制器**:支持从威胁日志表和交互式拓扑图检查器中动态、即时地拦截和解除拦截恶意源 IP。
* **📊 可视化遥测与时间线**:采用 Chart.js 小部件显示流量速率,使用甜甜圈图展示协议分布,柱状图展示威胁严重性计数,以及按时间顺序排列的审计日志流。
* **🌙 双主题**:高级深色和浅色模式设置,支持持久化存储用户首选项。
## 🛠️ 架构与技术栈
Netra 采用多线程服务结构设计,将后端智能引擎与响应式前端界面分离。
```
graph TD
subgraph Frontend [Client Web UI]
UI[Dashboard / HTML5 Templates]
JS[app.js Control Logic]
Canvas[Canvas Graph Physics Engine]
Charts[Chart.js Telemetry]
UI --> JS
JS --> Canvas
JS --> Charts
end
subgraph Backend [Flask Application Server]
API[Flask API Endpoints]
Config[app_config / config.py]
State[Shared Memory State Manager]
API --> State
State --> Config
end
subgraph Engines [Background Analysis Threads]
Sniffer[Scapy Packet Sniffer]
IDS[Threat Signature Analyzer]
Scanner[ARP Network Scanner]
Sniffer --> State
IDS --> State
Scanner --> State
end
JS <-->|JSON REST APIs| API
```
### 技术蓝图
1. **前端 UI 系统**:使用语义化 HTML5、纯 CSS 变量进行结构化 token 处理,Chart.js 用于实时滚动指标,以及 HTML5 2D Canvas 上下文渲染节点-链接方程。
2. **后端服务器**:由 Python 的 `Flask` 框架驱动,托管无状态 endpoint API 并提供已编译的模板。
3. **线程安全**:进程内内存状态(威胁警报数组、黑名单、审计日志)通过递归线程锁 (`threading.Lock`) 进行保护,以防止并行嗅探和威胁匹配期间的竞态条件。
4. **数据包处理**:由 `scapy` 驱动,用于帧解析和层提取。实现了自动权限检查 (`os.getuid() == 0`),并为非 root 部署提供模拟故障安全机制。
## 📁 文件结构
```
Netra/
├── app/
│ ├── __init__.py
│ ├── config.py # Subnet configurations & thresholds
│ ├── ids.py # Intrusion detection engine & threat triggers
│ ├── packet_capture.py # Scapy sniffer loop & simulation engines
│ ├── scanner.py # ARP subnet discovery scanner
│ └── state.py # Global locks & audit log controllers
├── static/
│ ├── css/
│ │ ├── base.css # Typography, tokens, & root variables
│ │ └── dashboard.css # Component styling & layouts
│ └── js/
│ └── app.js # Graph physics & client telemetry logic
├── templates/
│ ├── base.html # Master navigation sidebar template
│ ├── dashboard.html # Landing dashboard cards & charts
│ ├── scanner.html # Subnet table & topology canvas
│ ├── sniffer.html # Live packet feeds
│ ├── ids.html # Alert monitoring & blocklist controller
│ ├── logs.html # Full system activity audit
│ ├── activity.html # Timeline activity timeline
│ └── settings.html # Config forms (Slack webhooks, thresholds)
├── run.py # Flask entrypoint & routing file
├── requirements.txt # Package dependencies list
└── .gitignore # Ignored folders (caching, venv, OS configs)
```
## ⚡ 快速开始
### 1. 前置条件
确保您已安装 Python 3.9+。
### 2. 环境设置
创建虚拟环境并安装所需的模块:
```
# 创建虚拟环境
python3 -m venv .venv
# 激活环境
source .venv/bin/activate
# 安装依赖项
pip install -r requirements.txt
```
### 3. 运行平台
启动服务器:
```
python run.py
```
默认情况下,服务器运行在 **[http://127.0.0.1:5001](http://127.0.0.1:5001)**。
标签:Flask, Python, 插件系统, 无后门, 网络安全, 自定义脚本, 逆向工具, 防御绕过, 隐私保护