CTFd搭建笔记

概述

CTFd是一款基于Apache2.0的协议的开源CTF平台,最新版本目前为1.20。该平台功能强大,基本上能够满足目前的CTF竞赛需求,同时,该平台提供了强大的插件功能,可以自己进行插件开发实现自己的功能。

注意事项

本次平台的搭建是在本地虚拟机ubuntu 14.04 LTS下完成的,请保证系统环境正常。如果需要部署在云服务器上,请准备好ssh工具(推荐xshell)道理大体相同,做只是最后为了让访问更流畅需要做下优化,nginx+gunicorn 文章末尾会做说明!

部署平台

0.网络和系统环境

虚拟机的话最好使用桥接,提前排除这个出错的可能性,云服务器可以忽略这一点
安利一波系统下载地址,推荐使用国内镜像站下载:

清华大学开源软件镜像站

1.安装git

    sudo apt install git

2.安装pip

    sudo apt install python-pip

3.安装Flask

    sudo pip install Flask

至此如果就已经出现许多依赖问题,最好耐心解决掉,通常全新安装的系统出现的问题会比较多

4.下载CTFd

    sudo git clone https://github.com/isislab/CTFd.git
    chmod -R 777 CTFd/

下载后,你可能需要对config.py文件进行修改,通常我们在服务器上部署平台会先配置数据库,当然这个一直会出现很迷的问题,如果你只是在本地部署可以忽略这一条!数据库如何部署请自行百度
数据库部署后请修改CTFd目录下的config.py文件:

vim使用科普-->命令模式下输入/后可以实现类似Ctrl+F的功能搜索文本内容,按n查找下一条,当然你也可以在本地git clone下载CTFd文件先修改后上传

    原代码:
        SQLALCHEMY_DATABASE_URI = os.environ.get('sqlite:///{}/ctfd.db?charset=utf8') or 'sqlite:///{}/ctfd.db'.format(os.path.dirname(os.path.abspath(__file__)))
    修改为:
        SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or 'mysql+pysql://数据库用户名:用户密码@localhost/数据库名?charset=字符编码'.format(os.path.dirname(os.path.abspath(__file__)))
    举例:
        SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or 'mysql+pysql://ctfd:123456@localhost/CTFd?charset=utf8'.format(os.path.dirname(os.path.abspath(__file__)))

以上是常规安装平台才需要做的步骤,安装方式下面会介绍

5.安装CTFd

在CTF维基https://github.com/CTFd/CTFd/wiki/Getting-Started 中写了详细的安装步骤。

常规方式

# 克隆库
git clone https://github.com/CTFd/CTFd.git
cd CTFd/
# 安装操作系统需要安装的包
./prepare.sh
# 安装python需要的包
pip install -r requirements.txt
# 运行CTFd
python serve.py

接下去会下载很多东西,也就是跑下脚本一键部署平台所需要的环境,如果出现红字报错或者各种依赖问题,可以尝试update或者solo下,每个人情况不一,此类问题自行解决

完成以上步骤只是在本地搭起服务器,要是想在公网(物理机)访问,还需要安装gunicorn

        pip install gunicorn
        sudo (gunicorn --bind 0.0.0.0:8000 -w 4 "CTFd:create_app()"&)
        // 这里加了()还有&是为了那能够后台运行  [0.0.0.0]不用修改
        //gunicorn的命令一定要进CTFd目录输入
        //访问虚拟机(服务器)公网IP即可看见平台

如果你是在虚拟机部署,请切换为NAT连接,在VM虚拟网路编辑器上,将虚拟机的8000端口映射到本机上,即可实现物理机访问,桥接模式即可直接在局域网内共享平台

docker

git clone https://github.com/CTFd/CTFd.git
cd CTFd/
docker-compose up

然后访问链接 http://localhost:8000 即可

可以修改docker配置文件更改映射端口,我也准备去恶补下docker神器的使用了

✔推荐使用docker部署平台,无需苦恼环境问题,直接pull官方提供的依赖环境,搭建后的访问速度明显提升~

PS:在云服务器搭建,请先在安全组里开放8000端口

DIY

刚搭建好,肯定想着修改平台,你可以在CTFd/CTFd主题目录下慢慢修改,建议copy到本地使用编辑器Ctrl+F修改页面,这里就不多做介绍了,展示一下我自己的就好了,因为不喜欢花里胡哨,所以比较简陋,官方也有提供wiki https://github.com/CTFd 主题、插件都有~

image

整站镜像下载

如果你最终无法成功部署,只是想在本地局域网内使用,可以尝试下载博主搭建好的虚拟机镜像玩一玩,使用前注意重启虚拟机,因为快照是开机状态,NAT地址段可能不一样,需要重新获取
压缩包密码:qymua.com(平台未进行任何配置和优化)
压缩包大小:3.01G
解压后大小:13G
压缩包MD5:ef601c06af91f4c7532cbeaac7b324f0

下载地址

密码:da8m

思考

我们都知道不管是部署网站还是部署平台,配置环境都挺麻烦的,遇到问题也是常有的事情,那么利用BT面板一键部署环境以后,再按部就班部署平台是更顺利呢?还是遇到更多不可预测的问题?如果可以,那么后期维护会很方便,建议在本地模拟一遍再尝试在服务器上部署!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容