Yel1oww/Pi-Hole-Threat-Detector

GitHub: Yel1oww/Pi-Hole-Threat-Detector

基于 n8n 工作流编排的 Pi-hole DNS 威胁检测与自动拦截系统,整合 VirusTotal 和 AlienVault 情报源,并通过 Grafana 实现安全态势可视化。

Stars: 0 | Forks: 0

# 🛡️ DNS 威胁检测器 一个自动化的威胁情报流水线,用于监控 **Pi-hole** 流量,将域名与 **VirusTotal** 和 **AlienVault OTX** 进行交叉比对,自动拦截恶意行为者,并在 **Grafana** 中可视化所有信息。 ![Grafana Dashboard](https://raw.githubusercontent.com/Yel1oww/Pi-Hole-Threat-Detector/main/grafana_dashboard_image.PNG) ## 🚀 概述 本项目为您的家庭网络构建了一个闭环安全系统: 1. **提取:** n8n 每 5 分钟从您的 **Pi-hole** 拉取一次日志。 2. **分析:** 根据 **AlienVault OTX** 和 **VirusTotal** 检查域名。 3. **行动:** 如果域名超过威胁阈值(例如,>= 5 个恶意检测),n8n 会向 Pi-hole 发送命令以**立即拦截**该域名。 4. **记录:** 所有扫描结果存储在 **InfluxDB** 中。 5. **可视化:** **Grafana** 仪表板显示实时威胁级别和拦截历史。 ## 🛠️ 前置条件 * **Pi-hole** (已启用 API 访问) * **n8n** (自托管或云端) * **InfluxDB 2.x** (用于数据存储) * **Grafana** (用于仪表板) * **API Keys:** * [AlienVault OTX](https://otx.alienvault.com/) (免费) * [VirusTotal](https://www.virustotal.com/) (免费层级) ## 📦 安装说明 ### 1. n8n 工作流 ![n8n Workflow Canvas](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/12991324f5063246.png) 1. 打开您的 n8n 实例并创建一个 **New Workflow** (新工作流)。 2. 打开本仓库中的 `n8n_workflow.json` 文件。 3. 复制内容并直接粘贴到 n8n 画布上。 4. **必须配置:** * 使用您的 Pi-hole 和 InfluxDB IP 地址更新 **HTTP Request** 节点。 * 在 **VirusTotal** 和 **AlienVault** 节点的 Header 参数中输入您的 API keys。 * 使用您的 Org (组织) 和 Bucket (存储桶) 名称更新 **Push to InfluxDB** 节点。 ### 2. InfluxDB 设置 在您的 InfluxDB UI 中创建一个 bucket (存储桶)(例如 `DNS_Security`)。确保您的 API token 拥有该 bucket 的 **Write** (写入) 权限。 ### 3. Grafana 仪表板 1. 在 Grafana 中,前往 **Dashboards** > **New** > **Import**。 2. 上传 `grafana_dashboard.json` 文件或粘贴 JSON 文本。 3. JSON 中包含占位符 `[YOUR_BUCKET_NAME]`。您应在导入前查找并将其替换为您实际的 InfluxDB bucket 名称,或者在导入完成后手动更新面板中的查询。 ## ⚙️ 配置变量 要运行工作流和仪表板,您必须将 JSON 文件中的以下占位符替换为您特定的环境详细信息(别忘了删除 "[]"): | 占位符 | 描述 | 在哪里找到它 | | :--- | :--- | :--- | | `[YOUR_PIHOLE_IP]` | 您的 Pi-hole 实例的本地 IP 地址。 | Pi-hole 上的 `hostname -I` | | `[YOUR_PIHOLE_AUTH_TOKEN]` | 您的 Pi-hole Web API 密码哈希。 | `/etc/pihole/setupVars.conf` | | `[YOUR_INFLUXDB_IP]` | 托管 InfluxDB 2.x 的本地 IP。 | 您的服务器/容器 IP | | `[YOUR_INFLUX_TOKEN]` | 您的 InfluxDB API 写入/读取 Token。 | InfluxDB UI > API Tokens | | `[YOUR_ORG_NAME]` | 您的 InfluxDB 组织名称。 | InfluxDB UI > About/Org | | `[YOUR_BUCKET_NAME]` | 用于存储的 bucket 名称。 | InfluxDB UI > Buckets | | `[YOUR_VIRUSTOTAL_API_KEY]` | 您的个人 VirusTotal API Key。 | [VT User Settings](https://www.virustotal.com/) | | `[YOUR_ALIENVAULT_API_KEY]` | 您的个人 AlienVault OTX API Key。 | [OTX Settings](https://otx.alienvault.com/) | ## 🤝 贡献 随意 Fork 本仓库并提交 Pull Request。对于重大更改,请先开一个 Issue 进行讨论,说明您想要更改的内容。 ## 📄 许可证 [MIT](https://choosealicense.com/licenses/mit/)
标签:Ask搜索, C2检测, DNS安全, DNS日志分析, Grafana, InfluxDB, IP 地址批量处理, n8n, Pi-hole, SOAR, VirusTotal, 可视化面板, 域名拦截, 威胁情报, 家庭实验室, 开发者工具, 恶意域名, 网络安全, 自动化响应, 闭环安全, 隐私保护