一个动态flag练习靶场平台
- 容器管理
- 题库管理
- 动态flag
- 作弊检测
- 公告通知
- 动态启动题库
- 题库隔离
- 公告通知
- 排行榜
- 快速部署
- 大屏展示
- 权限分离
- fix bug
- fix bug
- fix bug
线上地址 http://159.75.92.142:8080 管理后台 http://159.75.92.142:8080/manager 访客账号 test/test
默认超级管理员账号 superuser/admin
docker 编排会引用.env文件中的环境变量
docker、docker-compose、git
git clone https://github.com/tongchengbin/ocean_ctf.git
docker build -t ocean_web -f install/docker/ocean_web.Dockerfile .
docker-compose up
curl 127.0.0.1:8080
Python 3.6+
mysql 5.6+
redis
nginx(可选)
docker(可选)
supervisord(可选)
git clone https://github.com/tongchengbin/ocean_ctf.git /opt/ocean_ctf
# vim config/config.py
# mysql/mariadb 配置文件 当然也可以替换其他数据库
DB_CONFIG = {
"user": 'root',
"password": '123456',
"host": '127.0.0.1',
"port": "3306",
"db":"ocean"
}
# redis配置
REDIS_CONFIG = {
"host":'127.0.0.1',
'password':""
}
mysql -uroot -p -e "source install/db_init/ocean.sql"
pip 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
请注意设置python3为默认python版本
centos: sudo yum install mysql-devel
ubuntu: sudo apt-get install libmysqlclient-dev