235 lines
9.8 KiB
Markdown
235 lines
9.8 KiB
Markdown
# 🖥️ Homelab – Infrastructure de virtualisation & laboratoire cybersécurité
|
||
|
||
> Infrastructure auto-hébergée basée sur **Proxmox VE**, conçue comme un environnement professionnel de virtualisation, d'expérimentation réseau et de pratique cybersécurité.
|
||
|
||
---
|
||
|
||
## 📋 Vue d'ensemble
|
||
|
||
Ce projet est un **homelab personnel** tournant 24/7 sur un mini-PC basse consommation (GMKtec K12, 32 Go DDR5). Il repose sur **Proxmox VE** et combine conteneurs LXC et machines virtuelles pour simuler une infrastructure d'entreprise réaliste.
|
||
|
||
**Usages principaux :**
|
||
|
||
- Hébergement de services permanents (VPN, accès distant)
|
||
- Simulation d'architectures réseau sécurisées et segmentées
|
||
- Déploiement rapide d'environnements de test (CTF, pentesting, AD)
|
||
- Apprentissage et mise en pratique en administration système & cybersécurité
|
||
|
||
---
|
||
|
||
## 🧱 Architecture générale
|
||
|
||
```text
|
||
┌─────────────────────────────────┐
|
||
│ GMKtec K12 │
|
||
│ Proxmox VE Host │
|
||
│ 32 Go DDR5 / NVMe │
|
||
└────────────┬────────────────────┘
|
||
│
|
||
┌──────────────────────┼──────────────────────┐
|
||
│ │ │
|
||
┌────────▼────────┐ ┌────────▼────────┐ ┌────────▼────────┐
|
||
│ Services LXC │ │ Réseau / FW │ │ VMs de test │
|
||
│ │ │ │ │ │
|
||
│ • WireGuard VPN │ │ • OPNsense │ │ • Windows / AD │
|
||
│ • Guacamole │ │ (routeur FW │ │ • Ubuntu │
|
||
│ (via CF Tunnel│ │ virtualisé) │ │ • Tiny11 │
|
||
│ sur TrueNAS) │ │ │ │ • CTF / Pentest │
|
||
└─────────────────┘ └─────────────────┘ └─────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## 🔧 Infrastructure matérielle
|
||
|
||
| Composant | Détail |
|
||
| -------------- | ------------------------ |
|
||
| Machine | GMKtec K12 |
|
||
| RAM | 32 Go DDR5 (2 × 16 Go) |
|
||
| Stockage | SSD NVMe |
|
||
| Hyperviseur | Proxmox VE |
|
||
| NAS | TrueNAS Scale |
|
||
| Fonctionnement | 24/7, basse consommation |
|
||
|
||
---
|
||
|
||
## ⚙️ Déploiement – Proxmox VE Helper Scripts
|
||
|
||
Les conteneurs LXC et la VM OPNsense ont été déployés via **[Proxmox VE Helper Scripts](https://community-scripts.github.io/ProxmoxVE/)**, une collection community-driven de scripts automatisés pour Proxmox.
|
||
|
||
### Commandes de déploiement
|
||
|
||
#### 🔐 WireGuard (LXC)
|
||
|
||
```bash
|
||
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/wireguard.sh)"
|
||
```
|
||
|
||
#### 🖥️ Apache Guacamole (LXC)
|
||
|
||
```bash
|
||
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/apache-guacamole.sh)"
|
||
```
|
||
|
||
#### 🌐 OPNsense (VM)
|
||
|
||
```bash
|
||
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/vm/opnsense-vm.sh)"
|
||
```
|
||
|
||
> Ces scripts automatisent la création du conteneur/VM, l'installation et la configuration de base. La configuration réseau, les règles firewall et les paramètres de sécurité ont ensuite été appliqués manuellement.
|
||
|
||
---
|
||
|
||
## 📦 Écosystème virtualisé
|
||
|
||
### Conteneurs LXC – Services permanents
|
||
|
||
#### 🔐 WireGuard VPN
|
||
|
||
Serveur VPN personnel permettant l'administration sécurisée du homelab depuis l'extérieur sans exposition publique directe.
|
||
|
||
- Accès chiffré aux services internes via tunnel privé
|
||
- Aucun port d'administration exposé sur le WAN
|
||
- Point d'entrée unique pour la gestion à distance
|
||
|
||
#### 🖥️ Apache Guacamole
|
||
|
||
Passerelle d'accès distant web (RDP / SSH / VNC) accessible depuis navigateur.
|
||
|
||
- Centralisation des accès d'administration
|
||
- Suppression des clients lourds (RDP natif, PuTTY, etc.)
|
||
- Gestion des environnements de TP et des VMs de test
|
||
- Exposé via **Cloudflare Tunnel** (agent hébergé sur TrueNAS Scale) — aucun port ouvert sur la box
|
||
|
||
---
|
||
|
||
### Machines virtuelles
|
||
|
||
#### 🌐 OPNsense – Pare-feu virtualisé
|
||
|
||
Routeur et firewall virtualisé simulant une infrastructure réseau d'entreprise.
|
||
|
||
- Filtrage réseau et règles firewall
|
||
- Segmentation logique entre réseau Freebox (192.168.1.x/24) et réseau interne (10.1.1.x/24)
|
||
- NAT sortant pour les VMs internes, journalisation réseau et contrôle des flux
|
||
|
||
#### 🪟 Windows / Windows Server
|
||
|
||
Environnements Windows pour la pratique système et Active Directory.
|
||
|
||
- Déploiement d'Active Directory, GPO, gestion des utilisateurs
|
||
- Analyse de malware en environnement isolé (Tiny11)
|
||
- Simulations d'infrastructure d'entreprise
|
||
- Tests d'authentification et de politiques de sécurité
|
||
|
||
#### 🐧 Ubuntu Server / Desktop
|
||
|
||
Environnements Linux polyvalents pour le développement et l'administration.
|
||
|
||
- Déploiement de services, Docker & conteneurisation
|
||
- Scripts d'automatisation et tests réseau
|
||
- Travaux pratiques systèmes & cybersécurité
|
||
|
||
#### 🚩 VMs CTF & Pentest
|
||
|
||
Machines éphémères créées à la demande pour l'entraînement offensif et défensif.
|
||
|
||
- Pentest, analyse réseau, escalade de privilèges, vulnérabilités web
|
||
- Restauration rapide via **snapshots Proxmox** après expérimentation
|
||
- Isolation totale du réseau de production
|
||
|
||
---
|
||
|
||
## 🔐 Sécurité & cloisonnement
|
||
|
||
### Principes appliqués
|
||
|
||
| Principe | Mise en œuvre |
|
||
| ---------------------------- | ------------------------------------------------------------------------------- |
|
||
| Exposition minimale | Un seul port ouvert (UDP 51820 WireGuard) — aucun port HTTP/HTTPS direct |
|
||
| Administration sécurisée | Accès uniquement via tunnel WireGuard |
|
||
| Accès partagé cloisonné | Guacamole exposé via Cloudflare Tunnel + Cloudflare Access (auth email) |
|
||
| Segmentation réseau | Deux segments distincts : réseau Freebox / réseau interne OPNsense |
|
||
| Isolation des environnements | Séparation LXC / VMs / environnements vulnérables |
|
||
| Journalisation | Logs réseau centralisés via OPNsense |
|
||
| Surface d'attaque réduite | Services limités au strict nécessaire |
|
||
|
||
### Séparation logique des usages
|
||
|
||
```text
|
||
┌──────────────────────┐ ┌──────────────────────┐ ┌──────────────────────┐
|
||
│ Infrastructure │ │ Réseau & Sécurité │ │ Tests & Lab │
|
||
│ permanente │ │ │ │ │
|
||
│ (WireGuard, │ │ (OPNsense, VLANs, │ │ (VMs éphémères, │
|
||
│ Guacamole) │ │ Firewall) │ │ CTF, Pentest) │
|
||
└──────────────────────┘ └──────────────────────┘ └──────────────────────┘
|
||
Stable Contrôle Isolé
|
||
```
|
||
|
||
---
|
||
|
||
## 📁 Contenu du dépôt
|
||
|
||
```text
|
||
pve-project/
|
||
│
|
||
├── readme.md # Ce fichier
|
||
│
|
||
├── docs/
|
||
│ ├── architecture.md # Schémas et choix d'architecture
|
||
│ ├── network-diagram.md # Plan réseau détaillé (VLANs, IPs)
|
||
│ └── security-policy.md # Politique de sécurité appliquée
|
||
│
|
||
├── configs/
|
||
│ ├── opnsense/
|
||
│ │ └── firewall-rules.md # Règles firewall documentées (anonymisées)
|
||
│ └── wireguard/
|
||
│ └── wg0.conf.example # Template de config WireGuard (sans clés)
|
||
│
|
||
└── screenshots/
|
||
├── 1.png # Dashboard
|
||
├── 2.png # Metrics dashboard
|
||
└── 3.png # Wireguard admin panel
|
||
```
|
||
|
||
---
|
||
|
||
## 🧠 Compétences illustrées
|
||
|
||
**Virtualisation & Infrastructure**
|
||
|
||
- Administration Proxmox VE (VMs, LXC, snapshots, ressources)
|
||
- Architecture hybride LXC + VM adaptée aux usages
|
||
- Réseau virtualisé et segmentation logique
|
||
|
||
**Cybersécurité**
|
||
|
||
- Déploiement et configuration d'un firewall virtualisé (OPNsense)
|
||
- Mise en place d'une architecture Zero Trust simplifiée (VPN-only admin)
|
||
- Exposition sécurisée via Cloudflare Tunnel + Cloudflare Access
|
||
- Cloisonnement des environnements sensibles et éphémères
|
||
- Réduction de la surface d'attaque
|
||
|
||
**Administration système**
|
||
|
||
- Linux server, services auto-hébergés
|
||
- Active Directory, GPO, gestion des identités (Windows Server)
|
||
- Docker & conteneurisation
|
||
|
||
---
|
||
|
||
## ⚠️ Sécurité du dépôt
|
||
|
||
> Ce dépôt est **public**. Aucune clé privée, mot de passe, adresse IP réelle ou information sensible n'est commitée. Les fichiers de configuration sont systématiquement **anonymisés ou fournis sous forme de templates**.
|
||
|
||
---
|
||
|
||
## 📌 À propos
|
||
|
||
Projet personnel en évolution continue, utilisé comme plateforme d'apprentissage, d'expérimentation et de montée en compétences en ingénierie cybersécurité et architecture système.
|
||
|
||
---
|
||
|
||
*Infrastructure opérationnelle — évolutions régulières selon les projets et formations en cours.*
|