musman2015/suricata-manager
GitHub: musman2015/suricata-manager
一个基于 Flask 的 Suricata IDS 规则编辑、验证和 PCAP 测试管理工具,提供浏览器化的规则开发与诊断流程。
Stars: 0 | Forks: 0
# Suricata Manager
一个小型 Flask 应用程序,用于针对 PCAP 文件编写、验证和测试
[Suricata](https://suricata.io/) IDS 规则。它提供了
基于浏览器的规则编辑器、语法检查、单条规则诊断、测试历史
以及集中的批量测试。
## 功能
- 验证并保存 Suricata 特征签名
- 针对 PCAP/PCAPNG 捕获文件测试单个规则
- 通过逐步简化的探针来诊断未触发的规则
- 上传 ZIP 压缩包以进行集中的规则和捕获测试
- 查看测试历史并下载规则、捕获文件和告警日志
- 根据认证用户区分个人规则的数据
## 环境要求
- Python 3.10 或更高版本
- 在 `PATH` 中可用作 `suricata` 的 Suricata
- 推荐使用 Linux 环境
在 Debian 或 Ubuntu 上,请按照
[Suricata 官方文档](https://docs.suricata.io/en/latest/install.html)中的说明安装 Suricata。
## 快速开始
```
# 克隆或下载 repository,然后进入其目录。
cd suricata-manager
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -r requirements.txt
cp .env.example .env
# 编辑 .env 并设置一个强 SECRET_KEY 和 ADMIN_PASSWORD。
set -a
source .env
set +a
python app.py
```
打开 。初始账户仅在数据库不包含任何用户时
通过 `ADMIN_USERNAME` 和 `ADMIN_PASSWORD` 创建。
账户创建后,请移除这两个变量。
对于生产级进程,请根据需要设置 `HOST=0.0.0.0` 并运行:
```
gunicorn --bind "${HOST:-127.0.0.1}:${PORT:-7000}" app:app
```
## 配置
| 变量 | 默认值 | 用途 |
| --- | --- | --- |
| `SECRET_KEY` | 仅用于开发的值 | Flask 会话签名密钥;请务必覆盖此项 |
| `ADMIN_USERNAME` | 未设置 | 用于创建首个账户的用户名 |
| `ADMIN_PASSWORD` | 未设置 | 用于创建首个账户的密码 |
| `DATABASE_URL` | `sqlite:///suricata_mgr.db` | SQLAlchemy 数据库 URL |
| `STORAGE_FOLDER` | `./storage` | 上传的捕获文件和测试工件 |
| `HOST` | `127.0.0.1` | 开发服务器绑定地址 |
| `PORT` | `7000` | 开发服务器端口 |
| `FLASK_DEBUG` | `false` | 为 true 时启用 Flask 调试模式 |
内置的 `suricata.yaml`、`classification.config` 和 `reference.config`
允许在不依赖 `/etc/suricata` 的情况下进行验证和测试。请根据您的环境检查该配置中的网络变量。
## 批量上传格式
批量测试接受一个或多个 ZIP 文件。每个压缩包可以包含 `.rules`
文件和 PCAP/PCAPNG 文件,可以位于其根目录或 `pcaps/` 目录下。
所有待处理的上传将合并为一个测试。
## 独立 CLI
`suricata.py` 是一个旧版的命令行批处理运行器:
```
python suricata.py ./test-bundle
python suricata.py ./rules --pcaps ./captures
```
它目前使用 `sudo` 调用系统 Suricata 配置;使用前请检查该
脚本。Web 应用程序不需要 `sudo`。
## 安全与数据
PCAP 文件可能包含凭据和私密流量。应用程序将
上传的文件、生成的规则和 Suricata 日志存储在 `storage/` 下,而 SQLite 数据
存储在 Flask 的 `instance/` 目录下。这两个位置都会被
Git 忽略。
## 许可证
在 MIT 许可证下分发。参见 [LICENSE](LICENSE)。
标签:Flask, Hex文件处理, IDS规则, Metaprompt, Python, Suricata, 无后门, 现代安全运营, 网络检测, 逆向工具