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

news2024/11/26 10:47:29

一、虚拟机环境搭建

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.coloradmin.cn/o/872705.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

最新版彩虹知识付费商城源码 V3.4

介绍 最新彩虹知识付费商城初创体验版,支持二级分类,多级分销,秒杀,砍价,团购,首页继续浏览,分站个人虚拟余额自定义,最新批量对接,批量下载图片,批量替换标…

云开发超多功能工具箱组合微信小程序源码/附带流量主

介绍: 这是一款云开发超多功能工具箱组合微信小程序源码附带流量主功能,小程序内包含了40余个功能,堪称全能工具箱了,大致功能如下: 证件照制作 | 垃圾分类查询 | 个性签名制作 二维码生成丨文字九宫格 | 手持弹幕丨…

yo!这里是STL::适配器相关模拟实现

目录 前言 适配器介绍 deque介绍(了解) 容器适配器与普通容器的联系 stack模拟实现 queue模拟实现 priority_queue模拟实现 介绍 实现 反向迭代器模拟实现 介绍 实现 在list类中调用 在vector类中调用 后记 前言 在介绍完string、vector、…

chapter 1 formation of crystal, basic concepts

chapter 1 晶体的形成 1.1 Quantum Mechanics and atomic structure 1.1.1 Old Quantum Theory problems of planetary model: atom would be unstableradiate EM wave of continuous frequency to solve the prablom of planetary model: Bohr: Quantum atomic structureP…

算符优先文法语法分析

1、实验目的及要求 1.1、实验目的 加深对语法分析器工作过程的理解;加强对算符优先分析法实现语法分析程序的掌握;能够采用一种编程语言实现简单的语法分析程序;能够使用自己编写的分析程序对简单的程序段进行语法翻译。 1.2、实验要求 花一…

小龟带你妙写排序之选择排序

选择排序 一. 原理二. 题目三. 思路分析四. 代码 一. 原理 选择排序(Selection-sort)是一种简单直观的排序算法。 工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未…

C语言快速回顾(三)

前言 在Android音视频开发中,网上知识点过于零碎,自学起来难度非常大,不过音视频大牛Jhuster提出了《Android 音视频从入门到提高 - 任务列表》,结合我自己的工作学习经历,我准备写一个音视频系列blog。C/C是音视频必…

AtCoder Beginner Contest 314

A.直接模拟就行 #include <bits/stdc.h> using namespace std; const int N 2e510; #define int long long int n,m; string s"3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679";void solve(){cin…

【电池-超级电容器混合存储系统】单机光伏电池-超级电容混合储能系统的能量管理系统(Simulink仿真)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Three.js 实现材质边缘通道发光效果

相关API的使用&#xff1a; 1. EffectComposer&#xff08;渲染后处理的通用框架&#xff0c;用于将多个渲染通道&#xff08;pass&#xff09;组合在一起创建特定的视觉效果&#xff09; 2. RenderPass(是用于渲染场景的通道。它将场景和相机作为输入&#xff0c;使用Three.…

MySQL数据库----------安装anaconda---------python与数据库的链接

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…

【福建事业单位-数学运算】04计算、最值和几何

【福建事业单位-数学运算】04计算、最值和几何 一、计算1.1 基础计算1.2 数列计算等差数列等比数列 总结 二、最值问题2.1 最不利构造最不利加排列组合 2.2 构造数列 三、几何问题2.1 公式计算类规则图形非规则图形 2.2结论技巧性&#xff08;三角形&#xff09;总结 一、计算 …

【Zabbix安装-5.5版本】

Zabbix安装&#xff08;rpm包安装&#xff09; Index of /zabbix/zabbix/5.5/rhel/8/x86_64/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror rpm包链接&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.5/rhel/8/x86_64/zabbix-release-5.5-1.e…

日常BUG——通过命令行创建vue项目报错

&#x1f61c;作 者&#xff1a;是江迪呀✒️本文关键词&#xff1a;日常BUG、BUG、问题分析☀️每日 一言 &#xff1a;存在错误说明你在进步&#xff01; 一、问题描述 在使用vue命令行创建一个vue项目时&#xff0c;出现一下的错误&#xff1a; vue create my…

无涯教程-Perl - ref函数

描述 如果EXPR为引用,则此函数返回真值&#xff1b;如果未提供EXPR,则为$_。返回的实际值还定义了引用所引用的实体的类型。 内置类型为- REFSCALARARRAYHASHCODEGLOBLVALUEIO::Handle 如果使用bless()函数为变量设置了祝福,则将返回新的数据类型。新的数据类型通常将是一个…

homebrew安装

1.国内镜像安装 /bin/zsh -c "$(curl -fsSL https://gitee.com/huwei1024/HomebrewCN/raw/master/Homebrew.sh)"2.选中科大下载源 3.输入密码 4.排错 5.常见错误网址 添加链接描述 6.配置环境变量

texmaker-Latex,设置biber/bibtex

打开texmaker&#xff0c;【选项】–>配置texmaker–>[命令]–>bib(la)tex&#xff0c;然后在该选项里面已有的路径下改为添加biber的路径

【数据结构】树和二叉树的概念及结构

1.树概念及结构 1.1树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的。 有一个特殊的结点&#…

【算法基础20-单调栈】

算法原理: 用单调递增栈&#xff0c;当该元素可以入栈的时候&#xff0c;栈顶元素就是它左侧第一个比它小的元素。 以&#xff1a;3 4 2 7 5 为例&#xff0c;过程如下&#xff1a; 动态模拟过程 题目&#xff1a; 给定一个长度为 N 的整数数列&#xff0c;输出每个数左边第一…

Vue.js 生命周期详解

Vue.js 是一款流行的 JavaScript 框架&#xff0c;它采用了组件化的开发方式&#xff0c;使得前端开发更加简单和高效。在 Vue.js 的开发过程中&#xff0c;了解和理解 Vue 的生命周期非常重要。本文将详细介绍 Vue 生命周期的四个阶段&#xff1a;创建、挂载、更新和销毁。 …