Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 21 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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<br/>(navigateur / SSH / nc)"]

subgraph tailnet["Réseau privé Tailscale"]
direction TB
subgraph vm["VM Debian durcie (CIS)"]
apache["Apache<br/>reverse-proxy :80"]
ctfd["CTFd<br/>(systemd, gunicorn :8000)"]
plugin["CTFdDockerContainersPlugin"]
docker["Docker + containerd"]
inst["Instances de challenges<br/>(1 conteneur / équipe)"]
end
end

joueur -->|VPN| apache --> ctfd --> plugin
plugin -->|pilote| docker --> inst
joueur -.->|accès direct à l'instance<br/>port dynamique| inst
```

Le serveur est une VM Debian durcie selon le benchmark CIS, qui héberge :
Comment on lines 31 to 32
- **CTFd** : géré comme un service systemd, accessible sur le port 8000
Expand Down Expand Up @@ -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

Expand Down
1 change: 1 addition & 0 deletions docs/DEPLOIEMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
27 changes: 19 additions & 8 deletions docs/SUPERVISION.md
Original file line number Diff line number Diff line change
Expand Up @@ -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<br/>(scrape /15 s)"]
grafana["Grafana :3000<br/>dashboards + règles d'alerte"]
prometheus --> grafana
end

subgraph ctf_vm["VM CTF — 100.118.132.76"]
direction TB
node["node_exporter :9100<br/>(CPU / RAM / disque / réseau)"]
ctfd["CTFd (Apache :80)"]
end

discord["🔔 Discord<br/>(webhook — secret)"]

prometheus -->|scrape| node
grafana -->|alertes| discord
```

- **node_exporter** (sur la VM CTF) : expose CPU / RAM / disque / réseau.
Expand Down
22 changes: 20 additions & 2 deletions docs/architecture.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,25 @@
![schéma](./diagram.png)

# Architecture RootMeUp

```mermaid
flowchart LR
joueur["👤 Joueur<br/>(navigateur / SSH / nc)"]

subgraph tailnet["Réseau privé Tailscale"]
direction TB
subgraph vm["VM Debian durcie (CIS)"]
apache["Apache<br/>reverse-proxy :80"]
ctfd["CTFd<br/>(systemd, gunicorn :8000)"]
plugin["CTFdDockerContainersPlugin"]
docker["Docker + containerd"]
inst["Instances de challenges<br/>(1 conteneur / équipe)"]
end
end

joueur -->|VPN| apache --> ctfd --> plugin
plugin -->|pilote| docker --> inst
joueur -.->|accès direct à l'instance<br/>port dynamique| inst
```

## Composants
Comment on lines +22 to 23

- **CTFd** : interface web pour les joueurs, gestion des équipes, scores et flags. Géré comme un service systemd sur le port 8000.
Expand Down