Task #6685
closedTask #6679: Create ungleich game, a flask based game to show system engineering skills
Implement game challenges 1-6
0%
Description
- challenge 1: register an ipv6 network (10 points)
- we generate a random ip in that network, name it "user ip"
- challenge 2: the user needs to configure the "user ip" to be ping'able; gets points when the user triggers/submits and at that time we can ping the ip address (20 points)
- challenge 3: the user needs to be reachable by http on her "user ip" (30 points if reachable)
- challenge 4: the user needs to configure a DNS server that is answering requests in the domain "$username.ungleich.cloud" (120 points)
- challenge 5: the user needs setup a second DNS server; we generate a 2nd random IP and let the user know the ip address; successful if it answers requests in "$username.ungleich.cloud" (20 points)
- challenge 6: setup https: we generate a DNS name ("$username.something") and the user needs to retrieve an SSL certificate from letsencrypt and should be reachable via https (80 points)
Updated by Nico Schottelius over 5 years ago
- Subject changed from Implement game challenges 1-10 to Implement game challenges 1-6
- Description updated (diff)
- Due date set to 05/31/2019
Updated by Roland Zweifel over 5 years ago
i need more time to understand how to code python with a html website.
Updated by Nico Schottelius over 5 years ago
Why is the status waiting and not in progress Roli?
redmine@ungleich.ch writes:
Updated by Roland Zweifel over 5 years ago
- Status changed from Waiting to In Progress
The Status was on waiting, because i need to understand the structure of my solution. Need to find out how i can solve it with input/output. For my solution need to know how the "coding" works. I cant see the structure in this language yet. I know the challenge, but im e newby in flask.
Updated by Roland Zweifel over 5 years ago
Nico Schottelius wrote:
- challenge 1: register an ipv6 network (10 points)
- we generate a random ip in that network, name it "user ip"
- challenge 2: the user needs to configure the "user ip" to be ping'able; gets points when the user triggers/submits and at that time we can ping the ip address (20 points)
- challenge 3: the user needs to be reachable by http on her "user ip" (30 points if reachable)
- challenge 4: the user needs to configure a DNS server that is answering requests in the domain "$username.ungleich.cloud" (120 points)
- challenge 5: the user needs setup a second DNS server; we generate a 2nd random IP and let the user know the ip address; successful if it answers requests in "$username.ungleich.cloud" (20 points)
- challenge 6: setup https: we generate a DNS name ("$username.something") and the user needs to retrieve an SSL certificate from letsencrypt and should be reachable via https (80 points)
Questions to Nico:
CH 1:
Define register: When registering means to add a IPv6 Address the user has to find a IPv6 DHCP client somewhere. (How to register a ipv6? ip addr add :: /dev/eth ? Then Ping)
CH 2:
When i add a IPv6 Address in a IPv4 Network, is this ip ping-able?
Updated by Nico Schottelius over 5 years ago
Challenge 1¶
How the user gets a /64, is NOT part of the challenge. The user has to
have access to a /64 before starting the game.
To join the game, the user will register her /64 and gets the first 10
points.
I.e. the user POSTs the network to /game/register:
{ "net": "2a0a:e5c1:111:111::/64" }
Challenge 2¶
We select a random IP address (pyhon: range(0,2**64)) and the user can
retrieve this address from our game
(
for instance:
GET /game/my-ip returns
{ "ipv6-address": "2a0a:e5c1:111:111:3185:e802:6548:658c" }
Then the user has to setup the IP address on her system. When she is
ready, she tells the game that she is ready:
POST-OR-GET /challenge/ping
Then our game tries to ping that IPv6 address. If it is sucessful, she
gets 20 points.
All clear?
redmine@ungleich.ch writes:
Updated by Nico Schottelius over 5 years ago
- Status changed from In Progress to Rejected
Updated by Nico Schottelius over 5 years ago
- Status changed from Rejected to New
- Assignee deleted (
Roland Zweifel)