最近學校要做一個ctf的比賽,就想著搭一個平臺,好的開源平臺就是ctfd和fbctf,但是fbctf對服務器要求配置高,所以只有搭建ctfd了,搭建好了使用效果感覺真心不錯。
1.服務器使用的是centos 7.2 64,首先運行一下yum -y update更新一下服務器,再安裝一下nginx(yum -y install nginx),因為后面用它來反向代理ctfd的端口可以提高一下性能。
然后安裝數據庫,yum -y install mariadb mariadb-server,啟動數據庫systemctl start mariadb,
mysql_secure_installation開始配置數據庫,先輸入密碼,然后一路回車即可,可根據自己需求看著改。
安裝git(yum -y install git)
2.
然后新建一個ctf的文件夾,將其下載到里面 git clone https://github.com/isislab/CTFd.git?
然后先運行CTFd下面的./prepare.sh,centos和ubuntu并不一樣,可以打開這個文件按照操作系統自己安裝插件
yum -y install MySQL-python
修改配置文件config.py,
我的修改是這樣的
將圖中的修改成自己的信息就行,
然后進入數據庫 mysql -u root -p,
新建一個庫,CREATE DATABASE CTFd;
此時退出數據庫返回CTFd目錄運行一下serve.py
ctrl+c退出再進入數據庫
use CTFd;
執行
防止亂碼,將里面的字符集全部修改為utf-8.
退出mysql,
直接在ctfd目錄下運行gunicorn --bind 0.0.0.0:4000 -w 1 "CTFd:create_app()"
記得安全組或者防火墻開放4000的端口,不然無法訪問,
就這樣,一個CTFd的網站就搭好了,
可以配置下nginx,vi /etc/nginx/nginx.conf
server的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
最后回到開始建的ctf的目錄下面的CTFd目錄運行gunicorn --bind 0.0.0.0:4000 -w 1 "CTFd:create_app()"
此時直接訪問你的服務器地址就能直接入坑了,不用加4000端口了(有些瀏覽器可能有緩存不能及時訪問,刷一下就行了)。用了nginx后會發現更流暢了不是。