美文网首页
搭建 CTFd 平台

搭建 CTFd 平台

作者: 失眠是真滴难受 | 来源:发表于2020-10-03 00:20 被阅读0次

现在 CTF 比赛很火 ,我们学校也要搞一个比赛,搭建平台这些活就由我来干了,在这过程中遇到了一些问题,做个记录,方便以后再搭建的时候操作。

平台选择

我选择的是 CTFd 这个框架,网上的资料很多,配上插件,搭建动态靶机靶场很方便。

查找资料

一开始的时候是打算手动安装各种环境的,不过当我看到有提供了用 docker 安装的方式后,还是打算用 docker 了,一是方便,而是以后即使在不同的环境上搭建,都是一样的操作。

下载项目

项目地址: github, 这是我新建的一个仓库,从分支 修改而来的,可以直接跑起来,主要是修复了一下依赖,原项目有些库已经过时了。

git clone https://github.com/zaunist/CTFD-single.git

搭建过程

进入刚才下载下来的文件夹内

cd CTFD-single/

添加 docker hub 镜像,修改 /etc/docker/daemon.json 文件, daemon.json 里可以定义不少参数,我这里只设置了镜像地址和 dns 地址。

{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/",
                      "https://nrbewqda.mirror.aliyuncs.com"],
  "dns": ["10.200.4.1"]
}

设置 docker swarm

sudo docker swarm init

构建 docker

sudo docker-compose up -d

到这里就已经构建完成,访问 8000 端口就可以添加题目,添加比赛

踩坑

dns 解析

这个问题是我们学校内部导致的,学校强制要求使用学校提供的 dns 服务器,如果使用默认的 dns 解析或者设置成了其它的地址, 构建 docker 镜像时会出错。解决方法就是设置为学校内部的 dns,就是上面的 "10.200.4.1"

tcpdump抓包

依赖

错误一:

/usr/local/lib/python3.7/importlib/_bootstrap.py:219:RuntimeWarning: numpy.ufunc size changed, may indicate binary incompatibility

在 CTFd 项目中,使用到了 gevent, 而师傅提供的 single 分支已经很久没有更新了,里面使用的是 1.4 版本,但是 1.4 版本不支持 python3.8, 而基于 alpine 构建 docker 默认就使用 python3.8 ,因此需要对 gevent 进行升级,我更换成了最新的 20.9.0 版本。

错误二:
错误信息找不到了,但是这次是因为缺少一个库,在 requirements.txt 中添加 Flask-APScheduler==1.11.0 即可。

错误三:
构建 docker 时没有指定 python 版本,从清华源安装包的时候显示包不存在,我去清华镜像站查了一下,需要指定 python2 和 python3 的版本才行,修改之前 dockerfile 文件部分内容

    apk update && \
    apk add \
        python \
        python-dev \
        linux-headers \
        libffi-dev \
        gcc \
        make \

修改之后

    apk update && \
    apk add \
        python3 \
        python3-dev \
        linux-headers \
        libffi-dev \
        gcc \
        make \

总结

遇到的问题也就这几个,但是花了一天时间才全部解决,花了最多时间的是 gevent 的兼容问题,一开始以为自己有哪里配置错了,反复的构建 docker,后来搜索了很久才在一个 github 的 issue 下面看到别人的评论,知道了当前版本 gevent 不支持 python 3.8, 这才解决了问题。善用 github,之前别的问题也是在 issue 下找到的解决方法。

公众号:没有梦想的阿巧 后台回复 "群聊",一起学习,一起进步

相关文章

  • CTFd平台搭建

    title: CTFd平台搭建date: 2017-12-28 22:03:05tags: CTF.d 看到不少高...

  • 搭建 CTFd 平台

    现在 CTF 比赛很火 ,我们学校也要搞一个比赛,搭建平台这些活就由我来干了,在这过程中遇到了一些问题,做个记录,...

  • 搭建CTFd平台过程

    学校的社团要招新,我们需要队伍内部的ctf的平台,刚开始我在本地搭了fbctf的平台,感觉帅帅哒,但是在远程时,由...

  • CTFd搭建笔记

    概述 CTFd是一款基于Apache2.0的协议的开源CTF平台,最新版本目前为1.20。该平台功能强大,基本上能...

  • 手把手教你如何建立一个支持ctf动态独立靶机的靶场

    前言 要说开源的ctf训练平台,ctfd是不错的选择,支持各种插件,今天我就来介绍一下如何部署赵今师傅为ctfd平...

  • centos7.2从零开始搭建CTFd平台

    最近学校要做一个ctf的比赛,就想着搭一个平台,好的开源平台就是ctfd和fbctf,但是fbctf对服务器要求配...

  • Ubuntu16.04+nginx+uwsgi搭建CTFd环境

    背景 CTFd是时下比较流行的CTF平台,其安装和部署也是比较容易。虽然facebookCTF界面够炫够酷...

  • centos7 搭建CTFD基础环境

    安装docker docker-compose docker docker-compose[https://www...

  • 平台(现代诗)

    平台是你 搭建的 借我 站上去 看世界 平台是你 搭建的 借我 站上去 平台是你 搭建的 借我 平台是你 搭建的 ...

  • 基于宜搭的《T恤尺码收集》应用搭建

    一、产品介绍 宜搭:人人搭建、人人使用。应用搭建,从未如此简单。 宜搭平台的命名取适宜搭建、容易搭建之意。平台集合...

网友评论

      本文标题:搭建 CTFd 平台

      本文链接:https://www.haomeiwen.com/subject/lcwiuktx.html