AprÚs avoir posé le cadre théorique et analysé les limites de mon architecture actuelle dans la premiÚre partie, il est temps de se projeter dans la conception de mon architecture cible.
Sommaire
Afficher le sommaire
Architecture cible
Sans forcĂ©ment dĂ©voiler lâintĂ©gralitĂ© de mon projet, je dois rĂ©pondre Ă un certain nombre de problĂ©matiques dans ma future infrastructure. Je vais les lister par domaine.
Réseau & PérimÚtre
Le rĂ©seau est la fondation de toute lâinfrastructure. Câest la premiĂšre couche Ă poser, et la plus importante Ă bien concevoir. Sâil est mal construit, rien de ce qui vient ensuite ne pourra ĂȘtre sĂ©curisĂ© correctement.
Le pĂ©rimĂštre, câest la frontiĂšre entre mon infrastructure et le reste du monde : qui peut entrer, qui peut sortir, et qui doit ĂȘtre bloquĂ©.
Mon architecture actuelle repose sur une box internet qui fait tout Ă la fois : routeur, pare-feu, point dâaccĂšs Wi-Fi⊠sans aucune segmentation (je vous partagerai son fonctionnement dans un prochain article). Tous les appareils (PC, smartphones, consoles, objets IoT) cohabitent sur le mĂȘme rĂ©seau. Câest simple, mais cela expose une surface dâattaque trop large et incontrĂŽlĂ©e.
Pour y remédier, mon architecture cible doit intégrer les composants suivants :
- un Firewall : Câest le gardien de lâentrĂ©e. Il remplace la fonction rĂ©seau de la box et contrĂŽle lâensemble des flux entre les diffĂ©rentes zones de lâinfrastructure. Câest lui qui dĂ©cidera ce qui peut communiquer avec quoi.
Premiers candidats au banc d'essai : OPNsense, pfSense - une Segmentation rĂ©seau par VLAN : PlutĂŽt quâun rĂ©seau unique oĂč tout le monde se voit, je vais crĂ©er des zones isolĂ©es : LAN familial, Homelab, Production, IoT, DMZ, Management. Un appareil IoT compromis ne pourra pas atteindre mes serveurs de production.
- un Switch managĂ© : Indispensable pour que la segmentation par VLANs soit effective au niveau physique. Sans switch managĂ©, la segmentation VLAN ne peut pas ĂȘtre appliquĂ©e correctement sur lâensemble du rĂ©seau physique.
- un VPN : Pour accĂ©der Ă mon infrastructure depuis lâextĂ©rieur de maniĂšre sĂ©curisĂ©e, sans exposer mes services directement sur Internet.
Premiers candidats au banc d'essai : WireGuard, OpenVPN, Tailscale - un DNS filtrant : Il joue le rĂŽle de filtre Ă lâĂ©chelle du rĂ©seau : blocage des domaines malveillants, des publicitĂ©s et des trackers pour tous les appareils connectĂ©s, sans rien installer sur chacun dâeux.
Premiers candidats au banc d'essai : AdGuard Home, Pi-hole - un Reverse proxy : Lorsquâun service doit ĂȘtre accessible depuis lâextĂ©rieur, le reverse proxy joue le rĂŽle dâintermĂ©diaire. Il reçoit les requĂȘtes entrantes et les redirige vers le bon service en interne, sans jamais exposer directement ce dernier. Il gĂšre Ă©galement les certificats TLS pour chiffrer les communications.
Premiers candidats au banc d'essai : Traefik, Nginx Proxy Manager, Caddy
Infrastructure & Virtualisation
Lâinfrastructure physique est le socle sur lequel tout le reste va reposer. Pour ce projet, jâai fait le choix dâune approche Ă©tape par Ă©tape : construire, apprendre, puis consolider, plutĂŽt que dâinvestir massivement avant mĂȘme dâavoir validĂ© mes choix techniques.
La couche de virtualisation reposera sur Proxmox VE, une plateforme open source qui permet de gĂ©rer des machines virtuelles (VMs) et des conteneurs (LXC) depuis une interface web centralisĂ©e. Câest la technologie qui va me permettre de faire tourner plusieurs services et environnements sur un mĂȘme Ă©quipement physique, en les isolant les uns des autres.
Les étapes clés de mon architecture cible sont les suivantes :
Phase 1 â Lâarchitecture de dĂ©marrage :
La premiÚre étape est volontairement simple, pour me permettre de monter en compétences sans sur-investir dÚs le départ.
- mon Homelab : il sera créé Ă partir dâun premier nĆud Proxmox. Câest ici que je vais expĂ©rimenter, tester des solutions, les valider (et aussi les casser đ ). Câest mon terrain de jeu, et il a le droit dâĂȘtre instable.
- ma Production : Pour hĂ©berger mes premiers services de production, je vais mâappuyer dans un premier temps sur mon serveur NAS rĂ©cemment acquis (Ugreen DXP4800 Plus et son OS natif, je vous le prĂ©senterai dans un prochain article). Ce nâest pas une architecture dĂ©finitive, mais elle me permet de dĂ©marrer avec une base stable et disponible, avant de construire quelque chose de plus robuste.
Phase 2 â Lâarchitecture cible :
Lâobjectif Ă terme est de faire Ă©voluer les deux environnements vers quelque chose de plus professionnel.
- mon Homelab : Il grandira naturellement au fil des expĂ©rimentations, en ajoutant des nĆuds, en testant de nouvelles configurations, en rĂ©cupĂ©rant et en donnant une seconde vie Ă de vieux PCs.
- un Cluster de Production : La cible est de mettre en place un cluster Proxmox avec 3 nĆuds. Ce nombre nâest pas choisi au hasard : 3 nĆuds, câest le minimum pour garantir le quorum, le mĂ©canisme qui permet au cluster de continuer Ă fonctionner si lâun des nĆuds tombe en panne, et de trancher en cas de dĂ©saccord entre les membres.
- mes Sauvegardes : Jâadopterai la rĂšgle du 3-2-1 : 3 copies des donnĂ©es, sur 2 supports diffĂ©rents, dont 1 hors site. Les dĂ©tails de cette mise en Ćuvre feront lâobjet dâun article dĂ©diĂ©.
Il ne faudra pas oublier la mise en place dâun Onduleur (UPS) qui sera un Ă©quipement indispensable pour protĂ©ger lâinfrastructure contre les coupures et surtensions Ă©lectriques. En cas de panne de courant, lâonduleur assurera une alimentation de secours le temps dâeffectuer un arrĂȘt propre des serveurs pour Ă©viter ainsi une corruption de donnĂ©es. Il sera Ă©galement Ă intĂ©grer Ă la supervision pour dĂ©clencher automatiquement les arrĂȘts si nĂ©cessaire.
Identité & AccÚs
La gestion des identitĂ©s et des accĂšs est le pilier central dâune approche Zero Trust : plutĂŽt que de faire confiance Ă un appareil parce quâil est sur le bon rĂ©seau, chaque accĂšs doit ĂȘtre authentifiĂ©, autorisĂ©, et tracĂ©, peu importe dâoĂč il vient.
Câest une couche que je vais construire progressivement, en profitant du homelab pour tester et comparer les solutions disponibles avant de retenir celles qui intĂ©greront mon environnement de production.
Les points clés sont les suivants :
- SSO & Annuaire centralisĂ© : Un SSO (Single Sign-On) permet de centraliser lâauthentification : un seul compte, une seule connexion, pour accĂ©der Ă lâensemble des services. Câest plus confortable pour lâutilisateur, et surtout bien plus simple Ă sĂ©curiser et Ă administrer. Mon homelab sera le terrain idĂ©al pour comparer les solutions disponibles.
Premiers candidats au banc d'essai : Authentik, Keycloak, Lldap - MFA (Authentification Multi-Facteurs) : Quel que soit lâoutil SSO retenu, le MFA sera obligatoire sur tous les accĂšs sensibles. LĂ encore, le homelab me permettra dâĂ©valuer ce qui offre le meilleur Ă©quilibre entre sĂ©curitĂ© et praticitĂ© au quotidien.
Premiers candidats au banc d'essai : Ente Auth, clé YubiKey - Gestion des secrets : Mots de passe, tokens, clés API, credentials de services, tous ces secrets ne doivent jamais traßner en clair dans un fichier de configuration ou un dépÎt Git. Deux besoins distincts sont à couvrir :
- Les secrets applicatifs utilisés par les services et les pipelines CI/CD.
Premiers candidats au banc dâessai : HashiCorp Vault, Infisical, OpenBao - Les mots de passe personnels Ă gĂ©rer dans un gestionnaire auto-hĂ©bergĂ©.
Premiers candidats au banc dâessai : Vaultwarden, Bitwarden
- Les secrets applicatifs utilisés par les services et les pipelines CI/CD.
- Certificats TLS : Tout service exposĂ©, mĂȘme en interne, doit communiquer en HTTPS. La gestion des certificats TLS sera automatisĂ©e si possible pour ne jamais avoir Ă renouveler un certificat manuellement et ne jamais se retrouver avec un service inaccessible Ă cause dâun certificat expirĂ©.
Premiers candidats au banc d'essai : Let's Encrypt, cert-manager, Smallstep - Gestion des accÚs privilégiés : Mon objectif est de mettre en place une gestion des accÚs privilégiés rigoureuse : comptes dédiés, droits limités au strict nécessaire, et traçabilité complÚte des actions sensibles, conformément au principe du moindre privilÚge.
Premiers candidats au banc d'essai : Teleport, Boundary
Déploiement & Automatisation
La couche dĂ©ploiement et automatisation va donner Ă mon infrastructure sa dimension vĂ©ritablement DevOps et SRE. Jâai un double objectif : ne plus jamais dĂ©ployer manuellement, et pouvoir reconstruire lâintĂ©gralitĂ© de lâinfrastructure en quelques clics si nĂ©cessaire.
Voici les Ă©lĂ©ments qui vont mâaider dans mon projet :
- Git (la source de vĂ©ritĂ© unique) : Tout ce qui constitue mon infrastructure (son code, sa configuration, la dĂ©finition des services) vivra dans Git. En respectant le principe du GitOps, lâĂ©tat souhaitĂ© de lâinfrastructure est dĂ©crit dans des fichiers versionnĂ©s, et tout changement passe obligatoirement par une modification dans le dĂ©pĂŽt.
- IaC (Infrastructure as Code) : Je dois pouvoir recrĂ©er une infrastructure en quelques clics. En cas de panne majeure ou de migration vers de nouveaux nĆuds, lâinfrastructure sera reconstruite de maniĂšre identique et reproductible.
Premiers candidats au banc d'essai : OpenTofu, Terraform, Pulumi - CaC (Configuration as Code) : Chaque configuration (installation de logiciels, paramÚtrage, gestion des utilisateurs) est décrite sous forme de playbooks versionnés dans Git.
Premiers candidats au banc d'essai : Ansible, Salt - CI/CD (IntĂ©gration continue et Livraison continue) : Des pipelines vont automatiser lâinstallation dâun service depuis son dĂ©veloppement jusquâĂ sa mise en production. Mon approche sera basĂ©e sur un pipeline CI/CD par environnement : un pipeline dĂ©diĂ© au homelab, un autre dĂ©diĂ© Ă la production, chacun avec ses propres variables et ses propres rĂšgles de dĂ©ploiement.
Premiers candidats au banc d'essai : GitHub Actions , Gitea + Forgejo, Woodpecker CI, , GitLab CI - Orchestration & GitOps : Pour les services conteneurisĂ©s, je prĂ©vois dâexpĂ©rimenter K3s (une distribution Kubernetes lĂ©gĂšre parfaitement adaptĂ©e au homelab) pour assurer lâorchestration des conteneurs. Il sera nĂ©cessaire ici dâutiliser un outil GitOps pour synchroniser en permanence lâĂ©tat rĂ©el du cluster avec lâĂ©tat dĂ©crit dans Git, afin que chaque modification soit poussĂ©e dans le dĂ©pĂŽt soit automatiquement appliquĂ©e sur lâenvironnement cible.
Premiers candidats au banc d'essai (Orchestration de conteneurs) : K3s, Docker Swarm, Nomad
Premiers candidats au banc d'essai (GitOps) : ArgoCD, Flux
Comme pour les couches prĂ©cĂ©dentes, le homelab sera le terrain de validation de ces choix technologiques avant leur adoption en production (ce qui sera je pense lâoccasion de rĂ©diger une bonne sĂ©rie dâarticles dĂ©diĂ©s đ).
Sécurité opérationnelle
La couche SĂ©curitĂ© OpĂ©rationnelle va donner Ă mon infrastructure une dimension dĂ©fensive et proactive. Lâobjectif est triple : dĂ©tecter ce qui se passe sur mon rĂ©seau, Ă©valuer mon niveau dâexposition, et anticiper les attaques avant quâelles nâarrivent.
Pour réussir, je vais devoir mettre en place les éléments suivants :
- un IDS et un IPS pour la dĂ©tection et prĂ©vention dâintrusion : Un IDS (Intrusion Detection System) analyse le trafic rĂ©seau en temps rĂ©el pour dĂ©tecter des comportements suspects (scans de ports, tentatives dâexploitation, trafic anormal). Un IPS (Intrusion Prevention System) va plus loin : il bloque automatiquement le trafic identifiĂ© comme malveillant.
Premiers candidats au banc d'essai : Suricata, Snort, Zeek - un SIEM pour la centralisation et la corrĂ©lation des Ă©vĂ©nements : Un SIEM (Security Information and Event Management) collecte les logs de lâensemble de lâinfrastructure (firewall, serveurs, services, IDS) et les corrĂšle pour dĂ©tecter des patterns dâattaque quâaucun Ă©quipement ne verrait seul. Il joue le rĂŽle de tour de contrĂŽle de la sĂ©curitĂ© opĂ©rationnelle.
Premiers candidats au banc d'essai : Wazuh, Elastic Security, Graylog, OpenSearch - Antivirus et EDR pour la protection des endpoints : chaque machine de lâinfrastructure doit ĂȘtre protĂ©gĂ©e individuellement. Un antivirus pour dĂ©tecter les menaces connues par signature et un EDR (Endpoint Detection and Response) pour analyser en temps rĂ©el ce qui se passe sur chaque endpoint et dĂ©tecter des activitĂ©s suspectes, mĂȘme inconnues jusquâalors.
Premiers candidats au banc d'essai : ClamAV, Wazuh, LimaCharlie - des scan de vulnĂ©rabilitĂ©s pour identifier mes propres failles de sĂ©curitĂ© avant quâun attaquant ne le fasse.
Premiers candidats au banc d'essai : OpenVAS, Trivy, Nuclei - Surveiller mon Exposition Externe câest Ă dire ce que le monde voit de mon infrastructure, services exposĂ©s sur Internet, ports ouverts, banniĂšres de services, certificats TLS. Je vais devoir consulter rĂ©guliĂšrement ce que ces outils de scan externe voient de mon infrastructure pour mâassurer que rien nâest exposĂ© involontairement.
Premiers candidats au banc d'essai : Shodan, Censys, SSL Labs, Security Headers , Have I Been Pwned - des Honeypots pour tendre des PiĂšges aux Attaquants : Un honeypot est un leurre (un service ou une machine) qui simule une cible vulnĂ©rable pour attirer les attaquants et observer leurs techniques sans risquer lâinfrastructure rĂ©elle. Câest Ă la fois un outil de dĂ©tection prĂ©coce et une formidable source dâapprentissage.
Premiers candidats au banc d'essai : OpenCanary, T-Pot, Cowrie
Comme pour les autres couches, le homelab sera le terrain dâexploration pour tester des solutions, avec en perspective des articles dĂ©diĂ©s qui promettent dâĂȘtre particuliĂšrement animĂ©s (surtout si je me fais attaquer đ).
Observabilité & Fiabilité
LâobservabilitĂ© est la capacitĂ© Ă comprendre ce qui se passe Ă lâintĂ©rieur dâun systĂšme en observant ce quâil produit de lâextĂ©rieur (logs, mĂ©triques, traces). Sans elle, gĂ©rer une infrastructure revient Ă conduire les yeux fermĂ©s.
LâobservabilitĂ© repose sur trois sources de donnĂ©es complĂ©mentaires :
- Les mĂ©triques : des mesures numĂ©riques collectĂ©es dans le temps comme la consommation CPU, la mĂ©moire disponible, la latence dâun service ou le nombre de requĂȘtes par seconde. Elles permettent de visualiser les tendances et de dĂ©tecter les anomalies.
- Les logs : des journaux dâĂ©vĂ©nements produits par chaque service et chaque Ă©quipement. Ils permettent de comprendre ce qui sâest passĂ© et pourquoi quelque chose ne fonctionne pas correctement.
- Les traces : le suivi du chemin parcouru par une requĂȘte Ă travers les diffĂ©rents services de lâinfrastructure. ParticuliĂšrement utile dans une architecture distribuĂ©e pour identifier lâendroit oĂč une lenteur ou une erreur sâest produite.
Je vais devoir choisir la stack dâobservabilitĂ© que je vais implĂ©menter parmi 2 des approches principales utilisĂ©es dans le monde professionnel et dans la communautĂ© homelab :
- Prometheus + Grafana + Loki : Prometheus collecte les métriques, Loki centralise les logs, et Grafana les visualise dans des tableaux de bord personnalisables.
- Elastic Stack (ELK) : Elasticsearch, Logstash et Kibana forment une solution complĂšte mais aussi plus gourmande en ressources.
Le homelab permettra de comparer ces deux approches avant de retenir celle qui intĂ©grera lâenvironnement de production avec bien sĂ»r un article dĂ©diĂ© pour dĂ©tailler ce comparatif.
Je prĂ©vois aussi la mise en place dâune solution dâAlerting pour ĂȘtre notifiĂ© avant quâune panne devienne un problĂšme. Lâobjectif est de mettre en place des alertes intelligentes, pas trop nombreuses pour ne pas crĂ©er du bruit, mais suffisamment prĂ©cises pour intervenir avant quâune situation dĂ©gradĂ©e ne devienne une vraie panne.
Le canal de notification quâil soit par email, par notification mobile, ou message sur Discord ou Telegram par exemple, sera expĂ©rimentĂ© dans le homelab pour trouver ce qui convient le mieux au quotidien.
Je mettrai quand mĂȘme quelques limites : pas dâastreinte de nuit ! đ
Les alertes seront dimensionnées en conséquence pour signaler, tracer, et traiter le lendemain matin.
Premiers candidats au banc dâessai : Alertmanager, Grafana Alerting, ntfy, Gotify
Enfin un service dâUptime Monitoring sera Ă installer pour vĂ©rifier quâun service rĂ©pond correctement depuis lâextĂ©rieur, et pas seulement quâil tourne en interne. Câest la diffĂ©rence entre âle serveur est dĂ©marrĂ©â et âle service est rĂ©ellement accessible et fonctionnel pour mes utilisateursâ.
Premiers candidats au banc dâessai : Uptime Kuma, Gatus, Healthchecks.io
Je souhaite également pouvoir monitorer ma consommation électrique et la mesurer dans mon infrastructure, prise par prise.
Pour finir, câest ici que les notions SRE (SLI, SLO et Budget dâErreur) vont apparaĂźtre pour mesurer, suivre et gĂ©rer la fiabilitĂ© de mon infrastructure.
Services & Applications
Toutes les couches vues précédemment existent pour une bonne raison : héberger des services utiles au quotidien, pour moi et ma famille. On retrouvera ici les applications que mes utilisateurs vont réellement utiliser.
Mon approche sera de privilĂ©gier les solutions open source Ă chaque fois que câest possible, pour des raisons de confidentialitĂ©, de contrĂŽle des donnĂ©es, de coĂ»t, mais aussi parce que la communautĂ© open source produit aujourdâhui des alternatives sĂ©rieuses aux grands services cloud du marchĂ©.
Voici les premiers services qui trouveront naturellement leur place dans mon architecture cible, une fois les fondations posées :
- Streaming vidĂ©o et audio : pour accĂ©der Ă mes contenus personnels depuis nâimporte quel appareil de la maison, sans dĂ©pendre dâun abonnement tiers.
Premiers candidats au banc d'essai : Jellyfin, Navidrome, Funkwhale - Gestion de photos : pour centraliser, organiser et partager les photos de famille, en gardant le contrÎle total sur mes données personnelles.
Premiers candidats au banc d'essai : Immich, Photoprism, Pigallery2 - Domotique : Home Assistant sâimpose ici comme le choix naturel, plĂ©biscitĂ© par la communautĂ© homelab pour son Ă©cosystĂšme et sa compatibilitĂ© avec une large gamme dâappareils connectĂ©s.
- Synchronisation de fichiers : pour une alternative auto-hébergée à Google Drive ou Dropbox, pour synchroniser et partager des fichiers entre tous les appareils de la famille.
Premiers candidats au banc d'essai : Nextcloud, Seafile, Syncthing - Gestionnaire de mots de passe : pour centraliser et sécuriser les mots de passe, avec une solution auto-hébergée compatible avec les principaux appareils et navigateurs.
Premiers candidats au banc d'essai : Vaultwarden, Bitwarden - Gestion de budget : pour suivre les finances personnelles sans confier ses données bancaires à un service tiers.
Premiers candidats au banc d'essai : Firefly III, Actual Budget, Maybe - Ămulation de jeux vidĂ©o rĂ©tro : parce quâil faut garder du temps pour sâamuser. đź
Premiers candidats au banc d'essai : EmulatorJS, RetroArch, Romm - BibliothÚque de livres numériques : organiser et partager des documents sans passer par des services en ligne.
Premiers candidats au banc d'essai : Calibre-Web, Kavita - Auto-hĂ©bergement de LLM : Lâessor des modĂšles de langage open source ouvre une nouvelle perspective : hĂ©berger son propre LLM local, via des outils comme Ollama, pour expĂ©rimenter avec lâIA gĂ©nĂ©rative sans dĂ©pendre dâun service cloud et en gardant le contrĂŽle total sur ses donnĂ©es.
Premiers candidats au banc d'essai : Ollama, Open WebUI, LM Studio, LocalAI - Et bien dâautres Ă venirâŠ
Lâunivers du self-hosting offre des possibilitĂ©s infinies et de quoi remplir un backlog sans fond ! Lâavenir de đŒ PandaCyberLab.dev est assurĂ©.
Chaque service fera lâobjet dâun article dĂ©diĂ©, depuis son installation et son test dans le homelab jusquâĂ son dĂ©ploiement en production sâil convient Ă mon projet.
A suivre
Avoir une cible, câest bien, mais comment y parvenir ? Dans la troisiĂšme et derniĂšre partie, nous verrons concrĂštement comment matĂ©rialiser ce projet Ă travers une roadmap stratĂ©gique.