26zl/zeek-peek
GitHub: 26zl/zeek-peek
面向 pfSense/OPNsense 及小型 Zeek 传感器的无 Agent 日志查看器,通过 SFTP 采集、DuckDB 存储、浏览器展示,无需部署 SIEM 即可快速浏览和分析网络流量日志。
Stars: 1 | Forks: 0
# zeek-peek
适用于 pfSense、OPNsense 及小型 Zeek 传感器的无 Agent Zeek 日志查看器
传感器(Netgate、Protectli、Raspberry Pi、迷你 PC)。通过 SFTP 拉取,
DuckDB 存储,浏览器 UI。无需 SIEM,无需 Grafana,设备上无需安装 Agent。
## 为什么
我为自己的 Netgate 1100(1 GB RAM,8 GB eMMC)构建了这个工具:Zeek
已经在防火墙上运行,而内置的 pfSense 日志查看器非常吃力,
在上面浏览日志十分痛苦。zeek-peek 将渲染工作卸载到另一台机器上,
因此防火墙只需通过 SFTP 提供日志字节流,这做起来很轻松。
任何在小盒子上运行 Zeek 的用户都应该能获得同样的好处。
专为以下环境构建:
- 在 Netgate 设备或任何 x86 迷你 PC(Protectli、Qotom、Topton、通用 NUC)上的 pfSense / pfSense Plus
- 在 Raspberry Pi、迷你 PC、VM 或 LXC 容器上的独立 Zeek
只要正确配置 Zeek 日志目录和 SSH 访问权限,
它应该也能与 OPNsense 及 `os-zeek` 插件配合使用。
唯一的要求是 Zeek 将 TSV 日志写入磁盘,
并且有一个具有读取权限的 SSH 用户。目前尚不支持 JSON 日志。
## 技术栈
Python (FastAPI)、DuckDB、原生 JS。单进程,无需构建步骤。
## 本地运行
```
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # set SSH_HOST and SSH_USER
uvicorn main:app
```
打开 。
## 在 Docker 中运行
```
mkdir -p secrets
cp ~/.ssh/your_key secrets/id_key
ssh-keyscan -H your.zeek.host > secrets/known_hosts
cp .env.example .env # set SSH_HOST and SSH_USER
docker compose up -d
```
## 配置
所有设置均位于 `.env` 中。有关完整列表,请参见 `.env.example`。
必填项:`SSH_HOST`、`SSH_USER`。其他所有选项均有合理的默认值。
## 存储
日志被流式传输到一个嵌入式 **DuckDB** 文件中。示例配置
设置 `DB_PATH=data/zeek.duckdb`。后台工作线程每隔 `INGEST_INTERVAL`(默认 30 秒)
从每个日志中提取新字节并将其插入到 `log_` 表中。
API 查询 DuckDB,并且仅在表为空时(冷启动)回退到仅使用 SFTP。
要禁用此功能,请在 `.env` 中设置 `DB_PATH=`,仪表板将恢复为
仅限 SFTP 的路径。Docker 设置将数据库持久化在一个命名卷
(`zeek-data`)中。
## 端点
- `GET /`:前端
- `GET /api/health`:存活探针
- `GET /api/status`:SSH 状态、可用日志、数据库摄入状态
- `GET /api/log/{name}?limit=&since=&tail=&source=auto|db|ssh`:`{name}.log` 的最后几行
## 安全
- 绑定到 `127.0.0.1`(默认)。无内置身份验证:如果需要暴露,请将其置于反向代理之后,或在网络层进行限制。
- 始终使用严格的 SSH 主机密钥验证。请通过 `ssh-keyscan -H ` 填充 `SSH_KNOWN_HOSTS`,或依赖系统的 `known_hosts`。
- 读取操作仅限 SFTP;在远程主机上不打开任何 Shell。
## 开发
```
pip install -r requirements-dev.txt
ruff check . && ruff format --check . && mypy && pytest
```
## 许可证
MIT,详见 [LICENSE](LICENSE)。
标签:AMSI绕过, AV绕过, Docker, DuckDB, FastAPI, IP 地址批量处理, Netgate, OISF, OPNsense, pfSense, Python, Rootkit, TCP SYN 扫描, TSV, Vanilla JS, Web UI, Zeek, 内存分配, 威胁检测, 安全防御评估, 嵌入式数据库, 开源安全工具, 数据可视化, 无代理, 无后门, 日志查看器, 日志管理, 网络安全, 网络流量分析, 请求拦截, 轻量级SIEM, 迷你主机, 逆向工具, 逆向工程平台, 防火墙, 隐私保护