From 7616d5ca3077605625476cf462528b94a0351d33 Mon Sep 17 00:00:00 2001 From: Jakub WERLINSKI Date: Sat, 25 Jul 2026 16:06:20 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20sch=C3=A9mas=20en=20Mermaid=20+=20ajout?= =?UTF-8?q?=20du=20challenge=20Red=204=20dans=20les=20tableaux?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 23 +++++++++++++++++++++-- docs/DEPLOIEMENT.md | 1 + docs/SUPERVISION.md | 27 +++++++++++++++++++-------- docs/architecture.md | 22 ++++++++++++++++++++-- 4 files changed, 61 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index a33cb4b..1bf0c36 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,25 @@ Plateforme CTF open-source pour étudiants et professionnels cybersécurité. Ch ## Architecture -![Schéma d'architecture](docs/diagram.png) +```mermaid +flowchart LR + joueur["👤 Joueur
(navigateur / SSH / nc)"] + + subgraph tailnet["Réseau privé Tailscale"] + direction TB + subgraph vm["VM Debian durcie (CIS)"] + apache["Apache
reverse-proxy :80"] + ctfd["CTFd
(systemd, gunicorn :8000)"] + plugin["CTFdDockerContainersPlugin"] + docker["Docker + containerd"] + inst["Instances de challenges
(1 conteneur / équipe)"] + end + end + + joueur -->|VPN| apache --> ctfd --> plugin + plugin -->|pilote| docker --> inst + joueur -.->|accès direct à l'instance
port dynamique| inst +``` Le serveur est une VM Debian durcie selon le benchmark CIS, qui héberge : - **CTFd** : géré comme un service systemd, accessible sur le port 8000 @@ -65,7 +83,8 @@ Numérotation par équipe (`N-Blue-Team-*` / `N-Red-Team-*`). | Red 2 | `challenges/2-Red-Team-Operation-Silent-Ledger-Lucas` | Opération Silent Ledger — machine Linux compromise (SSH → escalade → GPG) | Red Team | Intégré | | Blue 3 | `challenges/3-Blue-Team-Hardening-Lucas` | Hardening / durcissement système | Blue Team | Intégré | | Red 3 | `challenges/3-Red-Team-Nexus-Cipher-Sarah` | Cipher — pentest du portail API Nexus (crypto/web, 10 flags) | Red Team | Intégré | -| Blue 4 / Red 4 | _à venir_ | — | — | À faire | +| Red 4 | `challenges/4-Red-Team-breach-and-ascend` | Breach & Ascend — intrusion web (upload) puis élévation → root | Red Team | En cours | +| Blue 4 | _à venir_ | — | — | À faire | ## Ajout d'un challenge sur le serveur diff --git a/docs/DEPLOIEMENT.md b/docs/DEPLOIEMENT.md index 4b2a6ea..25a701e 100644 --- a/docs/DEPLOIEMENT.md +++ b/docs/DEPLOIEMENT.md @@ -94,6 +94,7 @@ se fait **une fois** par challenge/serveur (et à chaque changement de code ou d | `2-Red-Team-Operation-Silent-Ledger-Lucas` | `rootmeup/rt2-silent-ledger:1.0` | (voir Dockerfile) | SSH / service | | `3-Red-Team-Nexus-Cipher-Sarah` | `rootmeup/rt3-ciphers-nexus:1.0` | (voir Dockerfile) | HTTP (API) | | `3-Blue-Team-Hardening-Lucas` | *(image à confirmer)* | (voir Dockerfile) | — | +| `4-Red-Team-breach-and-ascend` | *(image à confirmer)* | `80` | HTTP (web → root) | > Les ports marqués « voir Dockerfile » sont à confirmer via l'instruction `EXPOSE` > du Dockerfile de chaque challenge. diff --git a/docs/SUPERVISION.md b/docs/SUPERVISION.md index 1534291..2ded5be 100644 --- a/docs/SUPERVISION.md +++ b/docs/SUPERVISION.md @@ -6,14 +6,25 @@ plein**) plutôt que de les subir. ## Architecture -``` - VM Grafana (Tailscale 100.84.158.83) VM CTF (100.118.132.76) - ┌─────────────────────────────┐ ┌──────────────────────────┐ - │ Grafana :3000 │ │ node_exporter :9100 │ - │ Prometheus :9090 ──────────scrape────►│ (métriques système) │ - │ └─ règles d'alerte │ │ CTFd (Apache :80) │ - │ └─► Discord (webhook) │ └──────────────────────────┘ - └─────────────────────────────┘ +```mermaid +flowchart LR + subgraph grafana_vm["VM Grafana — Tailscale 100.84.158.83"] + direction TB + prometheus["Prometheus :9090
(scrape /15 s)"] + grafana["Grafana :3000
dashboards + règles d'alerte"] + prometheus --> grafana + end + + subgraph ctf_vm["VM CTF — 100.118.132.76"] + direction TB + node["node_exporter :9100
(CPU / RAM / disque / réseau)"] + ctfd["CTFd (Apache :80)"] + end + + discord["🔔 Discord
(webhook — secret)"] + + prometheus -->|scrape| node + grafana -->|alertes| discord ``` - **node_exporter** (sur la VM CTF) : expose CPU / RAM / disque / réseau. diff --git a/docs/architecture.md b/docs/architecture.md index fb816b6..1b869dc 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -1,7 +1,25 @@ -![schéma](./diagram.png) - # Architecture RootMeUp +```mermaid +flowchart LR + joueur["👤 Joueur
(navigateur / SSH / nc)"] + + subgraph tailnet["Réseau privé Tailscale"] + direction TB + subgraph vm["VM Debian durcie (CIS)"] + apache["Apache
reverse-proxy :80"] + ctfd["CTFd
(systemd, gunicorn :8000)"] + plugin["CTFdDockerContainersPlugin"] + docker["Docker + containerd"] + inst["Instances de challenges
(1 conteneur / équipe)"] + end + end + + joueur -->|VPN| apache --> ctfd --> plugin + plugin -->|pilote| docker --> inst + joueur -.->|accès direct à l'instance
port dynamique| inst +``` + ## Composants - **CTFd** : interface web pour les joueurs, gestion des équipes, scores et flags. Géré comme un service systemd sur le port 8000.