EC2の無料枠を用いてCTFプラットフォームを構築
EC2の無料枠を用いてCTFプラットフォームを構築
開発環境
- AWS EC2
- Docker
- CTFd & CTFd themes
- Host: WSL2 ubuntu
EC2 インスタンスの設定
インスタンス構成
- Instance type: t2.micro
- OS image: Ubuntu Server 24.04 LTS
- Strage: 汎用 SSD 25Gib
- Connection: SSH ログインキーペア
- 自分の IP からの SSH を許可
- パブリック IP の自動割り当てを許可
- http, https からのインバウンドトラフィックを許可
セキュリティグループの設定で必ず,既知のIPからの通信のみに絞ってください.
基本的には,0.0.0.0/0の設定を使用しないでください.
学校などで使用する場合は,学内IPに絞るようにしてください.
SSH 接続
SSH のログインキーペアを作成したときにダウンロードされた .pem を~/.ssh以下に配置してください.
~/.ssh/conifgに接続設定を書き込み,ssh 接続を開始
- ~/.ssh/config
Host MY_CTF_S
HostName [public IP]
User ubuntu
IdentityFile ~/.ssh/MyCTFServer_SSH.pem
ServerAliveInterval 60
1
2
3
4
5
6
$ ssh MY_CTF_S
ubuntu@ip-172-31-46-26:~$ sudo nano /etc/ssh/sshd_config
# custom settings
ClientAliveInterval 60
ClientAliveCountMax 3
CTFd のインストールとテーマの設定
今回はCTFdとCTFd Themesを利用します.

1
2
3
4
5
6
ubuntu@ip-172-31-46-26:~$ git clone https://github.com/CTFd/CTFd.git
ubuntu@ip-172-31-46-26:~/CTFd/CTFd$ git clone https://github.com/chainflag/ctfd-neon-theme.git themes/neon
# Dockerの導入を行っておいてください (https://docs.docker.com/engine/install/ubuntu/)
ubuntu@ip-172-31-46-26:~/CTFd/CTFd$ sudo docker compose up
コンテナを起動し,EC2 のパブリック IP にアクセスすると CTFd のサイトが表示されます.
スタイルタブから先ほどインストールしたneonテーマを選択することで,導入が完了しました.
This post is licensed under CC BY 4.0 by the author.
