从0-1的CTF比赛环境搭建过程

发布于:2023-01-15 ⋅ 阅读:(646) ⋅ 点赞:(0)

博主 @Vicosna 已经对CTFd v3.3.1官方源码进行了更换国内镜像源、添加CTFd-Whale子模块、配置frp网络、设置静态文件CDN加速等工作,可前往使用作者修改的版本进行安装部署。请前往获取:GitHub - ollyhsu/CTFd: CTFs as you need them

本人环境为腾讯云轻型应用服务器学生价20米三个月真香,操作系统:CentOS7.6-Docker20

使用Xshll连接进行操作(根据个人习惯选择)

此次仅记录了搭建成功的大概过程,也是再N次失败后的一次小小复盘,其中有很多过程在不同机器和系统版本中可能出现报错,

其解决方法自行百度或科学上网查找。

有时间会更新本地虚拟机详细搭建过程。

git安装:

sudo yum install -y git

Docker环境安装

  1. 基础配置

    yum makeclean
    yum makecache
    yum install -y git vim
    yum install -y yum-utils device-mapper-persistent-data lvm2 bind-utils
  2. 设置yum源

    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

  3. 安装docker

    yum install -y docker
    docker version

  4. 启动并加入开机启动

    systemctl start docker
    systemctl enable docker

  5. 配置Docker加速

    vi /etc/docker/daemon.json

    我这边使用的阿里云的镜像加速器,可自行申请

    添加一下内容

    {
      "registry-mirrors": ["https://m7mz8a5m.mirror.aliyuncs.com"]
    }

  6. 重新启动Docker并查看Docker信息

    systemctl daemon-reload
    systemctl restart docker
    docker info

  7. 验证是否安装成功

    docker version

安装 Docker Compose

  1. 安装python-pip并检查是否安装成功(cenos7有可能会出现报错)

    1. 如果使用pip安装失败可尝试Centos7安装docker与docker-compose - lywJee - 博客园 (cnblogs.com)

      yum -y install epel-release
      yum -y install python-pip
      pip -V

  2. 升级php

    pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple

  3. 安装docker-compose并查看docker compose版本

    pip install docker-compose -i https://pypi.tuna.tsinghua.edu.cn/simple 
    docker-compose --version

查看版本信息

  1. 通过docker --version来验证Docker安装是否成功

    docker --version
  2. 通过docker-compose --version来验证Docker Compose安装是否成功

    docker-compose --version
  3. 如果能正常返回版本信息,到这里基本完成了环境的准备环节

Docker集群设置

  1. 启用Docker Swarm,并为生成的Manager节点取一个别名

    1. docker swarm init       # 初始化
      docker node ls          # 查看节点ID
      docker node update --label-add name=linux-1 <节点 ID>  # 添加别名

下载CTFd修改版

博主 @Vicosna 已经对CTFd v3.3.1官方源码进行了更换国内镜像源、添加CTFd-Whale子模块、配置frp网络、设置静态文件CDN加速等工作,可前往使用作者修改的版本进行安装部署。

git clone -b frp https://github.com/vicosna/CTFd.git        # 修改版(根目录不建议修改名字)
cd CTFd                                                     # 进入CTFd目录
git submodule update --init                                 # 更新CTFd-Whale子模块
​
# ——————————————————————————————————————————————————————
# 如果你访问Github的速度不佳,也可以使用博主提供的CSDN和Gitee版(可选)
git clone -b https://codechina.csdn.net/vicosna/CTFd.git    # CSDN
cd CTFd                                                     # 进入CTFd目录
sed -i 's/github.com/codechina.csdn.net/g' .gitmodules      # 修改子模块Url
git submodule update --init                                 # 更新CTFd-Whale子模块
# ——————————————————————————————————————————————————————
git clone -b frp https://gitee.com/vicosna/CTFd.git         # Gitee
cd CTFd                                                     # 进入CTFd目录
sed -i 's/github.com/gitee.com/g' .gitmodules               # 修改子模块Url
git submodule update --init                                 # 更新CTFd-Whale子模块
​

构建镜像

  1. 运行

    docker-compose build

    命令,等待

  2. 如果没有错误的话就会返回:Successfully tagged ctfd_ctfd:latest

部署容器

  1. 运行

    docker-compose up -d 

    部署容器,耐心等待~

  2. 如果全部显示done,就成功啦!

  3. 再使用

    docker ps -a

    查看一下当前正在运行的容器是否都正常。

    1. 访问你的服务器的公网IP就能打开平台界面啦,由于CTFd最新版启用了nginx端口转发,我们直接访问80端口即可,当然CTFd的默认端口8000也可以访问。

大概就是这样子