2017-03-26 8 views
0

私は "ハックミー"チャレンジを構築しています。ユーザーはウェブサイトに侵入してルートアクセスを得ることができます。すべてのユーザーのための新しいドッカーコンテナー

私はこれをドッキング用の容器で作って、ユーザーがホストやゲームプレイ(コンテナ)に害を及ぼさないようにしました。

ユーザーはサーバーをポートスキャンして別のコンテナを見つけるだけでよいため、すべてのユーザーの別のポートにリダイレクトすることはできません。

http://example.com/challange1/A1B2C3 は「A1B2C3」は独自のコンテナの一意の識別子です。

誰かにこの方法を教えてもらえますか?あなたは次の操作を行うことができますnginxのでは

+0

httpでアクセスする必要がありますか?もしそうなら、あなたはサブドメインを適切なコンテナにリダイレクトするあなたの側でいくつかのプロキシを実行する必要がありますが、それはhackmeがhttpポートベースであることを意味しますか? –

+0

はいこの部分はhttpポートをベースにしています – Arie

+0

たとえば、nginxとnginxproxyを使用すると、異なるサブドメインのポート80を異なるコンテナのグループにリダイレクトできます。たとえば、staging.example.comをstaging-mainに、test.example.comをtest-mainにします。おそらくそれはあなたが望むような異なるアドレスで可能です。 –

答えて

0

私はこの作業のためにJwilder/Nginxを使用します。ランダムなサブドメインを持つ異なる コンテナを起動するだけです。

スタートnginxの/ Jwilder

docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy 
あなたのコンテナを起動し

for i in {1..5} 
    do 
     docker run -e VIRTUAL_HOST=foo-$i.bar.com mycontainer 
    done 

Jwilder/nginxのは、すべてのコンテナに開始更新され、新しい VHOSTを登録します。

+0

しかし、最終的にすべての一意のURLに対して同じコンテナを指していますか? –

+0

すべてのコンテナに独自のサブドメインがあるわけではありません.nginxはすべての単一のコンテナを指しています。 – opHASnoNAME

関連する問題