计协CTF平台搭建记录

2018年7月27日 0 条评论 172 次阅读 2 人点赞

因为社团小伙伴们需要有一个练习平台,并且纳新也需要对新生的水平进行测验,所以就自己搭建了一个CTF平台,本文简单记录一下。

这里选择的是开源的CTFd平台,相对于fbctf来说,CTFd更简单,对性能要求更低,并且安装过程不需要科学上网,可以说是很方便了。

平台:CTFd

系统:Centos

一:更新一下服务器

yum -y update

二:安装环境

安装web容器:yum install nginx(使用nginx是因为反向代理和绕过备案这两个原因)

安装数据库:yum -y install mariadb mariadb-server

启动数据库:systemctl start mariadb

配置数据库:mysql_secure_installation(第一次设置提示输入密码直接回车跳过即可设置密码)

三:安装CTFd

新建一个文件夹来存放所需文件,我这里新建一个名为ctf的文件夹

mkdir ctf

cd ctf

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

然后运行一下CTFd文件夹中的prepare.sh

./prepare.sh

安装mysql:

yum -y install MySQL-python

修改配置文件config.py(按自己实际情况修改)

SQLALCHEMY_DATABASE_URI = 'mysql://root:密码@localhost/CTFd?charset=utf8'

HOST = "服务器ip"

设置数据库:mysql -u root -p

新建一个库,CREATE DATABASE CTFd;

然后退出数据库运行serve.py

python serve.py

然后结束进程再次进入数据库

mysql -u root -p

use CTFd;

执行以下命令防止平台出现中文乱码:

ALTER TABLE awards CONVERT TO CHARACTER SET utf8;

ALTER TABLE challenges CONVERT TO CHARACTER SET utf8;

ALTER TABLE config CONVERT TO CHARACTER SET utf8;

ALTER TABLE containers CONVERT TO CHARACTER SET utf8;

ALTER TABLE files CONVERT TO CHARACTER SET utf8;

ALTER TABLE keys CONVERT TO CHARACTER SET utf8;

ALTER TABLE pages CONVERT TO CHARACTER SET utf8;

ALTER TABLE solves CONVERT TO CHARACTER SET utf8;

ALTER TABLE tags CONVERT TO CHARACTER SET utf8;

ALTER TABLE teams CONVERT TO CHARACTER SET utf8;

ALTER TABLE tracking CONVERT TO CHARACTER SET utf8;

ALTER TABLE wrong_keys CONVERT TO CHARACTER SET utf8;

此时在CTFd目录下直接执行gunicorn --bind 0.0.0.0:4000 -w 1 "CTFd:create_app()" 即可启动平台,此时浏览器访问ip:4000即可进入平台,但是这么做会显得很繁琐,并且无法解析域名,所以我们使用nginx进行反向代理。

修改nginx配置文件:/etc/nginx/nginx.conf

将以下内容填入location{}

proxy_pass http://localhost:4000;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_redirect off;

然后平滑启动nginx:nginx -s reload

如果报错的话可以先指定一下nginx运行目录:nginx -c /etc/nginx/nginx.conf

然后再次启动即可。

最后回到CTFd目录运行:gunicorn --bind 0.0.0.0:4000 -w 1 "CTFd:create_app()"

直接访问服务器ip即可进入平台。

这样一来一个CTFd平台就搭建完成了,但是有一个小BUG,一旦进入后台修改平台的config选项,平台会立马崩溃,只好忍住不动了。

本文结束。

参考文章:

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

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

向大佬表示感谢!

梦呓233

时常抽风的半文艺半理工小青年

文章评论(0)