Flowsint 是一个开源的 OSINT(开源情报)图探索工具,专为道德调查、透明度和验证而设计。它允许您通过可视化图界面和自动化丰富器(Enrichers),探索实体(如域名、IP、组织、加密货币钱包等)之间的关系。


1. 系统要求

1.1 硬件与软件要求

  • 操作系统:Linux、macOS 或 Windows(通过 Docker Desktop)。
  • 内存:建议至少 8GB(运行多个服务容器)。
  • 存储:至少 10GB 可用空间。
  • 网络:需要访问互联网以下载镜像和进行 OSINT 数据查询。

1.2 软件前提(所有平台)

  • DockerDocker Compose(必须安装并运行)。
  • Git(用于克隆仓库)。
  • (可选)Make:用于 Linux/macOS 的快捷命令。

2. 安装与部署步骤

2.1 Linux / macOS 部署(使用 Make)

  1. 克隆仓库

    1
    2
    git clone https://github.com/reconurge/flowsint.git
    cd flowsint
  2. 运行安装命令

    1
    make prod

    此命令会自动处理环境设置,并拉取预构建的 Docker 镜像启动服务。

2.2 Windows 部署(使用 Docker Compose)

无需 make,在 命令提示符 (cmd)PowerShell 中操作。

  1. 克隆仓库

    1
    2
    git clone https://github.com/reconurge/flowsint.git
    cd flowsint
  2. 设置环境文件
    需要手动复制环境变量模板文件到各模块目录。

    1
    2
    3
    4
    copy .env.example .env
    copy .env.example flowsint-api\.env
    copy .env.example flowsint-core\.env
    copy .env.example flowsint-app\.env
  3. 启动服务

    1
    docker compose -f docker-compose.prod.yml up -d

    此命令会从 GitHub Container Registry 拉取预构建镜像,并在后台启动所有服务。

2.3 首次登录与创建账号

服务启动后,在浏览器中访问 http://localhost:5173/register创建一个新账户。系统默认没有预设的凭证,所有数据均存储在您本地机器上。


3. 网络与团队部署

Flowsint 可以直接在服务器上运行,供同一网络中的团队使用。

  1. 在服务器上,按照上述 Linux/macOS 或 Windows 步骤部署。
  2. 编辑 .env 文件,更改默认密钥(暴露到网络前必须执行):
    • AUTH_SECRET:用于签名认证令牌。生成方法:openssl rand -hex 32
    • MASTER_VAULT_KEY_V1:用于加密存储的 API 密钥。生成方法:python3 -c "import os, base64; print('base64:' + base64.b64encode(os.urandom(32)).decode())"
    • NEO4J_PASSWORD:Neo4j 数据库密码。
  3. 添加服务器主机名/IP 到允许列表:编辑 flowsint-app/nginx.conf 中的 map $http_host $is_flowsint_host 块,添加您服务器的 IP 或域名。
  4. 访问:同一网络中的其他用户可通过 http://<服务器IP>:5173 访问。

HTTPS 推荐:在生产环境中,建议在 Flowsint 前放置一个反向代理(如 Caddy、Nginx)以启用 HTTPS。


4. 核心功能与架构

4.1 可用丰富器(Enrichers)

Flowsint 通过“丰富器”模块自动从实体中提取和关联信息。主要类别包括:

类别 示例丰富器
域名 反向 DNS 解析、子域名发现、WHOIS 查询、域名历史
IP IP 地理位置、ASN 信息
ASN ASN 到 CIDR 范围
组织 组织到 ASN/域名、公司信息
加密货币 钱包交易历史、NFT 查询
网站 网站爬虫、链接提取、追踪脚本识别
邮箱/电话 数据泄露检查、Gravatar 查询
社交媒体 Maigret(用户名搜索)

4.2 项目架构(模块化)

  • flowsint-app:前端应用(用户界面)。
  • flowsint-api:FastAPI 服务器,提供 REST API。
  • flowsint-core:核心工具、编排器、加密保管库(Vault)和后台任务。
  • flowsint-enrichers:所有丰富器模块的实现。
  • flowsint-types:Pydantic 数据模型和类型定义。

服务之间通过 Docker Compose 编排,包括前端代理、API 服务、Celery 任务队列、PostgreSQL、Neo4j 图数据库和 Redis 缓存。


5. 开发环境设置(供贡献者)

如果您希望进行二次开发,可以启动开发模式。

  1. 前提条件:安装 Docker。

  2. Linux/macOS(使用 Make)

    1
    make dev
  3. Windows
    先按上述步骤创建各模块的 .env 文件,然后运行:

    1
    docker compose -f docker-compose.dev.yml up -d --build
  4. 访问 http://localhost:5173


6. 常见问题排查

问题 可能原因 解决方案
make proddocker compose 命令失败 Docker 服务未启动或端口冲突 确保 Docker Desktop 正在运行。检查端口 51735432(PostgreSQL)、7687(Neo4j)是否被占用。
访问 localhost:5173 显示连接被拒绝 前端容器未成功启动 运行 docker compose -f docker-compose.prod.yml logs 查看容器日志,找出具体错误。
注册后无法登录或认证失败 AUTH_SECRET 未设置或不匹配 检查 .env 文件中的 AUTH_SECRET 是否已设置且一致。尝试清除浏览器缓存和 Cookie。
丰富器执行失败或数据未显示 目标 API 密钥未配置或网络连接问题 一些丰富器(如 VirusTotal、Shodan)需要您提供自己的 API 密钥。在应用的设置或 .env 中配置相应的 API_KEY
主机名/IP 访问被拒绝 Nginx 允许列表未包含您的访问主机名 按照“网络与团队部署”部分,在 flowsint-app/nginx.conf 中添加您的主机名或 IP。

7. 总结

Flowsint 是一个强大的、模块化的 OSINT 调查平台,适合网络安全分析师、调查记者等专业人士。

核心部署路径

  1. 准备环境:确保 Docker 和 Git 已安装。
  2. 克隆并配置git clone 仓库,并根据操作系统执行相应的安装命令(make prod 或手动 docker compose)。
  3. 首次登录:访问 http://localhost:5173/register 创建您的账户。
  4. 开始调查:通过图形界面添加实体(如域名、IP),并运行丰富器来扩展关系图。

关键注意事项

  • 网络部署安全:将服务暴露到局域网或公网前,必须更改 .env 中的默认密钥和 Nginx 允许列表。

  • 道德使用:Flowsint 严格用于合法、道德的调查和研究,请仔细阅读 ETHICS.md 文件。

  • API 密钥:许多丰富器需要您自己的第三方服务 API 密钥(如 VirusTotal、Shodan),请提前准备。

    项目地址:https://github.com/reconurge/flowsint