基于 CTFd 与 Docker 搭建动态 CTF 竞赛靶场实战指南
前言
在网络安全竞赛(CTF)中,动态靶场能够提供隔离的、按需分配的实验环境,极大地提升了比赛的公平性和安全性。本文将以 CTFd 框架为基础,结合 Docker 技术,详细介绍如何从零开始搭建一个支持动态题目实例的 CTF 竞赛平台。我们将重点解决搭建过程中常见的环境冲突、配置错误及网络问题。
前期准备
1. 操作系统选择
推荐使用 Ubuntu 20.04 Server 版本。虽然 CentOS 也可用,但 SELinux 机制常与 Docker 容器权限产生冲突,排查难度较大,建议优先选择 Ubuntu。
2. 基础软件版本要求
- Docker: 20.10.2 或更高版本
- Docker-compose: 1.25.0 或更高版本
- Python: 3.6+ (注意 pip 版本兼容性)
注意:Python 3.6 与 pip 21.3 版本存在兼容性问题,可能导致依赖安装失败。如遇此情况,请升级 Python 或降级 pip 至兼容版本。
系统环境配置
1. 更换国内软件源
由于默认源位于海外,下载速度较慢,建议更换为阿里云、清华或中科大镜像源。
以阿里云源为例:
cp /etc/apt/sources.list /etc/apt/sources.list.bak
vim /etc/apt/sources.list
将内容替换为:
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
更新缓存:
apt-get update
2. 安装必要工具
依次安装 pip、git 和 curl:
apt-get install python3-pip git curl -y
pip3 install --upgrade pip
3. 安装 Docker
使用官方脚本快速安装:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
验证安装:
docker --version
4. 安装 Docker Compose
pip3 install docker-compose -i https://pypi.tuna.tsinghua.edu.cn/simple
docker-compose --version
5. 配置 Docker 镜像加速
为避免拉取镜像过慢,建议配置 daocloud 和 aliyun 镜像加速器。
daocloud 配置: 访问 daocloud.io 获取 Linux 加速命令并执行。
阿里云配置: 登录阿里云控制台 -> 容器镜像服务 -> 镜像加速器,复制对应命令执行。


