最近学校要举办ctf比赛,要搭建一个ctf的平台,ctfd是个不错的选择,是用flask框架写的。
搭建环境:
1 |
Ubuntu18.04.2 |
科学上网(可忽略)
ubuntu安装ssr客户端教程
ctfd
0x1安装Flask
1 |
python2 -m pip install Flask |
0x2下载ctfd
1 |
git clone https://github.com/CTFd/CTFd.git |
0x3安装ctfd
1 |
|
0x4连接mysql数据库
0x4.1安装mysql
1 |
1. sudo apt install mysql-server |
数据库用户登录和修改问题
参考此链接:https://www.jianshu.com/p/161f612a971c
0x4.2安装pymysql模块
1 |
python2 -m pip install pymysql |
0x4.3在mysql中创建ctf数据库
1 |
mysql> create database ctfd; |
修改一下数据库表的编码为utf-8
要不后台管理会无法输入中文
1 |
USE ctfd; |
允许远程访问
1 |
use mysql; |
修改mysqld.cnf
1 |
vim /etc/mysql/mysql.conf.d/mysqld.cnf |
重启myqsl
1 |
service mysql restart |
导入外部的数据库(忽略)
1 |
创建数据库:create database js; |
0x4.4在CTFd根目录下CTFd/config.py中
修改数据库配置:
1 |
#DATABASE_URL = os.getenv('DATABASE_URL') or 'sqlite:///{}/ctfd.db'.format(os.path.dirname(os.path.abspath(__file__))) |
0x5本地运行
1 |
sudo pythons server.py |
访问
1 |
127.0.0.1:4000 |
此时只能在本地上访问。
0x6让外网访问
安装gunicorn并运行CTFd
1 |
sudo python2 -m pip install gunicorn |
进入 CTFd项目目录运行如下命令
1 |
sudo gunicorn --bind 0.0.0.0:8080 -w 1 "CTFd:create_app()" |
将网站映射到8080端口,外网访问
0x5和0x6的运行方式测试一下玩玩还ok,多人的话就选择apache或nginx,服务器配置高的话就选择apache搭建(此处的apache搭建没成功),配置低的话选择nginx较好。
mod_wsgi+apache 搭建
安装apache
1 |
sudo apt install apache2 |
0x1安装mod_swigi
1 |
apt-get install libapache2-mod-wsgi |
如果出现apxs的错误,运行如下命令
1 |
sudo apt install apache2-dev |
要验证安装是否成功,请使用start-server命令运行mod_wsgi-express脚本
1 |
mod_wsgi-express start-server |
0x2修改wsgi.py文件
在CFTd/wsgi.py
1 |
import sys |
0x3新建站点文件
详细知识可看apache的站点文件配置
在/etc/apache2/sites-available
中新建一个ctfd.conf
1 |
<VirtualHost *:80> |
配置参数信息详细可看
Apache配置文件httpd.conf详解
建立软连接到sites-enabled
1 |
ln -s /etc/apache2/sites-available/ctfd.conf /etc/apache2/sites-enabled/ctfd.conf |
重启apache2
1 |
/etc/init.d/apache2 restart |
还是有点搭建不成功,留着以后思考
nginx+uwsgi搭建
0x1修改wsgi.py文件
在CFTd/wsgi.py
1 |
import sys |
0x2 uwsgi
1 |
pip install uwsgi |
在/etc/uwsgi/apps-available
新建uwsgi.ini
文件
1 |
/etc/uwsgi/apps-available |
配置uwsgi.int文件内容
1 |
[uwsgi] |
建立软连接到apps-enabled/下
1 |
ln -s /etc/uwsgi/apps-available/uwsgi.ini /etc/uwsgi/apps-enabled/uwsgi.ini |
在apps-enabled/下运行
1 |
uwsgi -d --ini /etc/uwsgi/apps-enabled/uwsgi.ini |
CTFd目录用户权限赋值
1 |
chown -R www-data:www-data CTFd/ |
如果遇到权限问题
可以看此文章:http://www.voidcn.com/article/p-xohpfusg-bsw.html
如果要杀掉uwsgi进程的命令
1 |
#通过ps,查看uwsgi相关进程 |
0x3 修改nginx配置文件
修改/etc/ngingx/sites-avaliable下的default文件为
1 |
server { |
nginx详细的配置文件信息可看
nginx服务器安装及配置文件详解
参考教程:
CTFd搭建CTF平台
http://www.ifuryst.com/archives/CTFd.html
mod_wsgi (Apache)
https://dormousehole.readthedocs.io/en/latest/deploying/mod_wsgi.html
官方搭建教程 https://github.com/CTFd/CTFd/wiki/Getting-Started
ctfd(flask+nginx+redis)搭建日记
https://blog.csdn.net/weixin_41073695/article/details/86697749
FROM :blog.cfyqy.com | Author:cfyqy
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论