虚拟机内搭建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点击虚拟机–>设置–>硬件–>网络适配器–>选择桥接:直接连接到物理网络

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/67054.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF 本地化的最佳做法

WPF 本地化的最佳做法 资源文件英文资源文件 en-US.xaml中文资源文件 zh-CN.xaml 资源使用App.xaml主界面布局cs代码 App.config辅助类语言切换操作类资源 binding 解析类 实现效果 应用程序本地化有很多种方式,选择合适的才是最好的。这里只讨论一种方式&#xff0…

Golang 局部变量、全局变量 声明

文章目录 一、局部变量二、全局变量 一、局部变量 四种声明方式 多变量声明: package mainimport "fmt"//局部变量声明 func main() {//方法一: 声明一个变量和数据类型,不初始化值;默认值为0;var lvA intfmt.Printl…

CSDN编程题-每日一练(2023-08-14)

CSDN编程题-每日一练(2023-08-14) 一、题目名称:小股炒股二、题目名称:王子闯闸门三、题目名称:圆小艺 一、题目名称:小股炒股 时间限制:1000ms内存限制:256M 题目描述: …

学习笔记整理-BOM-01-基础知识

一、 BOM常用对象 BOM(Browser Object Model,浏览器对象模型)是JS与浏览器窗口交互的接口。一些与浏览器改变尺寸、滚动条滚动相关的特效,都要借助BOM技术。 1. Window对象 window对象是当前JS脚本运行所处的窗口,而这…

关于网络入侵检测领域使用Spark/Flink等计算框架做分布式

关于网络入侵检测领域使用Spark/Flink等计算框架做分布式 0、引言1 基于LightGBM的网络入侵检测研究2 基于互信息法的智能化运维系统入侵检测Spark实现3 基于Spark的车联网分布式组合深度学习入侵检测方法4 基于Flink的分布式在线集成学习框架研究5 基于Flink的分布式并行逻辑回…

Springboot 在 redis 中使用 BloomFilter 布隆过滤器机制

一、导入SpringBoot依赖 在pom.xml文件中&#xff0c;引入Spring Boot和Redis相关依赖 <!-- Google Guava 使用google的guava布隆过滤器实现--><dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><vers…

企业计算机服务器中了Devos勒索病毒怎么办,勒索病毒解密

社会在发展&#xff0c;科技在进步&#xff0c;企业的生产也得到了很大改善&#xff0c;但是随着网络技术的不断发展&#xff0c;越来越多的企业遭到的网络安全威胁开始增多&#xff0c;其中较为明显的就是勒索病毒攻击。预防勒索病毒攻击成为日常生活中不可或缺的一部分工作。…

互联网发展历程:从网线不够长到中继器的引入

互联网&#xff0c;这个如今贯穿我们生活的无所不在的网络&#xff0c;其发展历程充满了无数的创新和变革。有一项看似不太起眼的技术却在互联网的发展中发挥着至关重要的作用&#xff0c;那就是中继器。本文将带您深入了解互联网的发展历程&#xff0c;探讨在网线不够长的情况…

【深入理解ES6】字符串和正则表达式

概念 字符串&#xff08;String&#xff09;是JavaScript6大原始数据类型。其他几个分别是Boolean、Null、Undefined、Number、Symbol&#xff08;es6新增&#xff09;。 更好的Unicode支持 1. UTF-16码位 字符串里的字符有两种&#xff1a; 前 个码位均以16位的编码单元…

工程监测振弦采集仪采集到的数据如何进行分析和处理

工程监测振弦采集仪采集到的数据如何进行分析和处理 振弦采集仪是一个用于测量和记录物体振动的设备。它通过测量物体表面的振动来提取振动信号数据&#xff0c;然后将其转换为数字信号&#xff0c;以便进行分析和处理。在实际应用中&#xff0c;振弦采集仪是广泛应用于机械、建…

pytest数据驱动(最简单)

目录 第一种&#xff1a;通过yaml文件获取数据&#xff08;一维列表&#xff09; 第二种&#xff1a;通过yaml文件获取数据&#xff08;二维列表&#xff09; 第三种&#xff1a;通过yaml文件获取数据&#xff08;pytest.fixture&#xff09; 资料获取方法 第一种&#xff…

SQL进阶--SQL的常用技巧

一、ORDER BY FIELD() 自定义排序逻辑 排序 ORDER BY 除了可以用 ASC 和 DESC&#xff0c;还可以通过**ORDER BY FIELD(str,str1,...)**自定义字符串/数字来实现排序。这里用 order_diy 表举例&#xff0c;结构以及表数据展示&#xff1a; 二、CASE 表达式 「case when then el…