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, 上游代理, 入侵检测系统, 后台服务, 告警通知, 安全告警, 安全数据湖, 安全编排与自动化响应, 安全防御评估, 容器化服务, 无后门, 现代安全运营, 网络安全, 自动化运维, 请求拦截, 逆向工具, 邮件通知, 隐私保护