thousaba/network_lab

GitHub: thousaba/network_lab

基于 Suricata IDS 的实时网络告警监控仪表盘,提供 Web 可视化界面与 Telegram 即时通知功能。

Stars: 0 | Forks: 0

# Network Lab — 实时 Suricata IDS 仪表盘 一款网络安全仪表盘,可实时监控 Suricata IDS 日志,在检测到威胁时发送 Telegram 通知,并在现代化的 Web 界面中可视化告警。 ## 架构 ``` Suricata (eve.json) │ ▼ Python Backend (Socket.IO) │ ├──► Telegram Bot (instant notification) │ └──► React Dashboard (WebSocket) ``` ## 功能 - **实时告警流** — 持续追踪 Suricata 的 `eve.json` 并即时捕获新告警 - **Telegram 通知** — 每次检测到新威胁时都会发送 bot 消息 - **实时仪表盘** — 通过 Socket.IO 推送至浏览器,无需刷新页面 - **严重性分类** — 带有颜色区分的 HIGH / MEDIUM / LOW 徽章 - **实时统计卡片** — 总计、HIGH、MEDIUM 和 LOW 告警计数实时更新 ## 设置 ### 前置条件 - Python 3.10+ - Node.js 18+ - Suricata (Windows 或 Linux) ### 后端 ``` cd backend python -m venv venv # Windows .\venv\Scripts\activate # Linux / macOS source venv/bin/activate pip install -r requirements.txt ``` 创建 `backend/.env` 文件: ``` TELEGRAM_TOKEN=your_bot_token_here TELEGRAM_CHAT_ID=your_chat_id_here SURICATA_LOG_PATH=C:\Program Files\Suricata\log\eve.json ``` ### 前端 ``` npm install ``` ## 运行 **终端 1 — 后端:** ``` cd backend .\venv\Scripts\python suricata.py ``` **终端 2 — 前端:** ``` npm run dev ``` 在浏览器中打开 `http://localhost:5173`。 ## 项目结构 ``` network_lab/ ├── backend/ │ ├── suricata.py # Python backend (Socket.IO + Telegram) │ ├── requirements.txt # Python dependencies │ └── .env # Secrets (not committed to git) ├── src/ │ ├── App.tsx # Dashboard UI │ └── App.css # Dark theme styles ├── .gitignore └── package.json └── docs # Simulations ``` ## Telegram Bot 设置 1. 在 Telegram 上与 `@BotFather` 对话,并使用 `/newbot` 创建一个 bot 2. 将 token 添加到 `.env` 作为 `TELEGRAM_TOKEN` 3. 获取你的 chat ID,可以向 `@userinfobot` 发送消息,或者向你的 bot 发送一条消息,然后访问 `https://api.telegram.org/bot/getUpdates` ## 注意事项 - 启动时不会读取历史日志 — 仅监控新告警 - 仅处理 `event_type == "alert"` 的日志行;诸如 DNS、HTTP 和 flow 事件的正常流量日志会被过滤掉 - 切勿提交你的 `.env` 文件
标签:Metaprompt, Python, React, Socket.IO, Suricata, Syscalls, 可视化看板, 无后门, 现代安全运营, 逆向工具