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 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
第三步:使用阿里云镜像加速
在阿里云控制台找到容器镜像服务
在侧边栏找到镜像工具中的镜像加速器,然后找到操作文档的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/
安装完成
安装完成后可以用nginx做一个转发,也可以使用frp做一个内网穿透
其他相关链接:
- CTFdGitHub项目地址:https://github.com/CTFd/CTFd
- frp教程:通过frp实现内网穿透
- 菜鸟教程docker:https://www.runoob.com/docker/centos-docker-install.html