Aller au contenu
maxime.bertrand homelab

Homelab · Infrastructure as Code

Une infrastructure personnelle, gérée comme en production.

Un serveur, un pare-feu, des zones réseau étanches et des services utilisés tous les jours par ma famille. Tout est décrit en code, relu avant d'être appliqué, et documenté — y compris les erreurs.

1

serveur

hyperviseur, stockage et pare-feu

7

zones réseau

tout est interdit entre elles par défaut

100 %

en code

machines, pare-feu, DNS, services

2FA

partout où c'est possible

portail d'authentification unique

Défense en profondeur

Le parcours d'une requête

Chaque couche arrête ce que la précédente a laissé passer. Si l'une cède, la suivante tient.

  1. 1 Internet Un seul port entrant, aucune autre porte ouverte.
  2. 2 Pare-feu Redirige uniquement vers le WAF, isole chaque zone.
  3. 3 WAF Règles OWASP, filtrage par pays, limitation de débit.
  4. 4 SSO Annuaire unique, double authentification.
  5. 5 Application Dans sa propre zone, sans accès au reste.

Méthode

Quatre principes, appliqués partout

Tout en code

Aucune machine ni règle créée à la main. OpenTofu décrit l'infrastructure, Ansible la configure ; un second passage ne doit rien changer.

Exposition minimale

Ce qui est public passe par un pare-feu, un WAF et un portail d'authentification. L'administration n'est joignable que par VPN.

Zones étanches

Chaque service vit dans sa zone. Une compromission reste confinée ; chaque flux autorisé est justifié dans une matrice.

Tout se restaure

Instantanés automatiques, secrets chiffrés et versionnés, procédures écrites — pour ne dépendre ni de la mémoire, ni d'une seule personne.

Outils

La pile technique

Des outils libres, choisis pour une raison écrite — les ADR expliquent chaque choix.

Hyperviseur & stockage

  • Proxmox VE
  • ZFS RAIDZ2
  • virtiofs
  • sanoid
  • restic

Réseau & sécurité

  • OPNsense
  • WireGuard
  • BunkerWeb
  • CrowdSec
  • DNSSEC

Identité & secrets

  • LLDAP
  • Authelia
  • OpenID Connect
  • WebAuthn
  • OpenBao

Infrastructure as Code

  • OpenTofu
  • Ansible
  • SOPS + age
  • GitHub Actions

Services & supervision

  • Docker Compose
  • Traefik
  • Let's Encrypt
  • NetBox
  • Prometheus
  • Grafana
  • VictoriaLogs

Publication

  • Cloudflare DNS
  • Cloudflare Tunnel
  • Hugo

Décisions

Les derniers choix

Toutes les décisions

Journal

Au fil du projet

  1. Veille des connexions, et le WAF à nouveau

    Une alerte quand des tentatives de connexion viennent d'une adresse jamais vue réussir, sans bruit avec la 5G ; des tableaux corrigés ; et une nuit où le WAF a été tué 139 fois.

  2. Un cinquième disque, puis un disque remplacé

    Rodage complet d'un disque d'occasion, extension du RAIDZ2 de 4 à 5 disques sans arrêt, puis remplacement d'un disque dont les secteurs défectueux augmentaient, sans emplacement libre.

  3. Audit de sécurité, mises à jour du parc et e-mails

    Un audit en boîte noire et en boîte grise, des mises à jour programmables pour tout le parc avec une veille des failles, des journaux consultables et des e-mails qui passent enfin les filtres.

  4. Droits par groupes, quotas et documentation aux couleurs du homelab

    L'accès à chaque service se donne en cochant un groupe, les droits d'administration suivent l'annuaire, la place allouée se règle en une page.

Tout le journal