locustbaby/suricata-charts
GitHub: locustbaby/suricata-charts
一个用于在 Kubernetes 上以 DaemonSet 方式一键部署 Suricata IDS/IPS 的 Helm chart,内置 Prometheus 监控和 Grafana 可视化面板。
Stars: 0 | Forks: 0
# Suricata Helm Chart
用于在 Kubernetes 上以 DaemonSet 方式部署 [Suricata](https://suricata.io) 的 Helm chart,内置 Prometheus metrics exporter 和 Grafana dashboard。
## 功能特性
- 采用 host networking 的 DaemonSet 部署,用于数据包捕获
- 基于 Unix socket 的 Prometheus exporter ([suricata_exporter](https://github.com/corelight/suricata_exporter))
- 用于 Prometheus Operator 集成的 PodMonitor
- 预配置的检测规则(SQL 注入、XSS、路径遍历、命令注入、扫描器检测、SSH 暴力破解、端口扫描、DNS 隧道、挖矿、C2、Kubernetes 特定威胁)
- Eve 日志输出到 stdout 或 Redis
- 包含 Grafana dashboard
## 前置条件
- Kubernetes 1.19+
- Helm 3
- (可选)用于 PodMonitor 的 Prometheus Operator
- 您需要自行构建 [suricata_exporter](https://github.com/corelight/suricata_exporter) 镜像,因为没有可用的公共镜像
## 安装
```
helm install suricata ./charts/suricata \
-n suricata --create-namespace \
--set exporter.image.repository=your-registry/suricata-exporter \
--set exporter.image.tag=latest
```
## 配置
| 参数 | 描述 | 默认值 |
|---|---|---|
| `image.repository` | Suricata 镜像 | `jasonish/suricata` |
| `image.tag` | Suricata 镜像标签 | `8.0.1` |
| `interface` | 要监控的网络接口 | `eth0` |
| `hostNetwork` | 启用 host networking | `true` |
| `nodeSelector` | 节点选择器 | `{}` |
| `tolerations` | Pod tolerations | `[{operator: Exists}]` |
| `resources` | Suricata 容器资源 | 500m-2000m CPU, 1-4Gi 内存 |
| `evelog.output` | Eve 日志输出 (`stdout` 或 `redis`) | `stdout` |
| `evelog.redis.*` | Redis 输出配置 | 见 values.yaml |
| `exporter.enabled` | 启用 Prometheus exporter | `true` |
| `exporter.image.repository` | Exporter 镜像 | `your-registry/suricata-exporter` |
| `exporter.image.tag` | Exporter 镜像标签 | `latest` |
| `exporter.port` | Metrics 端口 | `9917` |
| `exporter.resources` | Exporter 容器资源 | 50m-200m CPU, 32-128Mi 内存 |
| `vars.homeNet` | Suricata HOME_NET 变量 | `[192.168.0.0/16,10.0.0.0/8,172.16.0.0/12]` |
| `rules` | 自定义 Suricata 规则 | 见 values.yaml |
## 架构
该 chart 部署一个 DaemonSet,每个 Pod 包含两个容器:
1. **suricata** — 以特权模式运行,具有 `NET_ADMIN` 和 `SYS_NICE` capabilities,通过 `af-packet` 进行原始数据包捕获
2. **suricata-exporter** — 通过 Unix socket (`/suricata-socket/suricata-command.socket`) 连接到 Suricata 以收集统计信息,并在端口 9917 上暴露 Prometheus metrics
这两个容器通过位于 `/var/run/suricata-socket` 的 hostPath volume 共享 socket 目录。
## Grafana Dashboard
将 `dashboards/grafana-dashboard.json` 导入 Grafana 以获取预构建的 Suricata 监控 dashboard。

## 许可证
Apache License 2.0
标签:AMSI绕过, CISA项目, DaemonSet, DevSecOps, DNS隧道检测, Grafana, Helm Chart, IPS, IP 地址批量处理, Metaprompt, OISF, PB级数据处理, Redis, SQL注入检测, Suricata, Suricata Exporter, Web截图, XSS检测, 上游代理, 入侵检测系统, 入侵防御系统, 命令与控制, 威胁检测, 威胁检测与响应, 威胁猎捕, 子域名突变, 安全数据湖, 安全运维, 容器安全, 挖矿检测, 插件系统, 搜索引擎查询, 日志管理, 暴力破解防护, 现代安全运营, 监控, 端口扫描检测, 网络安全, 自定义请求头, 请求拦截, 速率限制, 隐私保护