CTFd搭建记录

前段时间特别忙,然后刚回学校,作业还没做完,又有新的任务了,学校打算用CTF这种形式来对我们专业的学生进行考核,不评论这种做法,单纯记录下搭建过程。刚开始按照大佬的博文去搭,结果搭崩了……好像是版本不一样?心酸,还是看官方手册吧

以下部分卒^(* ̄(oo) ̄)^


环境准备

yum install git
yum install httpd mariadb mariadb-server mariadb-devel python devel gcc MySQL-python
pip install mysql-python

下载项目

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

安装CTFd

进入CTFd的目录

./prepare.sh

以上部分卒!

以下尝试使用nginx+gunicorn


环境准备

yum install -y git nginx mariadb mariadb-server Mysql-python python-pip 

打开mariadb

systemctl start mariadb

设置mariadb密码:

mysql_secure_installation

下载

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

安装CTFd

./prepare.sh

修改CTFd目录下的config.py

vim config.py

HOST = "123.206.**.**"
SQLALCHEMY_DATABASE_URI = 'mysql://root:<mysqlpasswd>@localhost/CTFd?charset=utf8'

运行serve.py

然后再次进入mysql

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;

退出mysql

在主要的CTFd目录下运行

gunicorn --bind 0.0.0.0:4000 -w 1 "CTFd:create_app()"

配置nginx 端口转发

vim /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;
}
systemctl enable nginx
systemctl enable mariabd

systemctl start nginx 

然后配置好VPS的防火墙安全策略等,OK

发表评论