GZ:CTF平台搭建(单Docker)
基于https://gzctf.gzti.me/zh撰写
Step1 安装Docker
你需要安装 Docker 和 docker-compose
这里就不过多赘述docker的安装,这里是官网Docker官网,不会也可以去相关技术网站上搜索。
Step2 配置初始化参数及文件
在服务器中创建一个文件夹来放gzctf的配置文件mkdir /www/gzctf/
然后创建appsettings.json
文件(用于gzctf项目建设完后运行的配置文件),保存以下内容(需要自行修改的要自行修改)(注意gzctf使用的是postgresql数据库)
{
"AllowedHosts": "*",
"ConnectionStrings": {
"Database": "Host=db:5432;Database=gzctf;Username=postgres;Password=<Your POSTGRES_PASSWORD>"
//这里是配置数据库,数据库是postgresql,按照这个创建你的数据库,Password处需要修改成自己的密码
},
"EmailConfig": {
"SenderAddress": "",
"SenderName": "",
"UserName": "",
"Password": "",
"Smtp": {
"Host": "localhost",
"Port": 587
}
},
"XorKey": "<Your XOR_KEY>", //这里是配置动态flag加密密钥,自行设定即可
"ContainerProvider": {
"Type": "Docker", // or "Kubernetes"
"PortMappingType": "Default", // or "PlatformProxy"
"EnableTrafficCapture": false,
"PublicEntry": "<Your PUBLIC_ENTRY>", // 外部访问地址,可以是 IP 或域名,用于提供给选手访问题目容器的地址。
// optional
"DockerConfig": {
"SwarmMode": false,
"Uri": "unix:///var/run/docker.sock"
}
},
"RegistryConfig": {
"UserName": "",
"Password": "",
"ServerAddress": ""
},
"CaptchaConfig": {
"Provider": "None", // or "CloudflareTurnstile" or "GoogleRecaptcha"
"SiteKey": "<Your SITE_KEY>",
"SecretKey": "<Your SECRET_KEY>",
// optional
"GoogleRecaptcha": {
"VerifyAPIAddress": "https://www.recaptcha.net/recaptcha/api/siteverify",
"RecaptchaThreshold": "0.5"
}
},
"ForwardedOptions": {
"ForwardedHeaders": 7,
"ForwardLimit": 1,
"TrustedNetworks": ["192.168.12.0/8"]
}
}
然后创建compose.yml
文件(用于Docker compose这个gzctf项目用的配置),保存以下内容(需要自行修改的要自行修改)
services:
gzctf:
image: registry.cn-shanghai.aliyuncs.com/gztime/gzctf:develop
restart: always
environment:
- "GZCTF_ADMIN_PASSWORD=<Your GZCTF_ADMIN_PASSWORD>" #这里配置平台管理员密码,默认账户Admin
# choose your backend language `en_US` / `zh_CN` / `ja_JP`
- "LC_ALL=zh_CN.UTF-8"
ports:
- "80:8080" #这里是平台运行端口,若80端口占用可以改为90:8080或者其他
volumes:
- "./data/files:/app/files"
- "./appsettings.json:/app/appsettings.json:ro"
# - "./kube-config.yaml:/app/kube-config.yaml:ro" # this is required for k8s deployment
- "/var/run/docker.sock:/var/run/docker.sock" # this is required for docker deployment
depends_on:
- db
db:
image: postgres:alpine
restart: always
environment:
- "POSTGRES_PASSWORD=<Your POSTGRES_PASSWORD>" #这里是刚才appsettings.json的数据库密码!
volumes:
- "./data/db:/var/lib/postgresql/data"
!注意这里!详情请查看官方文档
INFO
你有可能遇到网段冲突的情况,请参考相关更改 compose.yml 中的子网配置或 /etc/docker/daemon.json 中的网段配置。
networks:
default:
driver: bridge
ipam:
config:
- subnet: 192.168.12.0/24
Step3 Docker换源(加速源)(非必须项,服务器非国内可以跳过)
因为种种原因,国内禁止了一切国内docker源,阿里、腾讯、中科大docker源纷纷下线,导致国内没有可以访问的docker源。这里找到一个可以用的docker加速源。
我们先到docker目录下cd /etc/docker/
然后创建或者修改daemon.json
输入vim daemon.json
按i
键后清除里面的内容然后将此复制进去
{
"registry-mirrors": [
"https://docker.1panel.live"
]
}
然后输入按esc
输入:wq
保存退出
然后重启一下docker就可以了
Step4 Docker compose
输入docker compose up -d
等待即可,等到db和gzctf都starting了就可以进去了(注意防火墙或者规则记得开端口)
然后进入ipxxx.xxx.xxx.xxx:你设定的端口(默认80)
或者你的域名xx.xx(如果有绑定)
Step5 完成了
最后没有最后了,搭建gzctf最简单的办法已经完成了qwq
- 分类: 服务器
- 标签: ctf web docker.gzctf