1.前言

有手就行 centos7.6 ctfd ctfd-whale搭建
这里使用 frankli0324 师傅 fork 后修改赵师傅 ctfd whale 的版本进行搭建,参考VaalaCat师傅的教程。

2.部署

2.1更新软件

yum -y update
yum -y install python3-pip git

2.2安装docker

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

验证安装

docker --version

N-f8GdXi07UB
启动docker并设置开机启动

systemctl start docker
systemctl enable docker

2.3安装docker-compose

sudo pip3 install docker-compose -i https://pypi.tuna.tsinghua.edu.cn/simple

不出意外的话还是出意外了,会出现下面的这关报错
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-tbpoag4e/bcrypt/
N-CGMSTwDgfm
解决方法

pip3 install --upgrade pip

验证安装

docker-compose --version

N-ois4KRQ2IJ

2.4Docker Hub加速(可选)

DaoCloud:https://www.daocloud.io/mirror
阿里云容器镜像服务(使用自己的阿里云账户申请):https://cr.console.aliyun.com/#/accelerator
网易:https://hub-mirror.c.163.com/
我这里使用的是阿里云的镜像加速

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

2.5配置环境

docker swarm init

将这个服务器加入集群

docker node update --label-add='name=linux-1' $(docker node ls -q)

3.安装

3.1下载CTFd

git clone https://github.com/Un1kTeam/CTFd --depth=1

3.2配置

cd CTFd
# token 自己看着基本只需要修改 token
vim conf/frp/frps.ini
vim conf/frp/frpc.ini

frps.ini

[common]
bind_port = 7000
vhost_http_port = 9123
token = your_token
subdomain_host = ctf.n1l.cn

frpc.ini

[common]
token = your_token
server_addr = 172.1.0.3
server_port = 7000
admin_addr = 172.1.0.4
admin_port = 7400

3.3安装插件

git submodule update --init

3.4docker-compose

这里是访问ctfd的端口跟一根据自己的需要修改默认是9124
N-56dqLnQyax
这里是映射direct类型题目的端口也可以根据自己的需求修改
N-ZD8wpJIOGQ

3.5部署容器

docker-compose up -d

等待完成就好了
在安装过程中可能会出现下面这样的错误

ERROR: The Compose file './docker-compose.yml' is invalid because:
networks.frp_connect value Additional properties are not allowed ('attachable' was unexpected)
networks.frp_containers value Additional properties are not allowed ('attachable' was unexpected)

只要注释掉attachable就可以
N-9QIzkixr5F
修改完后重新部署容器

docker-compose up -d

3.6查看一下容器是否都正常

docker ps -a

N-iqfpIn6VN1

4.平台设置

这里填写使用http方式访问靶机的泛解析域名
这里填写frps中的vhost_http_port,该端口为http方式靶机访问的端口
这里填写服务器ip,用于显示Direct方式访问的题目的IP
这里填写用于动态靶机Direct方式的开始端口
这里填写结束端口

N-mpuUbN8WAa
N-FQCa10seZw

5.测试

N-o8iamYcuQ1
N-4SyN3q1DR2
N-qSQWJYGfB5
N-qkCJWHemPI

最后修改:2023 年 08 月 22 日
如果觉得我的文章对你有用,请随意赞赏