当前位置:   article > 正文

Centos7上搭建CTFd和题目部署【一文就能搞定】_centos搭建ctfd

centos搭建ctfd

声明:此文章是通过参考其它博主的文章进行搭建,师傅们发布的时间也比较长,有些步骤出现一些问题,然后我这边总结写一下。

参考的文章:
https://blog.csdn.net/weixin_55710577/article/details/124238756?spm=1001.2014.3001.5506
https://blog.csdn.net/qq_27820913/article/details/128156684
https://blog.csdn.net/weixin_43075257/article/details/118486952?spm=1001.2014.3001.5506

安装python

(此文章用的是Python3.7)低于3.7会出现问题,还有更新Centos7时,不要更新内核直接更新包就可以了,昨天我是更新包和内核,发现我的python版本变成python 3.6去了,一直解决不了报错的问题,所以这个坑要注意了。

1.安装依赖

yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-deve
  • 1

2.`下载python3.7包、解压、编译

#下载
wget https://cdn.npm.taobao.org/dist/python/3.7.0/Python-3.7.0.tgz
#解压安装包
tar -zxvf Python-3.7.0.tgz
#编译安装python
cd Python-3.7.0 && ./configure --prefix=/usr/local/python3 && make && make install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3.创建python和pip3软连

ln -s /usr/local/python3/bin/python3 /usr/bin/python3

ln -s /usr/local/python3/bin/python3 /usr/bin/python3
  • 1
  • 2
  • 3

4.覆盖python2

mv /usr/bin/python /usr/bin/python2_old
mv /usr/bin/pip /usr/bin/pip2_old
#修改软连接
ln -s /usr/local/python3/bin/python3 /usr/bin/python
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
  • 1
  • 2
  • 3
  • 4
  • 5

5.解决不能yum问题

vim /usr/bin/yum
#把文件中的python修改成python2.7

vim /usr/libexec/urlgrabber-ext-down
同上,也是把python改成python2.7

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

CTFD搭建

1.下载Mariadb
添加mariadb的国内yum源

vim /etc/yum.repos.d/Mariadb.repo

添加以下内容,这里我改动了一下,换成我使用的!师傅那个源不能用了

# MariaDB 10.2 CentOS repository list - created 2018-06-06 03:42 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = https://mirrors.aliyun.com/mariadb/yum/10.4/centos7-amd64
gpgkey = https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1                
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

清除yum源缓存

yum clean all
  • 1

生成新的yum源缓存

yum makecache all
  • 1

安装mariadb

yum install MariaDB-server MariaDB-client -y
  • 1

启动mariadb并且添加开机自启

systemctl start mariadb.service
systemctl enable mariadb.service
  • 1
  • 2

新安装的mariadb不需要登录密码,直接输命令

mysql -u root -p
  • 1

回车就可以了
设置密码

mysqladmin -u root -p password (yourpassword)
例如:
mysqladmin -u root -p password 1234
  • 1
  • 2
  • 3

切记,当看到Enter password,这是提示你输入旧密码,因为我们是全新安装,没有旧密码,直接回车就可以。

2.安装需要的插件,插件部分安装暂时没有发现问题

yum install git -y
yum install epel-release
升级一下pip
pip install --upgrade pip
安装flask
pip install flask
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3.安装apache

yum install httpd
#设置开机自启
systemctl enable httpd.service
#验证是否自启动
systemctl is-enabled httpd.service
#出现enable,则启动成功
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

4、获取CTFd源码
进入html文件夹下

cd /var/www/html
  • 1

下载源码

wget https://github.com/CTFd/CTFd/archive/master.zip
  • 1

5、安装CTFd

需要先安装unzip
yum install unzip -y

unzip master.zip
  • 1
  • 2
  • 3
  • 4

更改文件夹权限

chmod -R 777 CTFd-master/
  • 1

进入CTFd-master并运行脚本

cd CTFd-master

sudo./prepare.sh
  • 1
  • 2
  • 3

进入数据库

mysql -u root -p
输入密码后回车

use mysql
 
创建数据库
create database CTFd;
退出
exit;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

修改一个文件,这样就可以连接了

vim serve.py
  • 1

在最底部,不改其它网络主机不能访问

app.run(debug=True, threaded=True, host="127.0.0.1", port=args.port)
改为
app.run(debug=False, threaded=True, host="0.0.0.0", port=args.port)
  • 1
  • 2
  • 3

启动CTFd

#重启apache
systemctl restart httpd
#重启数据库
systemctl restart mariadb
#关闭防火墙
systemctl stop firewalld
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

运行CTFd

python serve.py
由于python运行的在关闭远程链接后会断
我们再配置后台运行
nohup python -u serve.py > test.log 2>&1 &
  • 1
  • 2
  • 3
  • 4

搭建好了,我们尝试看看这个平台咋样,对了,这个是3.5版本汉化暂时没弄,不知道如何挑选汉化版本所以后面在研究一下!
在这里插入图片描述

Docker安装

1.root权限运行,更新包,不更新内核

yum -y upgrade
  • 1

2.安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  • 1

3.设置yum源

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  • 1

4.可以查看所有仓库中所有docker版本,并选择特定版本安装

yum list docker-ce --showduplicates | sort -r
  • 1

5.安装docker,版本号自选

sudo yum install docker-ce-17.12.0.ce
  • 1

6.启动并加入开机启动

sudo systemctl start docker
sudo systemctl status docker
sudo systemctl enable docker
  • 1
  • 2
  • 3

7.验证是否安装完成

docker version
  • 1

在这里插入图片描述
安装了docker,启动时出现的问题
在这里插入图片描述
解决方式:

在终端或命令提示符中运行以下命令下载 Docker Compose:(如果下载慢的话可以更换网络)
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

授予 Docker Compose 可执行权限:
sudo chmod +x /usr/local/bin/docker-compose

验证安装是否成功:
docker-compose --version
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

然后在尝试启动Docker就可以了,没有出现啥问题
在这里插入图片描述

部署题目

这里用CTFTraining题库进行演示,文章末会贴上CTF题库大全

sudo mkdir -p /opt/CTF #创建CTF目录
sudo cd /opt/CTF
sudo git clone https://github.com/CTFTraining/CTFTraining.git #安装CTFTraining,注意这里只能git下来目录,目录中是空的,需要一个一个CTF题目去git
cd CTFTraining
ls
  • 1
  • 2
  • 3
  • 4
  • 5

只有目录,里面并无内容
在这里插入图片描述

sudo git clone https://github.com/CTFTraining/0ctf_2016_unserialize.git #下载CTF题目,只要替换0ctf_2016_unserialize为其他目录名称即可下载所有题目
cd 0ctf_2016_unserialize/ #进入题目目录中
ls
  • 1
  • 2
  • 3

在这里插入图片描述
修改docker-compose.yml文件,设置端口及flag

sudo vim docker-compose.yml
[root@localhost 0ctf_2016_unserialize]# vi docker-compose.yml
  • 1
  • 2

按照以下方式改就可以了

[root@localhost 0ctf_2016_unserialize]# vi docker-compose.yml
# 0ctf 2016 piapiapia
version: "2"
services:
  web:
    build: .
    image: ctftraining/0ctf_2016_unserialize
    environment:
      - FLAG=flag{abcd123} #这个破flag记得改哟
    restart: always
    ports:
      - "8302:80"

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

不改的话只能本机访问,其它网络主机是访问不了的,
使用docker-compose启动:

sudo docker-compose up -d #使用docker-compose下载镜像生成容器并启动容器
  • 1

在这里插入图片描述
然后在通过IP+端口就可以访问了
在这里插入图片描述

docker ps -a #查看容器状态

docke命令 额外需要用到的
sudo docker stop 1646f8cdd650 #停止容器,1646f8cdd650为CTF题目CONTAINER ID
sudo docker rm 1646f8cdd650 #删除容器,1646f8cdd650为CTF题目CONTAINER ID

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

OK,基本搭建成功,花了三天时间研究,报错怀疑人生。看了这边篇文章来做基本一步到胃!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/646151
推荐阅读
相关标签
  

闽ICP备14008679号