teal33t/poopak

GitHub: teal33t/poopak

一个功能完整的Tor隐藏服务爬虫平台,支持深度爬取、情报提取、截图存档和全文检索。

Stars: 137 | Forks: 34

# POOPAK | TOR Hidden Service Crawler [![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) [![Open Source Love](https://badges.frapsoft.com/os/v1/open-source-badges/) [![made-with-python](https://img.shields.io/badge/Made%20with-Python-1f425f.svg)](https://www.python.org/) [![Generic badge](https://img.shields.io/badge/Tor-Hidden%20Services-green.svg)](https://torproject.org/) 一个用于爬取、扫描和收集 TOR hidden services 数据的实验性应用程序。 ## 功能特性 - 使用 CURL 进行多层级深度爬取 - 链接提取及邮箱/BTC/ETH/XMR 地址检测 - EXIF 元数据提取 - 屏幕截图(使用 Splash) - 主题检测(使用 Spacy) - 端口扫描 - 报告生成(CSV/PDF) - 基于 Elasticsearch 的全文搜索 - 语言检测 - 基于 Docker 的部署及 Web UI ## 快速开始 ### 开发环境 ``` make dev-up # Start all services make dev-logs # View logs ``` 访问地址:http://localhost ### 生产环境 ``` cp .env.example .env # Configure passwords make prod-up # Start all services make health # Check status ``` ## 架构 ### 核心服务 - **nginx**: Web 服务器 & 反向代理 - **web-app**: Flask 应用程序 - **mongodb**: 数据库 - **redis**: 消息队列 - **elasticsearch**: 搜索引擎 - **torpool**: Tor 代理池 - **splash**: 截图服务 - **spacy**: NLP 服务 - **workers**: 后台处理(crawler, detector, app, panel) ### 关键特性 - 独立的开发/生产 Docker 配置 - 所有服务的健康检查 - 生产环境中的网络隔离 - 自动服务依赖管理 - 开发环境热重载 ## 常用命令 ``` # 开发 make dev-up # Start make dev-logs # View logs make dev-shell # Open shell make dev-down # Stop # 生产 make prod-up # Start make prod-logs # View logs make health # Check health make backup # Backup databases make prod-down # Stop # 维护 make reindex # Reindex Elasticsearch make stats # Resource usage ``` ## 配置 ### 环境变量(生产环境) 创建 `.env` 文件: ``` # 数据库 MONGO_ROOT_USER=admin MONGO_ROOT_PASSWORD=your-secure-password # Redis REDIS_PASSWORD=your-secure-password # 应用 SECRET_KEY=your-random-secret-key FLASK_ENV=production # Elasticsearch ELASTICSEARCH_ENABLED=true ELASTICSEARCH_HOSTS=http://elasticsearch:9200 # Error Tracking (可选) ERROR_TRACKING_ENABLED=true SENTRY_DSN=your-sentry-dsn ``` ## 近期改进 ### Docker & 基础设施 - ✅ 独立的开发/生产配置 - ✅ 所有服务的健康检查 - ✅ 多阶段 Dockerfile - ✅ 网络隔离(生产环境) - ✅ 非 root 容器 - ✅ 优化的缓存 ### 应用程序架构 - ✅ Web 视图的依赖注入 - ✅ 数据访问的 Repository 模式 - ✅ 业务逻辑的 Service 层 - ✅ 全面的错误处理 - ✅ 生产环境错误追踪(Sentry) - ✅ Elasticsearch 集成 ### 代码质量 - ✅ 全面的类型提示(Type hints) - ✅ 结构化日志 - ✅ 自定义异常层级 - ✅ 统一的错误响应 - ✅ 用户友好的错误页面 ## 系统要求 - Docker 20.10+ - Docker Compose 2.0+ - 最低 4GB RAM - 10GB 磁盘空间 ## 安装 ``` # 克隆仓库 git clone cd poopak # 启动开发环境 make dev-up # 验证服务 make health # 访问应用 open http://localhost ``` ## 健康监控 检查服务健康状况: ``` make health ``` 或访问:http://localhost:8000/health 响应: ``` { "status": "healthy", "service": "onion-crawler", "components": { "mongodb": "healthy", "redis": "healthy", "elasticsearch": "healthy" } } ``` ## 故障排除 ### 服务无法启动 ``` make dev-logs # Check logs make health # Check health ``` ### 端口冲突 ``` lsof -i :80 # Find what's using port 80 ``` ### 清理并重启 ``` make dev-down make dev-up ``` ### 数据库问题 ``` docker exec onion-mongodb-dev mongosh --eval "db.adminCommand('ping')" ``` ## 开发 ### 项目结构 ``` application/ ├── config/ # Configuration ├── crawler/ # Crawler components ├── infrastructure/ # Database, queue, logging ├── models/ # Data models ├── repositories/ # Data access layer ├── services/ # Business logic ├── utils/ # Utilities └── web/ # Flask application ├── auth/ # Authentication ├── dashboard/ # Dashboard views ├── scanner/ # Scanner views ├── search/ # Search views └── templates/ # HTML templates ``` ### 测试 ``` # 运行测试 docker exec onion-web-app-dev python -m pytest # 检查语法 python -m py_compile application/**/*.py ``` ## 安全 ### 开发环境 - 无需密码 - 所有端口暴露 - 开启 Debug 模式 ### 生产环境 - 需要密码(在 `.env` 中设置) - 最小化端口暴露(仅 nginx) - 网络隔离 - 非 root 容器 - 结构化日志 ## 备份与恢复 ``` # 备份 make backup # 恢复 make restore BACKUP=backups/mongodb-20240101-120000 ``` ## 性能 ### Elasticsearch ``` # 重建索引文档 make reindex # 检查集群健康状态 curl http://localhost:9200/_cluster/health ``` ### 资源使用 ``` make stats ``` ## 许可证 本软件基于 GPL v.3 许可证发布。如果您在服务器上运行修改后的程序并允许其他用户与其通信,您的服务器必须同时允许他们下载源代码。 ## 支持 1. 检查日志:`make dev-logs` 2. 检查健康状况:`make health` 3. 验证设置:`./validate-docker-setup.sh` **准备好开始了吗?** 运行 `make dev-up` 并访问 http://localhost
标签:Docker, Elasticsearch, ESC4, Flask, MongoDB, NLP, OSINT, Python, SpaCy, Splash, Tor隐藏服务, 云存储安全, 元数据分析, 命令控制, 威胁情报, 安全防御评估, 密码管理, 开发者工具, 截图捕获, 搜索引擎查询, 数字货币追踪, 数据统计, 数据采集, 无后门, 暗网爬虫, 暗网监测, 洋葱路由, 端口扫描, 网络扫描, 请求拦截, 逆向工具, 配置审计, 隐私匿名