8割解けるCTF「WEST-SEC」

セキュリティ初心者の方でも楽しめるゲーム形式のセキュリティイベント。CTFや勉強会の依頼があればご相談ください。

dockerの設定

1.Dockerとは

コンテナと呼ばれる仮想化技術で、VMwaraなどの旧来の仮想化技術に比べ、非常に軽量。その理由の一つが、仮想サーバごとのOSが不要であること。
以下に違いが解説されています。
https://cn.teldevice.co.jp/column/10509/

2.Dockerの環境構築

主催者側で実施済です。
設定はとても簡単です。

#Dockerをインストール
yum -y install docker

#dockerの起動
systemctl start docker

#httpdのイメージを取得
docker pull httpd

#参加者にDockerの権限を追加
for i in {1..250};do
  usermod -aG docker user${i}
done

2.コンテナを作る

(1) コンテナの作成

httpdイメージからコンテナを作ります。
今回はhttpd、つまりWebサーバを3台立てます。

※ポートは、1+ユーザ番号+数字 例)user3の場合は003として、以下を実行してください。
docker run -d -p 10031:80 --name Web10031 httpd
docker run -d -p 10032:80 --name Web10032 httpd

オプションを解説します。

オプション 解説
--detach , -d バックグラウンドで実行
-p 外部から受け付けるportと内部のportの対応
--name コンテナの名前を自由に設定できる
httpd httpdのイメージを利用

以下で接続してください。IPアドレスやポートは適宜変更。
http://203.0.113.125:80031/
http://203.0.113.125:80032/

サーバが起動していると思います。
これで2台のWebサーバが起動できました。

(2)コンテンツの変更

コンテナにログインして、内容を変更してみましょう。

docker exec -it Web10032 /bin/bash

以下がデフォルトのフォルダで、この中のindex.htmlというファイルが先ほど見たページです。
/usr/local/apache2/htdocs

viエディタなどが入っていないので、入れる必要がありますが、面倒なので、既存のファイルを上書きしましょう。

cd /usr/local/apache2/htdocs
echo 'Hello' > index.html

その後、exitで抜けます。

(3)コンテナの停止と削除

作成したコンテナは削除しておいてください。
❶コンテナの確認
以下でdockerが起動されているかみてみましょう。
このとき、オプションで「-a」を付けると、起動していないコンテナも確認できます。

$ docker ps
CONTAINER ID   IMAGE     COMMAND              CREATED          STATUS          PORTS                                     NAMES
9438bdb7b56b   httpd     "httpd-foreground"   28 minutes ago   Up 28 minutes   0.0.0.0:13032->80/tcp, :::13032->80/tcp   Web13032
77baa9a50d8e   httpd     "httpd-foreground"   28 minutes ago   Up 28 minutes   0.0.0.0:13031->80/tcp, :::13031->80/tcp   Web13031

たくさんある場合は、| grep Web10032 などと、自分のコンテナを指定しましょう。

❷コンテナを停止する

docker stop [NAME]

→Webページは見えなくなると思います。

❸コンテナを削除する

docker rm [CONTAINER ID]

#以下で、削除されているかを確認
docker ps -a