Skip to main content

đŸ›ïž Olympus Lab - Infrastructure complĂšte opĂ©rationnelle

· 9 min read
Nélia
DevOps Student @ ESGI | Alternance ARPEGE

Aujourd'hui marque l'achÚvement de l'infrastructure Olympus Lab, mon homelab DevOps personnel. AprÚs plusieurs semaines de travail, j'ai enfin une plateforme complÚte pour apprendre et expérimenter en toute sécurité.

🎯 Le contexte​

Je suis actuellement en alternance chez ARPEGE à Nantes en tant qu'étudiante DevOps (TSSR à l'ESGI). Mon apprentissage se concentre sur :

  • Ansible pour l'automatisation
  • GitLab CI/CD pour les pipelines
  • Docker & Kubernetes pour la conteneurisation
  • Oracle Cloud Infrastructure pour le dĂ©ploiement

Mais pour vraiment maĂźtriser ces technologies, j'avais besoin d'un environnement oĂč je peux casser, reconstruire, expĂ©rimenter sans limites. D'oĂč Olympus Lab ! đŸ›ïž

đŸ—ïž Architecture finale​

Le setup physique​

Machine : Lenovo ThinkCentre M710S

  • CPU : Intel i5 (suffisant pour commencer)
  • RAM : 16 GB (Ă  upgrader plus tard)
  • Stockage : SSD pour l'OS, HDD pour les VMs
  • RĂ©seau : 1 Gbps vers la box Internet

Les composants logiciels​

1. Proxmox VE (Atlas dans ma nomenclature)​

L'hyperviseur qui fait tourner tout le reste. J'ai configuré 5 bridges réseau :

  • vmbr0 : WAN (192.168.1.0/24) - Connexion Internet
  • vmbr1 : LAN (10.0.1.0/24) - Production
  • vmbr2 : DMZ (10.0.2.0/24) - Services exposĂ©s
  • vmbr3 : DEV (10.0.3.0/24) - Environnement de test
  • vmbr4 : MGMT (10.0.4.0/24) - Administration

2. OPNsense (Olympus - VM 100)​

Le firewall FreeBSD qui gÚre toute la segmentation réseau. Configuration :

  • 5 interfaces rĂ©seau (1 par bridge)
  • RĂšgles firewall strictes avec isolation complĂšte
  • DHCP sur chaque rĂ©seau
  • DNS forwarding vers Cloudflare (1.1.1.1)

3. Cloudflare Tunnel (Hermes - Container 202)​

Le messager qui me permet d'accĂ©der Ă  mon homelab depuis n'importe oĂč. Ubuntu 24.04 LXC avec cloudflared :

  • 256 MB RAM (ultra lĂ©ger)
  • Tunnel chiffrĂ© vers Cloudflare Edge
  • ZĂ©ro port ouvert sur ma box Internet
  • Authentification Zero Trust avec Cloudflare Access

🌐 Segmentation rĂ©seau​

Le point le plus important : l'isolation des réseaux.

┌─────────────────────────────────────────────┐
│ Internet │
└──────────────────┬──────────────────────────┘
│ WAN (192.168.1.0/24)
┌──────▌──────┐
│ OPNsense │ ← Firewall central
│ (Olympus) │
└──────┬──────┘
â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”Źâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”
│ │ │ │
┌───▌───┐ ┌──▌──┐ ┌───▌──┐ ┌──▌───┐
│ LAN │ │ DMZ │ │ DEV │ │ MGMT │
│ Prod │ │ Web │ │ Test │ │Admin │
└───────┘ └─────┘ └──────┘ └──────┘

Les rùgles qui changent tout​

LAN (Production) :

  • ✅ AccĂšs Internet
  • ✅ Communication interne au LAN
  • ❌ AccĂšs aux autres rĂ©seaux (DMZ, DEV, MGMT)

DMZ (Services exposés) :

  • ✅ AccĂšs Internet uniquement
  • ❌ Aucun accĂšs aux rĂ©seaux internes

DEV (Développement) :

  • ✅ AccĂšs Internet uniquement
  • ❌ Aucun accĂšs aux rĂ©seaux internes

MGMT (Administration) :

  • ✅ AccĂšs partout (pour gĂ©rer l'infrastructure)

Pourquoi c'est important ? Si je fais une erreur en DEV ou si un service en DMZ est compromis, l'attaquant ne peut pas rebondir vers la production. C'est le principe de Defense in Depth.

🔒 SĂ©curitĂ© multi-couches​

Couche 1 : Cloudflare Edge​

  • Protection DDoS automatique
  • WAF (Web Application Firewall)
  • Filtrage gĂ©ographique possible

Couche 2 : Cloudflare Access (Zero Trust)​

  • Authentification obligatoire par email
  • Code OTP Ă  usage unique
  • Logs d'audit de toutes les connexions
  • Session limitĂ©e Ă  24h

Couche 3 : Cloudflare Tunnel​

  • Connexion chiffrĂ©e sortante uniquement
  • Aucun port ouvert sur ma box
  • IP publique cachĂ©e
  • Impossible de scanner mon rĂ©seau depuis Internet

Couche 4 : OPNsense Firewall​

  • Firewall stateful (pf de FreeBSD)
  • Default Deny : tout bloquĂ© par dĂ©faut
  • RĂšgles granulaires par rĂ©seau
  • Logs de toutes les tentatives bloquĂ©es

Couche 5 : Services individuels​

  • 2FA sur Proxmox (TOTP)
  • 2FA sur OPNsense (Google Authenticator)
  • Mots de passe forts (20+ caractĂšres)
  • ClĂ©s SSH pour l'authentification

☁ AccĂšs distant sans port forwarding​

Le gros challenge : comment accéder à mon homelab depuis chez mes parents en décembre ?

Solution classique : Port forwarding (ouvrir le port 51820 pour WireGuard)

  • ❌ Port ouvert = surface d'attaque
  • ❌ IP publique exposĂ©e
  • ❌ Risque de scan et brute force

Ma solution : Cloudflare Tunnel

  • ✅ Connexion sortante uniquement (aucun port ouvert)
  • ✅ IP publique masquĂ©e
  • ✅ Authentification obligatoire
  • ✅ Gratuit !

Services accessibles​

J'ai configuré trois points d'accÚs via Cloudflare Tunnel :

  • Interface de virtualisation : Gestion des VMs et containers
  • Interface du firewall : Configuration des rĂšgles rĂ©seau
  • AccĂšs SSH : Administration en ligne de commande

Tous protégés par Cloudflare Access avec authentification obligatoire (email + code OTP).

Exemple d'utilisation SSH :

# Sur mon laptop, n'importe oĂč dans le monde
ssh homelab-ssh

# Cloudflare ouvre le navigateur pour l'authentification
# Code OTP par email
# Connexion Ă©tablie ✅

Note de sécurité : Les URLs exactes ne sont pas publiées publiquement. Prochaine étape : Activation du 2FA sur tous les services (en cours).

📚 Documentation complùte​

Tout est documenté sur docs.olympus-lab.org avec Docusaurus :

  • Architecture : Vue d'ensemble, diagrammes rĂ©seau
  • Proxmox : Configuration, bridges, VMs, containers
  • OPNsense : Firewall, rĂšgles dĂ©taillĂ©es, DHCP, NAT
  • Cloudflare Tunnel : Setup, configuration, troubleshooting
  • SĂ©curitĂ© : RĂšgles firewall expliquĂ©es, threat model
  • ProcĂ©dures : AccĂšs distant, maintenance, backups

La doc est hébergée sur GitHub Pages avec déploiement automatique via GitHub Actions. Chaque git push met à jour le site.

đŸ› ïž Les galĂšres et apprentissages​

Problùme 1 : Changement de hostname Proxmox​

J'ai voulu renommer fox-factory en atlas (nomenclature mythologique grecque). Grosse erreur ! Proxmox garde les références au nom original dans /etc/pve/, qui est un filesystem cluster spécial.

RĂ©sultat : Tous mes containers et VMs ont disparu de l'interface ! đŸ˜±

Solution : Revenir à fox-factory en interne, utiliser atlas uniquement dans la doc publique. Leçon apprise : ne jamais renommer un node Proxmox en production.

Problùme 2 : Container Cloudflare Tunnel perdu​

Lors des tentatives de renommage, le disque du container 202 a été supprimé. Heureusement, j'avais un backup du dossier /etc/cloudflared/ !

Solution : RecrĂ©er le container from scratch, restaurer la config. 10 minutes et c'Ă©tait reparti. Les backups sauvent des vies ! đŸ’Ÿ

Problùme 3 : Tailscale subnet routing​

J'ai essayé Tailscale pour l'accÚs distant. Installation ultra simple, mais le subnet routing ne fonctionnait pas : impossible d'accéder à OPNsense (10.0.1.1) depuis mon laptop.

Pourquoi ? Tailscale donne accĂšs au rĂ©seau de la machine oĂč il est installĂ© (192.168.1.x), pas aux rĂ©seaux virtuels internes (10.0.x.x).

Solution : Passer à Cloudflare Tunnel qui est conçu pour exposer des services internes, pas pour créer un VPN mesh.

ProblĂšme 4 : Certificats SSL auto-signĂ©s​

Proxmox et OPNsense utilisent des certificats auto-signés. Les navigateurs affichent des warnings.

Solution temporaire : Accepter le risque (je sais que c'est mon propre serveur).

Solution future : Générer des vrais certificats Let's Encrypt via Cloudflare DNS challenge ou ACME.

📊 Stack technique complùte​

ComposantTechnologieVersion
HyperviseurProxmox VE8.x
FirewallOPNsense24.7
TunnelCloudflare TunnelLatest
OS ContainersUbuntu24.04 LTS
DocumentationDocusaurus3.x
Hosting DocGitHub Pages-
DomaineCloudflareolympus-lab.org
DNSCloudflare1.1.1.1

CoĂ»t total : ~12€/an (juste le domaine, tout le reste est gratuit !)

🚀 Prochaines Ă©tapes​

DĂ©cembre 2025 (chez mes parents)​

  • Tester l'accĂšs distant en conditions rĂ©elles
  • Commencer Python (Automate the Boring Stuff)
  • Continuer Practical Networking (cours en ligne)
  • ExpĂ©rimenter dans le rĂ©seau DEV

Janvier 2026 (retour à Nantes)​

  • DĂ©ployer GitLab CE en LAN pour le CI/CD
  • Installer Pi-hole pour le DNS local + blocage pub
  • Setup Prometheus + Grafana pour le monitoring
  • Configurer les backups automatiques (Proxmox Backup Server ?)

Q1 2026​

  • Apprendre WireGuard (dans des VMs de test)
  • DĂ©ployer un cluster K3s en DEV
  • Automatiser avec Ansible (playbooks pour tout)
  • Ajouter un deuxiĂšme node Proxmox (si budget)

Long terme​

  • Certifications : AWS, Azure, Kubernetes
  • Contribuer Ă  des projets open source
  • Documenter et partager mes apprentissages

💭 RĂ©flexions​

Ce que j'ai appris​

Networking : Avant ce projet, les VLANs et la segmentation réseau étaient abstraits. Maintenant, je comprends vraiment comment fonctionne un firewall, le NAT, le routing, les ACLs. J'ai cassé des choses, debuggé pendant des heures, et c'est comme ça qu'on apprend vraiment.

Sécurité : Le principe de Defense in Depth n'est pas juste théorique. Chaque couche compte. Si j'avais juste fait du port forwarding basique, j'aurais un point d'entrée unique. Maintenant, pour atteindre mes services, il faut :

  1. Passer Cloudflare Edge (DDoS protection)
  2. S'authentifier via Access (email + OTP)
  3. Traverser le tunnel chiffré
  4. Passer le firewall OPNsense
  5. S'authentifier sur le service final

Infrastructure as Code : Documenter tout dans Docusaurus me force Ă  comprendre ce que je fais. Si je ne peux pas l'expliquer clairement dans la doc, c'est que je ne le comprends pas vraiment. La doc devient aussi un backup de ma connaissance.

Échecs = Apprentissage : J'ai cassĂ© mon infrastructure plusieurs fois. Chaque fois, j'ai appris :

  • L'importance des backups
  • Comment dĂ©bugger mĂ©thodiquement
  • La valeur de la documentation
  • Qu'il faut tester avant de modifier la prod

Pourquoi un homelab en 2025 ?​

Certains diraient : "Pourquoi ne pas juste utiliser AWS ou Azure ?"

Ma réponse :

  • Je veux comprendre comment ça marche en dessous
  • Les clouds abstraient trop de choses
  • Un homelab, c'est gratuit (aprĂšs l'investissement initial)
  • Je peux casser sans craindre une facture de 500€
  • C'est mon labo, mes rĂšgles, mes expĂ©rimentations

En alternance, je travaille sur Oracle Cloud et GitLab. Mais dans mon homelab, je peux tout essayer : k3s, Ansible, Terraform, Prometheus, sans limite.

🎓 Pour les dĂ©butants qui lisent ça​

Si tu débutes en DevOps et que tu veux créer ton homelab :

Commence petit​

  • Une seule VM suffit au dĂ©but
  • Pas besoin de segmentation rĂ©seau complexe
  • Apprends Proxmox ou VirtualBox d'abord

Documente tout​

  • Prends des notes
  • Capture des screenshots
  • Écris les commandes que tu utilises
  • Future toi te remerciera

Casse des choses​

  • Les erreurs sont tes meilleures profs
  • Fais des snapshots avant de modifier
  • Teste dans un environnement isolĂ© (DEV)

Apprends les bases​

  • Networking : Comprends IP, subnets, routing, NAT
  • Linux : CLI, permissions, services systemd
  • Virtualisation : Concepts de VMs, containers, hyperviseurs

SĂ©curitĂ© d'abord​

  • Jamais de port forwarding sans rĂ©flĂ©chir
  • Toujours des mots de passe forts
  • 2FA partout oĂč c'est possible
  • Backups rĂ©guliers

📈 MĂ©triques​

Depuis le début du projet :

  • Temps investi : ~40 heures (configuration, debug, doc)
  • Erreurs commises : Trop pour compter (c'est ça apprendre !)
  • Services dĂ©ployĂ©s : 3 (Proxmox, OPNsense, Cloudflare Tunnel)
  • Lignes de doc : ~3000 (7 fichiers Markdown)
  • Commits Git : 15+
  • CafĂ© consommĂ© : Beaucoup ☕

🌾 Nomenclature mythologique​

Parce que DevOps, c'est aussi s'amuser :

  • Atlas : Proxmox node (le titan qui porte l'infrastructure)
  • Olympus : OPNsense (le mont Olympe, centre de contrĂŽle)
  • Hermes : Cloudflare Tunnel (le messager des dieux)

Prochains services :

  • Hephaestus : GitLab (la forge de code)
  • Prometheus : Monitoring (appropriĂ© !)
  • Apollo : CI/CD pipeline
  • Artemis : Backup system
  • Poseidon : Storage server

Logo : 🌾 Hanami (fleur de cerisier) + 🌙 Lune = esthĂ©tique japonaise + mythologie grecque.

🎉 Conclusion​

Olympus Lab est maintenant opérationnel ! Je peux :

  • ✅ CrĂ©er des VMs et containers Ă  volontĂ©
  • ✅ ExpĂ©rimenter en toute sĂ©curitĂ©
  • ✅ AccĂ©der depuis n'importe oĂč
  • ✅ Apprendre en cassant et rĂ©parant
  • ✅ Documenter mes apprentissages

La prochaine fois que quelqu'un me demandera "C'est quoi DevOps ?", je pourrai montrer mon homelab et dire : "C'est ça. Et c'est moi qui l'ai construit." đŸ’Ș

Rendez-vous dans le prochain article pour le dĂ©ploiement de GitLab ! 🚀


Stack : Proxmox VE ‱ OPNsense ‱ Cloudflare Tunnel ‱ Ubuntu 24.04 ‱ Docusaurus

Tags : #DevOps #Homelab #Infrastructure #Networking #Security #Learning

Documentation : docs.olympus-lab.org