asteroid-99942/apophis-blocklist
GitHub: asteroid-99942/apophis-blocklist
Apophis Blocklist 是一个面向 Pi-hole 等 DNS 过滤系统的自动化域名黑名单生成器,专注恶意软件防护,通过多源威胁情报聚合和 PSL 验证输出干净、去重的拦截列表。
Stars: 0 | Forks: 0
Apophis Blocklist 是一个全自动、尊重隐私的域名拦截列表生成器,专为 Pi‑hole、Unbound、AdGuard Home 以及其他 DNS 过滤系统设计。它融合了多个高质量的威胁情报源,使用 Public Suffix List (PSL) 验证域名,移除无效条目,并每天输出一份干净、去重的拦截列表。
Apophis 使用一系列精心筛选的第三方拦截列表,这些列表专注于恶意软件、勒索软件、钓鱼、诈骗、欺诈以及其他安全关键型威胁。它不针对广告、追踪或一般内容拦截,尽管某些第三方列表可能会包含它们认为过度的广告/追踪服务拦截。用户有责任审查包含的来源、维护自己的白名单,并确保拦截列表符合其环境和风险承受能力。
目标很简单:**以最小的噪音实现最大的威胁覆盖**。
✨ 功能
- 通过 GitHub Actions **每日自动更新**
- **Public Suffix List (PSL) 验证**
- 拒绝无效 TLD
- 拒绝格式错误的域名 - 确保仅包含真实、可解析的域名
- **并行下载**以实现快速列表聚合
- **ETag/Last‑Modified 缓存**以减少带宽
- 显示添加/移除域名的**自动差异报告**
- **干净、去重的输出**,适用于 Pi‑hole、Unbound、AGH 和 DNS 服务器
- 通过 `blocklistblaster.toml` **配置源**
📦 输出文件
每日生成到 `lists/` 目录中:
| 文件 | 描述 |
|------|-------------|
| `blocklist.txt` | 最终合并的拦截列表(仅域名)|
| `allowlist.txt` | 白名单(如果已配置)|
| `regexlist.txt` | 正则规则(如果已配置)|
| `diff_report.txt` | 显示添加/移除域名的每日差异 |
| `blocklist_previous.txt` | 用于对比的快照 |
⚙️ 工作原理
1. 下载 `blocklistblaster.toml` 中定义的所有拦截列表源
2. 规范化并验证每个域名: - 移除注释、IP、通配符、无效字符 - 转换 IDNA/Punycode - 使用 **Public Suffix List** 验证 TLD
3. 对所有域名进行去重和合并
4. 应用白名单(可选)
5. 将最终列表写入 `lists/`
6. 如果拦截列表发生更改,自动提交更改
🛠 配置 所有来源定义于:
blocklistblaster.toml
示例:
```
[lists]
block = [
"https://example.com/malware.txt",
"https://example.com/phishing.txt"
]
allow = []
regex = []
[output]
block = "lists/blocklist.txt"
allow = "lists/allowlist.txt"
regex = "lists/regexlist.txt"
```
🔄 自动化
.github/workflows/update-blocklist.yml
每天 UTC 时间 03:00 运行并:
- 安装依赖
- 运行拦截列表生成器
- 如果检测到更改,提交更新的列表
🛡 理念
本项目优先考虑:
准确性 — 仅包含具有有效公共后缀的真实域名
覆盖范围 — 多个独立的威胁源
稳定性 — 无 ABP/Adblock 语法,无噪音,无垃圾
透明度 — 每日差异报告
隐私 — 无外部分析,无遥测
标签:AdGuard Home, DNS 安全, DNS 过滤, GitHub Actions, IDNA, IP 地址批量处理, Linux安全, Object Callbacks, Pi-hole, Public Suffix List, Python安全, Unbound, 勒索软件, 域名拦截, 域名黑名单, 威胁情报, 安全引擎, 家庭实验室, 开发者工具, 恶意软件防护, 欺诈防护, 网络安全, 网络安全, 网络调试, 网络钓鱼, 自动化, 自动笔记, 逆向工具, 隐私保护, 隐私保护