broxcat/artemis

GitHub: broxcat/artemis

基于 Docker Compose 的 Velociraptor 自托管 homelab,提供 DFIR 与威胁狩猎平台的一键部署和多平台 agent 配置指南。

Stars: 0 | Forks: 0

# Artemis 一个自托管的 [Velociraptor](https://docs.velociraptor.app) homelab,通过 Docker Compose 运行在 带有 HTTPS 的 nginx 反向代理之后。以狩猎女神 Artemis 的名字命名——这对于 DFIR / 威胁 狩猎平台来说非常贴切。 ## 前置条件 - [Docker](https://docs.docker.com/get-docker/) - [Docker Compose](https://docs.docker.com/compose/install/) - OpenSSL(用于生成自签名证书) ## 安装说明 1. 克隆仓库: git clone https://github.com/broxcat/artemis.git cd artemis 2. 复制示例环境文件并填入你自己的值: cp .env.sample .env 3. 为 `.env` 中的 `VELOX_PASSWORD` 生成一个强密码: openssl rand -base64 24 4. 生成 nginx 使用的自签名 TLS 证书: mkdir -p certs openssl req -x509 -nodes -newkey rsa:2048 -days 365 \ -keyout certs/key.pem -out certs/cert.pem \ -subj "/CN=localhost" 5. 启动该 stack: docker compose up -d 6. 访问 **https://localhost** 打开 Velociraptor GUI(接受自签名证书警告), 并使用 `.env` 中的 `VELOX_USER` / `VELOX_PASSWORD` 登录。 ### 两个独立的 URL —— 不要混淆它们 - **`VELOX_SERVER_URL`**(默认为 `https://localhost:8000/`)是 Velociraptor **agent** 用来在前端端口(8000)上向服务器回报的 URL。它被直接编译到每个重新打包的 agent 二进制文件中,并且**不**由 nginx 代理。 - **GUI URL**(端口 443 上的 `https://localhost`)是**你**(操作员)浏览访问的地址。它由 nginx 提供服务,nginx 将其反向代理到内部端口 8889 上的 Velociraptor GUI。 这两个 URL 是相互独立的——更改其中一个不会影响另一个。 ## 部署 Velociraptor Agent Agent 二进制文件是在运行中的 `velociraptor` 容器内部直接使用服务器配置重新打包的。重新打包的二进制文件嵌入了服务器的 CA 和连接详情,因此**切勿提交它们**(参见[安全说明](#security-notes))。 ### Windows 1. 在容器内部重新打包 Windows 客户端: docker exec -it velociraptor ./velociraptor config repack \ --exe /opt/velociraptor/windows/velociraptor_client.exe \ client.config.yaml \ clients/windows/agent.exe 2. 将重新打包的二进制文件复制到宿主机: docker cp velociraptor:/velociraptor/clients/windows/agent.exe ./agent.exe 3. 手动运行它进行测试: .\agent.exe client -v 4. 将其安装为永久的 Windows 服务(需要**提权**的 PowerShell 提示符): .\agent.exe service install ### Linux 1. 在容器内部重新打包 Linux 客户端: docker exec -it velociraptor ./velociraptor config repack \ --exe /opt/velociraptor/linux/velociraptor_client \ client.config.yaml \ clients/linux/agent 2. 将其复制出来并赋予可执行权限: docker cp velociraptor:/velociraptor/clients/linux/agent ./agent chmod +x agent 3. 手动运行它进行测试: ./agent client -v 4. 安装为 systemd 服务(Velociraptor 的 `service install` 子命令在 Linux 底层使用 systemd;请以 root 身份运行): sudo ./agent service install --config client.config.yaml -v ### macOS 1. 在容器内部重新打包 macOS 客户端: docker exec -it velociraptor ./velociraptor config repack \ --exe /opt/velociraptor/mac/velociraptor_client \ client.config.yaml \ clients/mac/agent 2. 将其复制出来并赋予可执行权限: docker cp velociraptor:/velociraptor/clients/mac/agent ./agent chmod +x agent 3. 手动运行它进行测试: ./agent client -v 4. 安装为持久化服务。Velociraptor 的 `service install` 子命令也支持 macOS,它会通过 `launchd` 注册自身——请使用 root 权限运行: sudo ./agent service install --config client.config.yaml -v 如果这在你的 macOS 版本上没有按预期运行,请查阅官方文档以获取当前基于 launchd 的说明:https://docs.velociraptor.app/docs/deployment/clients/ ## 安全说明 - **切勿提交 `.env`、`certs/` 或重新打包的 agent 二进制文件。** 它们包含凭据、私钥以及嵌入的服务器配置/CA 材料。这些文件都已通过 `.gitignore` 排除。 - 上面生成的自签名证书对于本地 homelab 来说没有问题,但浏览器和 agent 默认不会信任它——这是正常的,并非 bug。 - `VELOX_SERVER_URL` 必须是一个每个 agent 操作系统都能实际解析并能在端口 8000 上访问的 hostname 或 IP。使用 `localhost` 仅在 agent 与服务器运行在同一宿主机上时才有效——如果你在其他机器/VM 上部署 agent,请在重新打包客户端之前,将 `VELOX_SERVER_URL` 和 `VELOX_FRONTEND_HOSTNAME` 更改为服务器实际可访问的 IP 或 DNS 名称,否则 agent 将无法签入。 ## 致谢 - [Velociraptor 文档](https://docs.velociraptor.app) - [Velocidex/velociraptor](https://github.com/Velocidex/velociraptor) —— 构建 此 homelab 所基于的官方项目
标签:Docker Compose, Nginx, Velociraptor, 安全测试工具, 库, 应急响应, 版权保护, 用户态调试, 自托管, 请求拦截