前一段時(shí)間學(xué)校社團(tuán)組織了一次CTF小比賽萝挤,當(dāng)時(shí)就是用的CTFd這個(gè)平臺(tái)缕棵。無(wú)奈的是最近CTFd更新了饿肺,所以舊版本的包我就安裝不上了汗洒。最近研究了一下新版的CTFd(v2.1.2),順便還把新版的CTFd漢化了庭猩∪鳎總體來(lái)說(shuō)码泞,現(xiàn)在的CTFd功能越來(lái)越強(qiáng)大了谁榜,變成了團(tuán)隊(duì)賽以及個(gè)人賽兩種模式,在管理員后臺(tái)也可以給一些用戶進(jìn)行獎(jiǎng)勵(lì)加分的操作等等...
官方Github地址
環(huán)境要求
1.Centos 7 64位
2.Docker
3.nginx
4.python2.7
安裝過(guò)程
我感覺用Docker安裝更加方便一些凡纳,所以此次用docker-compose up的方式進(jìn)行安裝的窃植。
首先安裝Docker
安裝需要的軟件包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 bind-utils
設(shè)置yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安裝docker
sudo yum install docker-ce
啟動(dòng)并加入開機(jī)啟動(dòng)
sudo systemctl start docker
sudo systemctl enable docker
驗(yàn)證是否安裝成功
docker version
安裝docker-compose
參考鏈接
先安裝python-pip
yum -y install epel-release
yum -y install python-pip
檢查pip是否安裝成功
pip -V
對(duì)安裝的pip進(jìn)行升級(jí)(可選)
pip install --upgrade pip
安裝docker-compose
pip install docker-compose
如果報(bào)錯(cuò):
ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org', port=443): Read timed out
解決方法:
pip --default-timeout=200 install -U docker-compose
檢查docker-compose是否成功安裝
docker-compose -version
下載CTFd
如果你的系統(tǒng)上沒有g(shù)it請(qǐng)先
sudo yum install -y git
從Github上克隆CTFd
git clone https://github.com/ctfd/ctfd.git
也可以下載我打包好的壓縮包直接上傳到你的服務(wù)器,v2.1.2版本荐糜,當(dāng)前最新巷怜。
下載鏈接地址葛超,密碼:xg7e
下載成功后解壓,你可以看到一個(gè)CTFd文件夾
CTFd的主目錄結(jié)構(gòu)
此后你可以選擇是否用中文版延塑,如果想用中文版绣张,直接下載我提供的漢化包替換主目錄/CTFd路徑下的themes目錄即可(記得做好備份)。
漢化包下載鏈接地址关带,密碼:nkqd
然后在CTFd的主目錄下
docker-compose up
靜靜等待安裝完成侥涵,成功會(huì)彈出http://0.0.0.0:8000
此時(shí),你的CTFd就安裝完成了宋雏。
如果安裝成功不能訪問(wèn)芜飘,看下是不是防火墻把端口給過(guò)濾掉了。
漢化效果
替換themes目錄后效果如下:
后續(xù)運(yùn)維
CTFd的數(shù)據(jù)庫(kù)用的是mariadb,看一下docker運(yùn)行了哪些容器
可以看到運(yùn)行了三個(gè)容器磨总,分別是ctfd嗦明,mariadb,redis
我們可以直接進(jìn)入到各個(gè)容器進(jìn)行操作蚪燕。
docker exec -it [CONTAINER ID] /bin/bash
數(shù)據(jù)庫(kù)root賬戶的密碼默認(rèn)為ctfd
原先舊版的CTFd如果數(shù)據(jù)庫(kù)不設(shè)置UTF-8會(huì)亂碼娶牌,新版本測(cè)試過(guò)程中沒碰到此類問(wèn)題,如果亂碼就進(jìn)入到ctfd數(shù)據(jù)庫(kù)敲一下命令
ALTER TABLE [table name] CONVERT TO CHARACTER SET utf8;
配置Nginx
如果有需要的話也可以配置一下nginx馆纳,這樣訪問(wèn)速度會(huì)變快诗良,而且作為一個(gè)中間件更改端口會(huì)更方便(當(dāng)然小伙伴們選擇Apache也是可以的)。
參考鏈接
安裝所需環(huán)境
yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
根目錄下新建一個(gè)文件夾nginx
mkdir /nginx
cd /nginx
wget https://nginx.org/download/nginx-1.14.2.tar.gz
tar -zxvf nginx-1.14.2.tar.gz
然后進(jìn)入到目錄下進(jìn)行編譯
make
make install
查找一下nginx的位置
whereis nginx
nginx常見命令
啟動(dòng)厕诡、停止nginx
cd /usr/local/nginx/sbin/
./nginx
./nginx -s stop
./nginx -s quit
./nginx -s reload
./nginx -s quit:此方式停止步驟是待nginx進(jìn)程處理任務(wù)完畢進(jìn)行停止
./nginx -s stop:此方式相當(dāng)于先查出nginx進(jìn)程id再使用kill命令強(qiáng)制殺掉進(jìn)程
nginx開機(jī)自啟動(dòng)
即在rc.local增加啟動(dòng)代碼就可以了累榜。
vi /etc/rc.local
增加一行 /usr/local/nginx/sbin/nginx (根據(jù)whereis nginx實(shí)際的位置為準(zhǔn))
設(shè)置執(zhí)行權(quán)限:
chmod 755 rc.local
配置nginx
配置之前需要先運(yùn)行一下nginx
./nginx
./nginx -s quit
然后在修改配置文件
vim /usr/local/nginx/conf/nginx.conf(whereis nginx 實(shí)際情況)
server下的location替換為
location /{
proxy_pass http://localhost:8000;
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;
}
最后需要在firewall中開放80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
然后在啟動(dòng)一下nginx就可以通過(guò)80端口訪問(wèn)你的CTFd了。
注:有些安裝步驟源于互聯(lián)網(wǎng)灵嫌,均已標(biāo)注原文鏈接壹罚,侵刪。
轉(zhuǎn)載請(qǐng)標(biāo)明出處:https://linuz.me/2019/06/19/install-ctfd.html