ctf的比赛程序有很多,CTFd是最出名的用的人也是最多的,我们逐日者安全团队也用了很长时间。这篇教程主要是教大家如何安装CTFd,和安装中可能会遇到的问题以及解决办法。关于CTFd的使用我会之后单独写一篇教程。

准备工作

  • 一台centos7.x的服务器或者虚拟机
  • 升级一下软件yum update -y
  • 安装一些必要的软件yum install git zip unzip -y

第一步:安装Docker

安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。

sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2

使用以下命令来设置稳定的仓库。

sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装最新版本的 Docker Engine-Community 和 containerd。

sudo yum install docker-ce docker-ce-cli containerd.io

如果提示您接受 GPG 密钥,请选是。

启动 Docker。

sudo systemctl start docker

通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 。

sudo docker run hello-world
docker安装完成

第二步:安装Docker Compose

运行以下命令以下载 Docker Compose 的当前稳定版本:

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

要安装其他版本的 Compose,请替换 1.24.1。

有时候可能GitHub在国内可能会抽风,建议开代理。开代理不在本教程范围内自己百度。或者直接去GitHub把文件下载下来https://github.com/docker/compose/releases,下载文件名为docker-compose-Linux-x86_64的文件,用winscp上传到/usr/local/bin/目录下并且改名为docker-compose。

将可执行权限应用于二进制文件:

sudo chmod +x /usr/local/bin/docker-compose

创建软链:

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

测试是否安装成功:

docker-compose --version
docker compose安装完成

第三步:使用阿里云镜像加速

在阿里云控制台找到容器镜像服务

在侧边栏找到镜像工具中的镜像加速器,然后找到操作文档的centos复制代码框内代码直接运行。

也可以选择其他镜像加速服务,请自行百度。

阿里云容器镜像控制台

第四步:安装CTFd

切换到工作目录可以在根目录新建一个

mkdir /ctf
cd /ctf

通过git clone下载CTFd源码

git clone https://github.com/CTFd/CTFd.git

这里又有可能会遇到GitHub国内抽风的情况,可以开代理,也可以直接下载zip压缩包上传到服务器.

如果是通过git clone模式下载的可以直接切换到CTFd目录

cd CTFd

如果是zip压缩包,需要先解压并改名然后切换目录

unzip CTFd-master.zip
mv CTFd-master CTFd
cd CTFd

使用docker compose安装

docker-compose up

此过程也会出现报错,一般是网络问题,重新运行命令即可。不开代理大概等待半个小时即可安装成功。

安装完成访问服务器ip地址加端口号8000即可访问,例如:http://xxx.xxx.xxx.xxx:8000/

CTFd网页setup

安装完成

安装完成后可以用nginx做一个转发,也可以使用frp做一个内网穿透

其他相关链接: