一个动态flag练习靶场平台
- 容器管理
- 题库管理
- 动态flag
- 作弊检测
- 公告通知
- 动态启动题库
- 题库隔离
- 公告通知
- 排行榜
- 快速部署
- 大屏展示
- 权限分离
- 一键部署
- fix bug
- fix bug
线上地址 http://159.75.92.142:8080
管理后台 http://159.75.92.142:8080/manager 访客账号 test/test
默认超级管理员账号 superuser/admin
如何添加容器主机?
-
启用docker api —H tcp://0.0.0.0:2375 (一定要添加防火墙规则仅允许指定ip访问)
-
curl 127.0.0.1:2375/_ping 输出OK 说明启用成功
-
添加主机ip 一栏是web 应用的入口如果是公网云请填写公网地址、如果是虚拟机请填写与物理机同一网段地址,docker API 一栏可以填写127.0.0.1:2375 这是由于部分服务器仅仅只对本地地址开放了2375端口,而如果是docker-compose 部署则无法使用127.0.0.1 可以使用docker的172网段代替。
git clone https://github.com/tongchengbin/ocean_ctf.git /opt/ocean_ctf
docker 编排会引用.env文件中的环境变量
docker、docker-compose
cd /opt/ocean_ctf
docker-compose up -d
curl 127.0.0.1:8080
Python 3.6+
mysql 5.6+
redis
nginx(可选)
docker(可选)
supervisord(可选)
cd /opt/ocean_ctf
pip3 install -r requirements.txt
chmod +x ./run.sh
./run.sh
默认情况下项目已经给管理后台的页面做了静态处理 但是建议使用nginx处理静态文件
# vim /etc/nginx/conf.d/ctf.conf
server {
listen 8080 default_server;
server_name _;
location / {
proxy_pass http://127.0.0.1:5000;
}
location /manager {
alias /opt/ocean_ctf/install/manager/dist;
}
}
因为celery可能会因为程序异常而退出 所以使用supervisord托管celery 同时也可方便管理,如果使用supervisord托管进程,不要使用run.sh 启动避端口冲突
-
安装supervisord
yum install -y supervisord
-
配置托管程序
cp ./install/config/supervisord/ocean.ini /etc/supervisord.d/
-
设置开机启动
systemctl enable supervisord.service systemctl start supervisord.service
开启API
vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375
systemctl daemon-reload
systemctl restart docker
检查API
curl 127.0.0.1:2375/info
yum -y install python36-devel
centos: sudo yum install mysql-devel
ubuntu: sudo apt-get install libmysqlclient-dev
TODO