alex-milla/ThreatIntelligence-TDL
GitHub: alex-milla/ThreatIntelligence-TDL
基于 ICANN CZDS 区域文件的域名注册监控与关键字通知系统。
Stars: 0 | Forks: 0
# ThreatIntelligence-TDL
监控 ICANN CZDS 区域文件中的新域名注册。用户可以定义关键字(品牌、公司名称等),当匹配到相关域名注册时会收到通知。
## 架构
该项目采用混合架构:
- **Worker(Python 3)** 在您的 LXC/VPS 上运行。它从 ICANN CZDS 下载区域文件,解析并检测新域名,将其与用户关键字进行匹配,并将结果发送到 Web UI。
- **Web UI(PHP 8+)** 在共享主机上运行。它管理用户和关键字,显示匹配项,并通过安全的 API 与 Worker 通信。
```
LXC/VPS (Python Worker) HTTPS API Shared Hosting (PHP + SQLite)
- Download zones ───────► - Users & Keywords
- Parse & detect new domains ◄─────── - Matches & Notifications
- Match against keywords - Admin Dashboard
```
## 需求
### Worker(LXC/VPS)
- Python 3.8+
- `requests` 库
- 可访问 ICANN CZDS API 和您的共享主机
- 足够的磁盘空间用于临时下载区域文件(每个 TLD 压缩后约最多 200 MB)
- 足够的内存以在内存中保存某个 TLD 的所有现有域名(建议 `.xyz` 等大型 TLD 约 1 GB)
### Web UI(共享主机)
- PHP 8.0+
- 启用 SQLite 3 扩展
- 对 `web/data/` 目录具有写入权限
## 快速开始
### 1. Web UI(共享主机)
将 `web/` 文件夹内容上传到您的托管根目录。
```
# 托管必须允许写入 data/
chmod 755 web/data
```
访问 `https://yourdomain.com/install.php` 并创建管理员账户。**保存生成的 API 密钥** — 您将在 Worker 中需要它。
### 2. Worker(LXC/VPS)
```
git clone https://github.com/alex-milla/ThreatIntelligence-TDL.git
cd ThreatIntelligence-TDL/worker
bash install.sh
```
编辑 `config.ini`:
```
[icann]
username = YOUR_ICANN_USERNAME
password = YOUR_ICANN_PASSWORD
[hosting]
url = https://yourdomain.com
api_key = THE_API_KEY_FROM_INSTALL
[worker]
download_dir = ./zones
data_dir = ./data
batch_size = 10000
max_retries = 5
```
首次手动运行:
```
python3 scheduler.py
```
然后通过 cron 设置定时任务(UTC 每天 06:00):
```
0 6 * * * cd /path/to/ThreatIntelligence-TDL/worker && /usr/bin/python3 scheduler.py >> /var/log/tdl_worker.log 2>&1
```
## 工作原理
1. Worker 使用 ICANN CZDS 身份验证并自动下载您已批准的 TLD 区域文件。
2. 它维护一个本地缓存(`domains_cache`),记录所有曾经出现过的域名。
3. 每次运行时,它会检测自上次运行以来哪些域名是**新的**。
4. 它通过 API 从 Web UI 获取活跃的关键字。
5. 新域名会与关键字进行匹配(不区分大小写的子字符串匹配)。
6. 匹配结果会发送到 Web UI,为每个受影响用户创建通知。
## 用户功能
- **关键字**:每个用户可以定义要监控的关键字(例如 `santander`、`nasa`)。
- **通知**:当新域名匹配您的任意关键字时,会收到应用内通知。
- **仪表板**:查看最近的匹配项和统计信息。
- **管理面板**:管理用户、关键字限制、API 密钥、同步日志和系统更新。
## 更新
管理面板包含一个**系统更新**页面,可检查 GitHub 发布版本并自动更新应用程序文件。您的 SQLite 数据库在更新过程中不会被覆盖。
对于私有仓库,请在 `web/admin/update.php` 中设置 GitHub 个人访问令牌。
## 安全注意事项
- Worker API 通过安装时生成的单个 API 密钥保护。
- 如果托管环境允许,请将 `web/data/` 放在 Web 根目录之外;否则 `.htaccess` 会阻止直接访问。
- 在 Worker 与托管之间使用 HTTPS。
- Worker 不会本地存储用户数据或关键字(仅用于去重的域名缓存)。
## 许可证
MIT
标签:CZDS, ffuf, HTTPS API, ICANN, LXC, OpenVAS, PHP, Python, SEO, SQLite, TCP SYN 扫描, VPS, Web UI, 共享主机, 关键词匹配, 内存优化, 品牌保护, 域名抢注监控, 域名注册监控, 域名监控, 威胁情报, 安装配置, 定时任务, 开发者工具, 批量下载, 无后门, 用户管理, 磁盘空间, 管理后台, 通知告警