首页
/ 使用Docker部署Guardicore Infection Monkey项目指南

使用Docker部署Guardicore Infection Monkey项目指南

2025-07-07 05:34:40作者:齐冠琰

项目概述

Guardicore Infection Monkey是一款开源的网络安全测试工具,用于评估企业网络的弹性。它通过模拟攻击者的行为来测试网络防御能力,帮助安全团队发现潜在漏洞。本文将详细介绍如何使用Docker容器方式部署该工具。

系统要求

  • 仅支持Linux操作系统
  • 不支持Windows或Mac上的Docker环境
  • 需要安装Docker引擎

部署步骤

1. 拉取Docker镜像

首先需要获取两个核心镜像:

# 拉取MongoDB 6.0镜像
sudo docker pull mongo:6.0

# 拉取Monkey Island最新镜像
sudo docker pull infectionmonkey/monkey-island:latest

2. 启动MongoDB服务

MongoDB将作为数据存储后端:

sudo docker run \
    --name monkey-mongo \
    --network=host \
    --volume monkey-db:/data/db \
    --detach \
    mongo:6.0

注意:如果是从旧版本升级,请确保删除旧版本的MongoDB容器和相关数据卷。

3. 启动Monkey Island服务

默认使用自签名SSL证书启动:

sudo docker run \
    --tty \
    --interactive \
    --name monkey-island \
    --network=host \
    infectionmonkey/monkey-island:latest

4. 访问控制台

服务启动后,通过浏览器访问:

https://localhost

高级配置

自定义服务器配置

  1. 创建配置目录:
mkdir -m=0700 ./monkey_island_data
  1. 生成初始配置:
sudo docker run \
    --rm \
    --name monkey-island \
    --network=host \
    --user "$(id -u ${USER}):$(id -g ${USER})" \
    --volume "$(realpath ./monkey_island_data)":/monkey_island_data \
    infectionmonkey/monkey-island:latest --setup-only
  1. 编辑server_config.json文件,至少包含:
{
    "data_dir": "/monkey_island_data",
    "mongodb": {
        "start_mongodb": false
    }
}
  1. 使用自定义配置启动:
sudo docker run \
    --rm \
    --name monkey-island \
    --network=host \
    --user "$(id -u ${USER}):$(id -g ${USER})" \
    --volume "$(realpath ./monkey_island_data)":/monkey_island_data \
    infectionmonkey/monkey-island:latest --server-config="/monkey_island_data/server_config.json"

修改监听端口

在server_config.json中添加:

{
  "island_port": 8080
}

使用自定义SSL证书

  1. 将证书(.crt)和密钥(.key)文件放入配置目录
  2. 设置文件权限:
chmod 600 <证书文件>
chmod 600 <密钥文件>
  1. 修改配置:
{
    "ssl_certificate": {
        "ssl_certificate_file": "/monkey_island_data/my_cert.crt",
        "ssl_certificate_key_file": "/monkey_island_data/my_key.key"
    }
}

调整日志级别

在配置文件中添加:

{
    "log_level": "INFO"
}

升级指南

当前版本不支持原地升级,需要执行以下步骤:

  1. 停止并删除现有容器和数据卷
  2. 拉取新版本镜像
  3. 重新执行安装步骤
  4. 如需保留配置,可通过控制台的"导出配置"功能备份

常见问题

Unicode解码错误

当遇到UnicodeDecodeError时,可能是由于加密密钥不匹配导致。解决方法:

  1. 重启现有容器而非创建新容器
  2. 删除并重建MongoDB容器
  3. 使用数据卷持久化密钥文件

安全建议

  1. 生产环境建议使用企业CA签发的证书而非自签名证书
  2. 确保配置目录权限设置为0700
  3. 定期备份重要配置数据

通过以上步骤,您可以成功部署并使用Guardicore Infection Monkey工具来测试和提升您的网络安全防御能力。