EC2の無料枠を用いてCTFプラットフォームを構築する

  • x0rbyt3 によって
  • 2 分の読了時間
  • タグ: 
  • ctf
  • aws

開発環境

  • 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 からのインバウンドトラフィックを許可
WARNING

セキュリティグループの設定で必ず,既知の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
$ ssh MY_CTF_S

ubuntu@ip-172-31-46-26:~$ sudo nano /etc/ssh/sshd_config
# custom settings
ClientAliveInterval 60
ClientAliveCountMax 3

CTFd のインストールとテーマの設定

今回はCTFdCTFd Themesを利用します.

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テーマを選択することで,導入が完了しました.