记录在亚马逊云主机上搭建CTF网站

信息安全不简单鸭 2024-08-20 21:54:33

第一次接触CTF,可以追溯到2018年7月,那时候的我25岁,刚刚研究生毕业,工作不到2个月,是个啥也不会的小白,闷头花了几个晚上,钻研了一下Web题,以为自己入门了,就没有然后了。

第二次接触CTF,是2020年1月,那时候我刚刚步入27岁,2年工作经验,还怡然自得,不知天高地厚,一口气做完了XCTF里面的Web基础,密码基础,MISC基础,逆向基础,Pwn基础,安卓基础,以为自己6项全能,就没有然后了。

第三次接触CTF,已经是当下,2023年11月,我30岁了,差不多淡去了年少时候的轻狂,不再臆想“腹黑,我手下败将”等等豪言壮语言语,逐渐忘却了当初刷题时候的梦想。

直到前好一阵子,我心里一直记得,只是工作太忙。大约2个多月前,清华大学出版社送了我一本书《CTF安全竞赛入门》,是启明星辰网络空间安全学院主编的,点燃了埋藏在青春岁月里的小火苗。

我搭建了一个网站,ailx10-ctf,开始努力学习,先将书中的题做会,然后把题放在网站里,根据题目的难易程度,设置了不同的过关分数,并给出了每一题的解题攻略,最后免费开放给广大网友一起学习。滴滴,快上车,只要能跟着解题攻略做一遍,肯定是有收获的。

搭建网站的整个心路历程如下,在校大学生CTF社团,也可以跟着我的步骤,搭建属于自己的CTF网站。我的网站是在亚马逊EC2云主机上搭建的,没有花一分钱,这一点亚马逊云还是不错的,比较有格局,每个注册账号都送1年1C1G的免费云主机。

其实,我一个云计算基础为0的小白,怎么能快速让自己的网站上线呢?这就要夸一夸亚马逊云的在线课程了:《尖峰学堂》亚马逊云科技快速上手训练营,看了不到2个小时,我就搞懂了云计算是怎么回事,EC2云主机是怎么回事,1天时间内就成功上线了我的CTF网站,非常推荐每一个小白注册学习一下。

点击播放会跳转到注册页面

填写个人信息,便完成注册

看完这个视频,就能搭建自己的网站了。下面是搭建在亚马逊EC2云主机上搭建CTF网站的保姆级教程,以及CTF网站的运营效果。

1、创建EC2实例

1.1 创建实例,名称和标签,自己随便起一个好听的名字

1.2 Application and OS Images (Amazon Machine Image),选择熟悉的Ubuntu

1.3 实例类型,默认选择免费套餐

1.4 密钥对(登录),起一个熟悉的名字,然后创建,保存好

1.5 网络设置,默认勾选了SSH,如果要搭建网站,可以勾选HTTP和HTTPS

1.6 配置存储,默认8G存储,最大30G免费存储,填写30就好

1.7 启动实例,这就配置成功了,是不是很简单呀

1.8 ssh登录,找到上面创建的密钥

ssh -i "ailx10-aws.pem" ubuntu@ec2-35-86-165-89.us-west-2.compute.amazonaws.com

2、搭建自己的网站

2.1 设置root密码

sudo passwd root

2.2 升级软件,要不然无法安装软件

sudo apt-get update

2.3 安装pip,记住所有安装操作都sudo

sudo apt install python3-pip

2.4 安装Flask框架

sudo pip3 install flask

2.5 下载CTFd

git clone https://github.com/isislab/CTFd

2.6 安装CTFd的依赖

sudo pip3 install -r requirements.txt

2.7 添加环境变量,上面提示/home/ubuntu/.local/bin 不在环境变量里,就给它添加进去,这一步是按需操作的

vim ~/.bashrc # 在最后一行添上:export PATH=/home/ubuntu/.local/bin:$PATH# 输入“source ~/.bashrc”命令,立即生效# 有效期限:永久有效

2.8 启动CTFd,成功了,但是只能本地访问

sudo python3 serve.py

2.9 安装 gunicorn工具

sudo pip3 install gunicorn

2.10 启动 gunicorn工具,这样大家都能访问了

sudo gunicorn --bind 0.0.0.0:80 -w 4 "CTFd:create_app()"

2.11 为了让网站持续运行,创建后台任务 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

2.12 创建后台任务 gunicorn,断开SSH连接,网站依然可以访问

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

3、管理自己的网站

3.1 网站注册管理,主要是设置邮件网关,用QQ邮箱就行

3.2 网站赛题管理,非常简单,输入题目地址、CTF旗子、以及对应的得分就可以了

3.3 网站用户管理

3.4 提交记录管理

3.5 比赛名次管理

亚马逊云确实不错,在Gartner 云基础设施和平台服务(CIPS)魔力象限中,连续第 12 年被评为领导者,并且还能免费体验一年,快来一起玩吧。

发布于 2023-12-11 16:45・IP 属地美国

0 阅读:2