Submission server/infrastructure for the SRS challenge at FIC https://fic.srs.epita.fr/
Go to file
2014-11-05 16:38:54 +01:00
db Can edit files in administration 2014-01-14 18:49:38 +01:00
docs/guide Prepare merge with server code 2014-09-09 10:05:08 +02:00
htdocs Salt for CDN is not the same as PUBLIC 2014-08-27 12:26:13 +02:00
misc Ready to generate new certificates 2014-01-21 03:07:52 +01:00
onyx Salt for CDN is not the same as PUBLIC 2014-08-27 12:26:13 +02:00
submission Create submission dir 2013-11-05 02:51:43 +01:00
.gitignore Thursday release 2013-12-13 18:50:19 +01:00
backup.sh Better backups 2014-01-21 03:56:17 +01:00
check.pl New script to generate nginx.conf part 2014-01-21 03:08:08 +01:00
clear_cache.sh Friday release 2013-12-14 06:11:34 +01:00
comm-socket.pl Can use comm-socket with argument 2014-01-20 10:58:59 +01:00
Dockerfile Add forgotten dependency 2014-11-05 16:38:47 +01:00
gen_hash_link_files.sh Generate a directory for files 2014-01-20 18:59:49 +01:00
gen_site.pl Generate error pages 2014-01-20 09:58:01 +01:00
gen_site.sh Administration: can edit exercices 2014-01-14 16:14:31 +01:00
launch.sh New script to generate nginx.conf part 2014-01-21 03:08:08 +01:00
nginx_gen_team.sh New script to generate nginx.conf part 2014-01-21 03:08:08 +01:00
nginx-server-common.conf Fix default config 2014-08-27 12:25:23 +02:00
nginx-server.conf Working synchronization 2014-01-19 17:49:07 +01:00
nginx.conf New script to generate nginx.conf part 2014-01-21 03:08:08 +01:00
php-fpm.conf Add a Dockerfile for development purpose 2014-08-27 12:26:49 +02:00
README.md Add README file 2014-09-09 10:38:46 +02:00
stop.sh Add a script to stop launch.sh 2014-01-20 05:50:13 +01:00
submission.php New script to generate nginx.conf part 2014-01-21 03:08:08 +01:00
synchro.sh New script to generate nginx.conf part 2014-01-21 03:08:08 +01:00
TODO Update TODO 2014-11-05 16:38:54 +01:00

FIC forensic challenge validation server

This is a CTF server for distributing and validating exercices. It is design to be robust, so it uses some uncommon technologies like client certificate for authentication, cryptographic functions and DMZ network architecture.

Development and testing

The easiest way to have a working server is to build a Docker container.

Docker

First, build the container with the following command:

docker build -t fic2014 .

Then, run it with:

docker run -t -i -P fic2014

It will ask you for a passphrase, you must provide one with at least 4 characters. This key is used to generate the server certificate.

When you see:

root@xxxxxxxxxxxx:/var/www/fic2014-server/misc#

congratulations, the container is running!

Use docker ps to view to which local ports was assigned the contained webserver.

Production environnement

Setup

Frontend

FIXME

Backend

FIXME

History

FIC2014

Two machines were used : one for backend (Phobos) and one for frontend (Deimos). They ran a GNU/Linux Gentoo Hardened with custom 3.2 kernel without module loading, unused and unecessary components and with all GrSecurity features activated.

Each machine was two network interfaces: one was used to permit to the backend machine to connect to the frontend (over IPv6). The second interface on the backend was used for administration purpose (with a laptop not connected to Internet). The second interface on the frontend was used to provide network connectivity to participants.