前好一阵子,我心里一直记得,只是最近太忙,没来得及感谢,大约1个多月前,清华大学出版社送了我一本书《CTF安全竞赛入门》,是启明星辰网络空间安全学院主编的,讲述了CTF比赛环境的搭建,CTF中题目类型、常见的考点以及解题技巧。最近准备解书中的题目,顺便将其制作成题库,分享给大家一起学习,于是我在亚马逊EC2云主机上免费搭建了CTF网站(http://35.86.165.89 )我记录了整个搭建过程,针对在校大学生CTF社团,也可以跟着我的步骤,手把手在亚马逊EC2云主机上免费搭建属于自己的CTF网站。
创建实例,名称和标签,自己随便起一个好听的名字
Application and OS Images (Amazon Machine Image),选择熟悉的Ubuntu
实例类型,默认选择免费套餐
密钥对(登录),起一个熟悉的名字,然后创建,保存好
网络设置,默认勾选了SSH,如果要搭建网站,可以勾选HTTP和HTTPS
配置存储,默认8G存储,最大30G免费存储,填写30就好
启动实例,这就配置成功了,是不是很简单呀
ssh登录,找到上面创建的密钥
ssh -i "ailx10-aws.pem" ubuntu@ec2-35-86-165-89.us-west-2.compute.amazonaws.com设置root密码
sudo passwd root升级软件,要不然无法安装软件
sudo apt-get update安装pip,记住所有安装操作都sudo
sudo apt install python3-pip安装Flask框架
sudo pip3 install flask下载CTFd
git clone https://github.com/isislab/CTFd安装CTFd的依赖
sudo pip3 install -r requirements.txt添加环境变量,上面提示/home/ubuntu/.local/bin 不在环境变量里,就给它添加进去
vim ~/.bashrc # 在最后一行添上:export PATH=/home/ubuntu/.local/bin:$PATH# 输入“source ~/.bashrc”命令,立即生效# 有效期限:永久有效启动CTFd,成功了,但是只能本地访问
sudo python3 serve.py安装 gunicorn工具
sudo pip3 install gunicorn启动 gunicorn工具,这样大家都能访问了
sudo gunicorn --bind 0.0.0.0:80 -w 4 "CTFd:create_app()"web访问CTFd,进行网站管理
网站管理,主要是设置邮件网关,用QQ邮箱就行
添加赛题,非常简单,输入题目地址、CTF旗子、以及对应的得分就可以了
用户注册
为了让网站持续运行,创建后台任务 myctfd
cd /etc/systemd/system/sudo vim myctfd.service[Unit]Description=My Python ScriptAfter=multi-user.target[Service]Type=idleExecStart=sudo python3 /home/ubuntu/CTFd/serve.py[Install]WantedBy=multi-user.targetsudo systemctl daemon-reloadsudo systemctl start myctfdsudo systemctl status myctfd创建后台任务 gunicorn
sudo apt-get install tmuxtmux new -s my_gunicorn_session -dtmux send-keys -t my_gunicorn_session 'cd /home/ubuntu/CTFd; sudo gunicorn --bind 0.0.0.0:80 -w 4 "CTFd:create_app()"' Entertmux attach -t my_gunicorn_session断开SSH连接,网站依然可以访问,尽情享受你的CTF比赛吧~