Centos7上搭建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

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

3.创建python和pip3软连

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

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

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

5.解决不能yum问题

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

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

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                

清除yum源缓存

yum clean all

生成新的yum源缓存

yum makecache all

安装mariadb

yum install MariaDB-server MariaDB-client -y

启动mariadb并且添加开机自启

systemctl start mariadb.service
systemctl enable mariadb.service

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

mysql -u root -p

回车就可以了
设置密码

mysqladmin -u root -p password (yourpassword)
例如:
mysqladmin -u root -p password 1234

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

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

yum install git -y
yum install epel-release
升级一下pip
pip install --upgrade pip
安装flask
pip install flask

3.安装apache

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

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

cd /var/www/html

下载源码

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

5、安装CTFd

需要先安装unzip
yum install unzip -y

unzip master.zip

更改文件夹权限

chmod -R 777 CTFd-master/

进入CTFd-master并运行脚本

cd CTFd-master

sudo./prepare.sh

进入数据库

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

use mysql
 
创建数据库
create database CTFd;
退出
exit;

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

vim serve.py

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

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)

启动CTFd

#重启apache
systemctl restart httpd
#重启数据库
systemctl restart mariadb
#关闭防火墙
systemctl stop firewalld

运行CTFd

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

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

Docker安装

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

yum -y upgrade

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

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

3.设置yum源

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

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

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

5.安装docker,版本号自选

sudo yum install docker-ce-17.12.0.ce

6.启动并加入开机启动

sudo systemctl start docker
sudo systemctl status docker
sudo systemctl enable docker

7.验证是否安装完成

docker version

在这里插入图片描述
安装了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

然后在尝试启动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

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

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

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

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

按照以下方式改就可以了

[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"

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

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

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

docker ps -a #查看容器状态

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

在这里插入图片描述

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

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
好的,我会根据您的问题为您提供相关的指导。 首先,我们需要先搭建 LAMP 环境。 LAMP 是指 Linux + Apache + MySQL + PHP,这是一种经典的 Web 服务器架构。在 CentOS 7 上搭建 LAMP 环境的步骤如下: 1. 安装 Apache Web 服务器 使用以下命令来安装 Apache: ``` sudo yum install httpd ``` 安装完成后,启动 Apache 服务: ``` sudo systemctl start httpd.service ``` 2. 安装 MySQL 数据库 使用以下命令来安装 MySQL: ``` sudo yum install mariadb-server mariadb ``` 安装完成后,启动 MySQL 服务: ``` sudo systemctl start mariadb.service ``` 3. 安装 PHP 使用以下命令来安装 PHP: ``` sudo yum install php php-mysql ``` 安装完成后,重启 Apache 服务: ``` sudo systemctl restart httpd.service ``` 现在,LAMP 环境已经搭建好了。接下来,我们可以开始部署 edusohp。 1. 下载 edusohp 您可以从 edusohp 的官方网站上下载最新版本的软件包,也可以使用以下命令从 GitHub 上下载: ``` sudo yum install git git clone https://github.com/edusoho/edusoho.git ``` 2. 安装 Composer Composer 是 PHP 的一个依赖管理工具,我们需要使用 Composer 来安装 edusohp 的依赖。使用以下命令来安装 Composer: ``` sudo yum install php-cli php-zip wget unzip php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php composer-setup.php php -r "unlink('composer-setup.php');" ``` 为了方便使用 Composer,我们可以将其移动到全局可用的 PATH 路径下: ``` sudo mv composer.phar /usr/local/bin/composer ``` 3. 安装 edusohp 的依赖 使用以下命令安装 edusohp 的依赖: ``` cd edusoho composer install ``` 4. 配置 edusohp 在 edusohp 的根目录下,有一个 `app/config/parameters.yml` 件,您需要根据自己的需求修改其中的一些配置项,例如数据库的连接信息、管理员账号等等。 5. 导入数据库 使用以下命令导入数据库: ``` cd edusoho php app/console doctrine:database:create php app/console doctrine:schema:create php app/console doctrine:fixtures:load ``` 现在,您已经可以通过浏览器访问 edusohp 了。默认情况下,它会监听 80 端口。您可以使用以下命令来启动 Apache 服务: ``` sudo systemctl start httpd.service ``` 然后,打开浏览器,输入服务器的 IP 地址或域名,即可访问 edusohp。 希望这些指导能够对您有所帮助。如果您有任何疑问或者需要更多的帮助,请随时告诉我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

David_Jou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值