2017-03-26 3 views
0

Ich baue eine "Hackme" Herausforderung. Benutzer können dort auf die Website hacken und Root-Zugriff erhalten.neuer Docker Container für jeden Benutzer

Ich habe dies in Docker-Container gemacht, um zu verhindern, dass Benutzer den Host oder jedes andere Spiel (Container) verletzen.

Ich kann es nicht einfach an einen anderen Port für jeden Benutzer umleiten, weil Benutzer nur Port den Server scannen und die verschiedenen Container finden können.

Was ich will ist http://example.com/challange1/A1B2C3 wurden "A1B2C3" ist die eindeutige Kennung für ihre eigenen Container.

Kann mir jemand sagen, wie das geht?

+0

Müssen Sie über http Zugriff darauf gewähren? Wenn dies der Fall ist, benötigen Sie einen Proxy-Server, der Subdomains in geeignete Container umleitet, aber das bedeutet, dass der Hackme http-Port-basiert ist? –

+0

ja dieser Teil ist http portbasiert – Arie

+0

Zum Beispiel mit Nginx und Nginxproxy können Sie Port 80 für verschiedene Subdomains zu verschiedenen Gruppe von Containern umleiten. Zum Beispiel staging.example.com zu staging-main und test.example.com zu test-main. Wahrscheinlich ist es möglich mit verschiedenen Adressen wie Sie möchten. –

Antwort

0

Ich würde mit Jwilder/Nginx für diese Aufgabe gehen. Starten Sie einfach die verschiedenen Container mit "zufälligen" Subdomains.

starten Nginx/Jwilder

docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy 

Beginnen Sie Ihren Container

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

Jwilder/Nginx aktualisiert werden auf jeden Container gestartet und wird das neue VHOST registrieren.

+0

Aber es zeigt schließlich auf den gleichen Container für alle eindeutigen URLs, nicht wahr? –

+0

Nein, jeder Container hat seine eindeutige Subdomäne, nginx zeigt auf jeden einzelnen Container. – opHASnoNAME

Verwandte Themen