Scenario Contributor Guide for selinuxgame.org
Making a Scenario
- Clone this repo.
- Write the scenario prompt, which is shown to the player when they login.
- Write the Ansible playbook to customize the environment for the player.
- Submit your scenario with items (2) and (3)
- Add the scenario to the website.
Test the Environment
After cloning, you can run
vagrant up to receive the typical base
environment. As you test your changes, whatever state the Vagrant box is in
at the end of
vagrant up is what players will receive.
The scenario prompt is a text file that is shown to the player when they type
scenario. At a minimum this file explains how to reproduce an issue the
fails with SELinux Enforcing and succeeds with SElinux disabled or permissive.
Specifically put your scenario content in scenario_prompt.md See that file for more information on what should go into the scenario prompt.
The Ansible playbook configures the system such that the problem is setup for the player. Typically you install and configure some packages in a way that creates the SELinux problem of interest.
Submitting your Scenario
Once your scenario prompt and Ansible playbook are tested and working, commit
your changes. Use
git format-patch to format the patch for email submission
Send the scenario patch files to bmbouter aat gmail.com or dennis.kliban aat
Once accepted we will build and publish your scenario into Vagrant Cloud which delivers the box directly to a player. Once published, the last step is to list the scenario on selinuxgame.org
Add the Scenario to selinuxgame.org
To add the scenario to selinuxgame.org, open a PR against the website repository.
Specifically, you need to make a new file in the _scenarios directory.
That file must declare three fields:
- A slug, which is a shortname for the box and url. e.g. new_ways, all_my_content.
- A title: The title that goes on the Scenarios page, e.g. "New Ways".
- A description: The description that goes on the Scenarios page.
See the Scenarios page for examples of this data.
What should I write about?
Not sure what to write? Scenarios are usually based on a real situations that have happened. Our hope is that when SELinux errors are experienced in different ways, that those can be written as a scenario for others to try to solve.
Why should I contribute?
Each scenario contributed can create a learning experience for many people. Increasing the understanding of SELinux allows for more people to contribute to a more secure world.