-
Notifications
You must be signed in to change notification settings - Fork 2
Architecture
SecuBox-Deb est structuré autour de six modules canoniques organisés en chemin hamiltonien. Chaque module expose une API REST FastAPI, le tout orchestré par un profile-generator hiérarchique YAML.
AUTH → WALL → BOOT → MIND → ROOT → MESH
Les modules forment un graphe complet où chaque nœud est connecté à tous les autres, mais le chemin canonique définit l'ordre de priorité et de dépendance.
| Module | Couleur | Hex | Fonction |
|---|---|---|---|
| AUTH | Terracotta | #C04E24 |
Authentification, ZeroTrust, MFA, portail captif |
| WALL | Ocre | #9A6010 |
Firewall nftables, CrowdSec, WAF, IDS/IPS |
| BOOT | Brique | #803018 |
Déploiement, provisioning, clonage, vault |
| MIND | Indigo | #3D35A0 |
IA, analyse comportementale, DPI, SOC |
| ROOT | Vert profond | #0A5840 |
Système, CLI, hardening, hub central |
| MESH | Bleu nuit | #104A88 |
Réseau, WireGuard, HAProxy, QoS, TURN |
Les modules s'associent en paires complémentaires pour certaines fonctions :
-
BOOT ↔ ROOT— Provisioning et système -
WALL ↔ MIND— Défense et analyse -
MESH ↔ AUTH— Réseau et identité
| Composant | Choix | Notes |
|---|---|---|
| OS | Debian 12 (bookworm) ARM64/AMD64 | Pas d'OpenWrt, pas de LuCI |
| Kernel | 6.6 LTS mainline | Device trees upstream Marvell |
| Init | systemd | Units par module |
| Firewall | nftables | DEFAULT DROP, pas d'iptables |
| Réseau | netplan | Configuration YAML |
| Composant | Choix | Notes |
|---|---|---|
| Backend | FastAPI + Uvicorn | Socket Unix par module |
| Frontend | HTML/CSS/JS vanilla | Palette CyberMind, pas de framework lourd |
| Config | YAML + TOML | Double-buffer, 4R versioning |
| Reverse proxy | Nginx | Statics + proxy API |
| TLS | HAProxy | TLS 1.3 minimum, Let's Encrypt |
| Composant | Choix | Notes |
|---|---|---|
| IDS/IPS | Suricata + CrowdSec | Bouncers intégrés |
| WAF | mitmproxy + ModSecurity rules | Inspection HTTPS |
| DPI | nDPId + netifyd | Dual-stream via tc mirred |
| DNS | Unbound | Vortex DNS + blocklists |
Le profile-generator est un système hiérarchique YAML qui génère la configuration de chaque carte à partir de profils empilés.
defaults/
└── base.yaml # Configuration commune
boards/
├── mochabin/
│ └── profile.yaml # Spécificités MOCHAbin
├── espressobin-v7/
│ └── profile.yaml # Spécificités ESPRESSObin
└── x64-vm/
└── profile.yaml # Spécificités VM
profiles/
├── full.yaml # Tous les modules
├── lite.yaml # Modules essentiels
└── minimal.yaml # Firewall + SSH uniquement
L'héritage : defaults → board → profile → user overrides
La cryptographie s'appuie sur un framework Zero-Knowledge Proof à trois niveaux.
Authentification NIZKProof hamiltonien. Rotation du graphe G toutes les 24h avec Perfect Forward Secrecy.
Configuration en double-buffer : active/ (lecture seule) et shadow/ (édition). Swap atomique conditionné par validation ZKP. Rollback 4R (4 snapshots).
MirrorNet P2P avec did:plc, tunnels WireGuard, et Chain of Hamiltonians pour la preuve de présence réseau.
Chaque module expose une API FastAPI sur socket Unix :
/run/secubox/hub.sock → /api/v1/hub/*
/run/secubox/crowdsec.sock → /api/v1/crowdsec/*
/run/secubox/wireguard.sock → /api/v1/wireguard/*
...
Nginx reverse proxy unifie l'accès :
GET /api/v1/<module>/<method> # Lecture
POST /api/v1/<module>/<method> # Action
Authentification JWT obligatoire sur tous les endpoints via Depends(auth.require_jwt).
Un module qui embarque une application avec sa propre interface web (LMS Material, zigbee2mqtt, Authelia, Nextcloud, Grafana, …) DOIT séparer ses deux surfaces sur des hôtes distincts :
| URL | Rôle |
|---|---|
https://admin.gk2.secubox.in/<module>/ |
Admin SecuBox (statique, appelle /api/v1/<module>/*) |
https://<module>.gk2.secubox.in/ |
App réelle servie à la racine du vhost, Authelia-gated |
Reverse-proxy de l'app sous /<module>/ casse silencieusement les
URLs d'assets absolues (/material/, /cometd/, /apps/, /public/).
Le bouton Open <module> UI → de la page admin lit son href depuis
/api/v1/<module>/access au runtime — jamais hardcoded.
Détails complets : docs/MODULE-GUIDELINES.md §4 (REQUIRED) + §5.
Le projet vise la certification ANSSI CSPN à horizon 2027. Contraintes respectées :
| Exigence | Implémentation |
|---|---|
| Séparation des privilèges | User/group dédié par daemon |
| Chiffrement | TLS 1.3 minimum partout |
| Journalisation | Append-only, horodaté RFC 3339 |
| Rollback | Double-buffer 4R obligatoire |
| Surface d'attaque | Services désactivés par défaut |
| Tests | Couverture ≥ 80%, tests régression |
- MODULES-EN — Documentation des 125 paquets
- API-Reference — Référence API (2000+ endpoints)
- Hardware-Matrix — Cibles matérielles supportées
- Roadmap — État du développement
SecuBox-Deb · Licence : CMSD-1.0 (Source-Disclosed)
Contact : CyberMind · Gérald Kerma · Notre-Dame-du-Cruet, Savoie
Hardware-Matrix · Acknowledgments · Wiki v2.5.0
SecuBox | FR | DE | 中文 | v2.2.4-pre1
- Multiboot ⭐
-
Live-USB-VirtualBox
run-vbox.sh -
Live-USB-QEMU
run-qemu.sh - Live-USB | FR | DE | 中文
- Installation | FR | DE | 中文
- ARM-Installation | FR | DE | 中文
- ESPRESSObin | FR | DE | 中文
- Eye-Remote 📡
- Android-ToolBox 📱 one-tap R3
- Browser-Extension 🧩 cartographie
- QEMU-ARM64 🖥️
- Configuration | FR | DE | 中文
- Troubleshooting | FR | DE | 中文
- Anti-Track 🛡️ bloque · empoisonne · anonymise
- ThreatMesh 🛰️ blocklist souveraine (feeds + mesh, sans CAPI) | FR
- MODULES-EN 🇬🇧
- MODULES-FR 🇫🇷
- MODULES-DE 🇩🇪
- MODULES-ZH 🇨🇳
- API-Reference | FR | DE | 中文
- UI-COMPARISON
- Multi-Agent-Worktree — un agent · une issue · une branche