赞
踩
- sudo apt-get update #更新系统
- sudo apt-get -y install docker.io #安装docker
- sudo apt-get -y install git #安装git
- sudo apt-get -y install python-pip #安装pip
- sudo apt-get -y install python3-pip #安装pip3
- sudo pip install docker-compose #pip安装docker-compose,如安装失败sudo pip install --upgrade pip更新pip版本后再安装
- sudo yum -y update #更新系统及内核
- sudo yum install -y docker-ce #安装docker
- sudo yum install -y git #安装git
- sudo yum install -y epel-release #安装EPEL源
- sudo yum install -y python-pip #安装pip
- sudo yum install -y python3-pip #安装pip3
- sudo pip install docker-compose #pip安装docker-compose,如安装失败sudo pip install --upgrade pip更新pip版本后再安装
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同时存在,请按如下方法配置默认python
- sudo mv /usr/bin/python /usr/bin/python-bak #备份python2二进制链接
- sudo mv /usr/bin/pip /usr/bin/pip-bak #备份pip2二进制链接
- sudo ln -s /usr/bin/pip3 /usr/bin/pip #创建python3软链接
- sudo ln -s /usr/bin/python3 /usr/bin/python #创建python3软链接
-
- #配置结束后因yum默认使用python2会导致yum不可用需进行如下配置
- [root@localhost ~]# yum install
- File "/usr/bin/yum", line 30
- except KeyboardInterrupt, e:
- ^
- SyntaxError: invalid syntax
- #需进行如下配置
- sudo vim /usr/bin/yum
- 将第一行"#!/usr/bin/python" 改为 "#!/usr/bin/python2.7"即可
- #yum安装报错时,将所有提示报错的文件中"#!/usr/bin/python" 改为 "#!/usr/bin/python2.7"即可
- 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
安装完成,在docker中查看状态:
- sudo docker ps -a #查看所有容器
- [root@localhost CTFd]# sudo docker ps -a
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- cead07018859 nginx:1.17 "nginx -g 'daemon of…" 3 minutes ago Up 3 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp ctfd_nginx_1
- 87525f6070d4 ctfd_ctfd "/opt/CTFd/docker-en…" 3 minutes ago Up 3 minutes 0.0.0.0:8000->8000/tcp, :::8000->8000/tcp ctfd_ctfd_1
- e9e9be589c9f mariadb:10.4.12 "docker-entrypoint.s…" 3 minutes ago Up 3 minutes ctfd_db_1
- e7b05692ad40 redis:4 "docker-entrypoint.s…" 3 minutes ago Up 3 minutes ctfd_cache_1
此时,CTFd平台已经部署完成,下面访问一下80、8000端口均可访问CTFd平台,如果只想通过8000端口访问,停止nginx容器即可
sudo docker stop cead07018859 #cead07018859为nginx容器CONTAINER ID
此时访问80端口发现已不能访问
也可使用脚本方式部署CTFd,命令如下:
- sudo sh prepare.sh #pip安装所需python库
- sudo python serve.py #使用Flask框架启动CTFd平台
安装完成,访问IP:8000,进入CTFd初始化界面,按需注册账号密码后,点finish可进入CTFd平台
这里用CTFTraining题库进行演示,文章末会贴上CTF题库大全
- sudo mkdir -p /opt/CTF #创建CTF目录
- sudo cd /opt/CTF
- sudo git clone htt/opt/CTFps://github.com/CTFTraining/CTFTraining.git #安装CTFTraining,注意这里只能git下来目录,目录中是空的,需要一个一个CTF题目去git
- cd CTFTraining
- ls
只有目录,里面并无内容
- sudo git clone htt/opt/CTFps://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
- # 0ctf 2016 piapiapia
- version: "2"
-
- services:
-
- web:
- build: .
- image: ctftraining/0ctf_2016_unserialize
- environment:
- - FLAG=flag{输入你想设置的flag}
- restart: always
- ports:
- - "127.0.0.1:8302:80"
使用docker-compose启动:
sudo docker-compose up -d #使用docker-compose下载镜像生成容器并启动容器
容器启动完成
docker ps -a #查看容器状态
已经启动,在本地访问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"
-
使用docker-compose启动:
sudo docker-compose up -d #使用docker-compose下载镜像生成容器并启动容器
此时,CTF题目链接可以在其他电脑访问
进入CTFd界面,点击Admin Panel进入管理配置界面
点击challenges添加一个挑战
选择standard,填写完成后点击Create按钮创建
配置flag,挑战可见性,点击Finish创建挑战,如有改动编辑后点击update即可
点击首页,退出管理配置界面,点击challenges看见刚才创建的题目,其他小伙伴登录就可以直接做题了
汉化:
git clone https://github.com/Gu-f/CTFd_chinese_CN.git #下载汉化包
CTF题库:
近年ctf writeup大全
https://github.com/ctfs/write-ups-2016
https://github.com/ctfs/write-ups-2015
https://github.com/ctfs/write-ups-2014
fbctf竞赛平台Demo
https://github.com/facebook/fbctf
ctf Resources
https://github.com/ctfs/resources
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。