手把手带你在亚马逊EC2云主机上搭建CTF网站

信息安全不简单鸭 2024-08-12 21:29:10

前好一阵子,我心里一直记得,只是最近太忙,没来得及感谢,大约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比赛吧~

0 阅读:0