虚拟机内搭建CTFd平台搭建及CTF题库部署,局域网内机器可以访问

一、虚拟机环境搭建

1、安装docker、git、docker-compose

ubuntu:

sudo apt-get update #更新系统
sudo apt-get -y install docker.io #安装docker
sudo apt-get -y install git #安装git
sudo apt-get -y install python3-pip #安装pip3
sudo pip install docker-compose #pip安装docker-compose,如安装失败sudo pip install --upgrade pip更新pip版本后再安装

2、docker配置&python配置

docker配置:

#如果想自定义docker镜像下载目录进行执行如下命令

sudo rm -rf /var/lib/docker

sudo mkdir -p /appdata/docker #/appdata/docker为你自定义的目录

sudo ln -s /appdata/docker /var/lib/docker #创建软链接使/var/lib/docker指向/appdata/docker

#设置国内docker镜像源

sudo mkdir -p /etc/docker #创建目录

sudo vim /etc/docker/daemon.json #编辑配置文件

#将如下内容写入:

{

"registry-mirrors": "https://\*\*\*\*\*\*.mirror.aliyuncs.com"

}

#******为你注册阿里docker镜像仓库的代码,获取方式见如下文章:

#https://blog.csdn.net/wohaqiyi/article/details/89335932

sudo service docker restart #重启docker

python配置:

#不安装python2,直接python3

sudo ln -s /usr/bin/pip3 /usr/bin/pip #创建python3软链接

sudo ln -s /usr/bin/python3 /usr/bin/python #创建python3软链接

3、部署CTFd平台

cd /opt

sudo git clone https://github.com/CTFd/CTFd.git #下载CTFd

cd CTFd

sudo docker-compose up -d #docker方式后台下载镜像源并启动

root@localhost CTFd# docker-compose up -d

WARNING: The Docker Engine you're using is running in swarm mode.

Compose does not use swarm mode to deploy services to multiple nodes in a swarm. All containers will be scheduled on the current node.

Creating ctfd_db_1 ... done

Creating ctfd_ctfd_1 ... done

Creating ctfd_cache_1 ... done

Creating ctfd_ctfd_1 ...

Recreating ctfd_nginx_1 ... done

安装完成,访问IP:8000,进入CTFd初始化界面,按需注册账号密码后,点finish可进入CTFd平台

pip3 install gunicorn

https://github.com/CTFd/CTFd

部署一个ctf题目

sudo mkdir -p /home/cys/CTF #创建CTF目录

sudo cd /home/cys/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

使用docker-compose启动:

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

要16步,第一启动费时间。

已经启动,在本地访问IP:8302发现可以访问,但在其他电脑无法访问

停止并删除容器,并修改配置文件docker-compose.yml

sudo docker stop 2c6df451d955 #停止容器,2c6df451d955为CTF题目CONTAINER ID

sudo docker rm 2c6df451d955 #删除容器,2c6df451d955为CTF题目CONTAINER ID

sudo vim docker-compose.yml #vim将127.0.0.1修改为0.0.0.0

0ctf 2016 piapiapia

version: "2"

services:

web:

build: .

image: ctftraining/0ctf_2016_unserialize

environment:

  • FLAG=flag{nizhenshigedacongming}

restart: always

ports:

  • "0.0.0.0:8302:80"

本机在浏览器上访问正常,但是同一局域网的其他电脑却无法连接

解决:

打开VM点击虚拟机-->设置-->硬件-->网络适配器-->选择桥接:直接连接到物理网络

相关推荐
IMPYLH9 分钟前
Linux 的时间为什么会被拨回去
linux·运维·服务器
2601_963282771 小时前
寒地窄带通信工程实践:黑龙江哈尔滨对讲机选型、组网与合规运维总结
运维·服务器·网络
叼烟扛炮2 小时前
[Git 实战] 学习笔记:从生成 SSH 密钥到解决 TortoiseGit 推送报错全指南
linux·运维·笔记·git·学习
我要见SA姐13 小时前
GitHub Actions 自动化:5 个真实运维提效案例
运维·数据库·机器学习·oracle·回归
Android系统攻城狮4 小时前
Linux FFmpeg深度解析之avcodec_flush_buffers调用流程与实战(十九)
linux·运维·服务器·ffmpeg·车载音视频·ffmpeg音视频进阶
Y3815326625 小时前
用 httpx 写 SerpBase 异步客户端:连接池与超时配置
运维·服务器·数据库
倔强的石头1065 小时前
【Linux指南】进程通信系列(七):System V 信号量 —— 同步互斥的内核原语
linux·运维·服务器
HZZD_HZZD6 小时前
大口径摄像水表白皮书拆解:DN40加装改造与字轮识别实测
运维·物联网·腾讯云
PellyKoo7 小时前
【Ubuntu】GTX 1080 Ti 显卡占用为0但功率高达60W的排查与解决
linux·运维·ubuntu
莫晓燚8 小时前
阿里云若依项目部署与日志采集---实战
运维·数据库·redis·阿里云·ruoyi