RenardDev/IDATeamsDocker

GitHub: RenardDev/IDATeamsDocker

提供 IDA Pro 的许可证服务、HexVault 和 Lumina 三个组件的 Docker Compose 自托管部署配置,帮助团队快速搭建私有化逆向协作环境。

Stars: 50 | Forks: 15

# IDATeamsDocker 用于以下组件的简单 Docker 设置: - HexLicSrv - HexVault - Lumina (with MySQL) 本仓库不包含安装程序。请将每个安装程序放入对应的 `image/` 文件夹中。 支持的安装程序版本: - [IDA 9.0](https://docs.hex-rays.com/release-notes/9_0) - [IDA 9.1](https://docs.hex-rays.com/release-notes/9_1) - [IDA 9.2](https://docs.hex-rays.com/release-notes/9_2) - [IDA 9.3](https://docs.hex-rays.com/release-notes/9_3) - [IDA 9.3sp1](https://docs.hex-rays.com/release-notes/9_3sp1) ## 仓库结构 - `hexlicsrv/` - HexLicSrv 镜像、配置、数据、日志、CA - `hexvault/` - HexVault 镜像、配置、数据、日志、CA - `lumina/` - Lumina 镜像、配置、数据、日志、CA 以及 MySQL 卷 - `ida/` - 用于本地 IDA 客户端修补的辅助脚本 `license_patch.py` - `shell.9.0.reg`, `shell.9.1.reg`, `shell.9.2.reg`, `shell.9.3.reg` - Windows 右键菜单快捷方式 ## 环境要求 - 安装了 Docker + Docker Compose 的 Linux 主机 - 一对 CA 密钥对:`CA.pem` 和 `CA.key` - 安装程序: - `hexlicsrv/image/hexlicsrv_x64linux.run` - `hexvault/image/hexvault_x64linux.run` - `lumina/image/lumina_x64linux.run` ## 快速开始 1. 创建 CA(只需执行一次): ``` openssl req -x509 \ -newkey rsa:4096 -sha512 -keyout CA.key -out CA.pem -days 3650 -nodes \ -subj "/C=BE/L=Liege/O=Hex-Rays SA./CN=Hex-Rays SA. Root CA" ``` 2. 将 `CA.pem` 和 `CA.key` 复制到: - `hexlicsrv/CA/` - `hexvault/CA/` - `lumina/CA/` 3. 在 compose 文件中调整主机名: - `hexlicsrv/docker-compose.yml`:`LICENSE_HOST` - `hexvault/docker-compose.yml`:`VAULT_HOST` - `lumina/docker-compose.yml`:`LUMINA_HOST` 4. 为 Lumina 配置 MySQL 密钥: - 将 `.env.example` 复制为 `.env`(例如:`cp .env.example .env`) - 为 `MYSQL_PASSWORD` 和 `MYSQL_ROOT_PASSWORD` 设置强密码 5. 启动服务(在仓库根目录下执行): ``` docker compose -f hexlicsrv/docker-compose.yml up -d --build docker compose -f hexvault/docker-compose.yml up -d --build docker compose -f lumina/docker-compose.yml up -d --build ``` 6. 默认端口: - HexLicSrv:`65434` - HexVault:`65433` - Lumina:`443` ## IDA 客户端设置 1. 创建 `C:\Program Files\IDA Professional \CA` 2. 仅将 `CA.pem` 放入其中 3. 将 `ida/license_patch.py` 复制到你的 IDA 安装目录 4. 以管理员身份运行: ``` python3 license_patch.py ida-pro ``` ## 可选的 GitHub 同步 每个服务都可以在容器启动时向 GitHub 备份/恢复状态。 工作原理: - 如果本地状态为空且存在远程快照,则服务会从 GitHub 恢复。 - 如果本地状态不为空,则服务会创建新快照,并且仅当数据发生更改时才上传。 - `hexlicsrv` 和 `hexvault` 同步文件系统数据。 - `lumina` 同步 MySQL 转储。 配置位置: - 将同步变量添加到以下文件中所需服务的 `environment:` 块中: - `hexlicsrv/docker-compose.yml` - `hexvault/docker-compose.yml` - `lumina/docker-compose.yml` ### 1) 通用变量(适用于任何服务) ``` environment: SYNC_ENABLED: "true" SYNC_METHOD: "commits" # or "releases" GH_REMOTE: "https://github.com/yourorg/yourrepo.git" SYNC_HOST_ID: "hexvault-prod-01" # unique node id SYNC_CHUNK_SIZE_MB: "49" # keep <= 49 for GitHub limits ``` 注意事项: - `SYNC_HOST_ID` 在每个节点/环境中应是唯一的。 - 对于私有仓库和上传,请提供身份验证(token 或 SSH 密钥)。 - 对于没有 `SYNC_AUTH_TOKEN` 的 HTTPS 远程仓库,同步以只读模式工作(仅恢复,不上传)。 ### 2) Commits 模式(将数据块存储在分支文件中) 必需项: - `SYNC_METHOD=commits` - `GH_REMOTE` - `SYNC_HOST_ID` 可选项: - `GH_BRANCH`(默认 `main`) - `GH_COMMIT_NAME`, `GH_COMMIT_EMAIL` - 用于 HTTPS 写入权限的 `SYNC_AUTH_TOKEN` - 用于 SSH 的 `GH_SSH_PRIVATE_KEY`(+ 可选的 `GH_KNOWN_HOSTS`) 示例: ``` environment: SYNC_ENABLED: "true" SYNC_METHOD: "commits" GH_REMOTE: "https://github.com/yourorg/yourrepo.git" GH_BRANCH: "main" SYNC_HOST_ID: "hexlicsrv-prod-01" SYNC_AUTH_TOKEN: "${SYNC_AUTH_TOKEN}" ``` ### 3) Releases 模式(将数据块存储为 release 资产) 必需项: - `SYNC_METHOD=releases` - `GH_REMOTE` - `SYNC_HOST_ID` 可选项: - `GH_RELEASE_TAG`(默认为服务名称) - `GH_RELEASE_NAME` - 用于 GitHub Enterprise 的 `GH_API` 和 `GH_UPLOAD` - 用于创建/更新 release 资产的 `SYNC_AUTH_TOKEN` 示例: ``` environment: SYNC_ENABLED: "true" SYNC_METHOD: "releases" GH_REMOTE: "https://github.com/yourorg/yourrepo.git" GH_RELEASE_TAG: "lumina-prod" GH_RELEASE_NAME: "Lumina Prod Snapshot" SYNC_HOST_ID: "lumina-prod-01" SYNC_AUTH_TOKEN: "${SYNC_AUTH_TOKEN}" ``` ### 4) 启动后的快速检查 - 读取容器日志,查找有关 `restore`、`checksum`、`uploaded` 或 `nothing to upload` 的信息行。 - 如果未上传任何内容,通常意味着数据哈希值未更改(这是正常的)。 - 在 `commits` 模式下,快照存储在仓库中的 `backups//` 目录下的文件中。 - 在 `releases` 模式下,快照作为 release 资产存储在 `GH_RELEASE_TAG` 下。 ## 故障排除 - 缺少 CA 文件:容器会提前退出。请检查 `CA/CA.pem` 和 `CA/CA.key`。 - 配置文件权限错误:设置严格的权限(例如对配置文件执行 `chmod 600`)。 - 同步问题:检查 `GH_REMOTE`、token/密钥以及仓库权限。 ## 安全提示 - 切勿提交 token、SSH 私钥或 CA 私钥。 - 切勿将 `CA.key` 复制到客户端工作站。 - 限制所有密钥和配置文件的权限。
标签:Cutter, Docker Compose, Docker配置, IDA Pro, 云资产清单, 安全测试工具, 服务部署, 版权保护, 自托管, 请求拦截, 逆向工具, 逆向工程