AdarWa/suricata-alerts

GitHub: AdarWa/suricata-alerts

Docker化的 Suricata 告警邮件通知器,实时监控 eve.json 并发送格式化的威胁告警邮件。

Stars: 2 | Forks: 1

## Suricata 邮件告警通知器 (Docker) 本项目是一个轻量级、容器化的 Python 服务,用于监控 Suricata `eve.json` 日志文件,并在检测到新告警时发送邮件通知。 它专为在 Docker 环境中轻松部署而设计,并可以通过环境变量进行完全自定义。 ### 功能特性 * 对 `eve.json` 中的 Suricata 告警进行**实时监控** * **邮件通知**新告警,支持发送给一个或多个收件人 * **可自定义 SMTP 设置**,支持身份验证 * **可配置轮询间隔** * 作为 Docker 中的**持久化后台服务**运行 ### 工作原理 1. 容器持续监控 `/logs/eve.json` 以获取新的 Suricata 告警。 2. 当发现新告警时,它会将其格式化并包含相关详细信息: * 告警签名 * 源和目标 IP/端口 * 协议 * 时间戳 3. 向指定的收件人发送格式化的邮件通知。 ### 环境变量 | Variable | Description | Example Value | | -------------- | --------------------------------------------- | ----------------------------------- | | `MAILER` | 邮件发送类型 (例如 SMTP) | `SMTP` | | `USERNAME` | SMTP 用户名 | `apikey` | | `PASSWORD` | SMTP 密码或 API key | `mypassword` | | `FROM` | 发件人邮箱地址 | `alerts@example.com` | | `TO` | 逗号分隔的收件人邮箱列表 | `admin@example.com,ops@example.com` | | `SMTP_SERVER` | SMTP 服务器地址 | `smtp.mailserver.com` | | `PORT` | SMTP 服务器端口 | `587` | | `POLLING_TIME` | 检查新告警的时间间隔(秒) | `10` | | `POLL_LIMIT` | 发送新告警的最大数量 | `20` | | `HOST` | 标识日志源的名称 | `myserver1` | | `DETAILS_URL` | 查看新告警详情的 URL | `https://myserver1/evebox` | | `SKIP_PATTERN` | 用于匹配不发送的告警签名的正则表达式 | `(ET|GPL) (SCAN\|HUNTING\|DROP\|CINS)` | ### Docker 使用方法 1. 使用 `git clone https://github.com/AdarWa/suricata-alerts` 克隆仓库 2. 将 alert-emailer 添加到你的 docker ``` alert-emailer: build: ./suricata-alerts container_name: alert-emailer volumes: - suricata_logs:/logs:ro depends_on: - suricata environment: - MAILER=SMTP - USERNAME=emailapikey - PASSWORD=VERY_SECRET_PASSWORD - FROM=suricata-alert@example.com - TO=subject1@example.com,subject2@example.com - SMTP_SERVER=smtp.zeptomail.com - PORT=587 - POLLING_TIME=60 - POLL_LIMIT=20 - HOST=myserver1 - DETAILS_URL=https://myserver1/evebox - SKIP_PATTERN=(ET|GPL) (SCAN|HUNTING|DROP|CINS) ``` ### 告警邮件示例 ``` Subject: [Suricata alert] 2 new alert(s) New Suricata alert(s) detected: - ET SCAN Nmap Scripting Engine User-Agent Source: 192.168.1.5:42312 Destination: 10.0.0.2:80 Protocol: TCP Time: 2025-08-09T17:35:12Z - ET POLICY External IP Lookup Source: 192.168.1.5:42314 Destination: 10.0.0.5:53 Protocol: UDP Time: 2025-08-09T17:36:05Z ```
标签:DevSecOps, Docker, eve.json, Metaprompt, PE 加载器, Python, SMTP, SOAR, Suricata, 上游代理, 入侵检测系统, 后台服务, 告警通知, 安全告警, 安全数据湖, 安全编排与自动化响应, 安全防御评估, 容器化服务, 无后门, 现代安全运营, 网络安全, 自动化运维, 请求拦截, 逆向工具, 邮件通知, 隐私保护