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, 无后门, 现代安全运营, 网络检测, 逆向工具