Aller au contenu
Homelab medium

Nœud admin Proxmox : authentik et OpenBao

10 min de lecture

Le nœud admin héberge vos services de confiance : authentik (SSO/identité), OpenBao (secrets), et bientôt votre PKI interne. Ces services ne doivent pas dépendre du cluster applicatif qu’ils sécurisent, d’où un serveur séparé.

Ce guide ne décrit pas encore la plateforme finale. Il documente la mise en place du premier nœud de confiance du homelab, dans l’architecture actuelle, avant l’arrivée du cluster applicatif et de la segmentation réseau avancée.

Imaginez cette situation :

  1. Votre cluster Kubernetes Talos héberge authentik
  2. authentik gère l’accès à ArgoCD, Vault, et aux autres apps
  3. Le cluster plante ou doit être recréé
  4. → Vous ne pouvez plus vous authentifier nulle part
  5. → Impossible de redéployer quoi que ce soit

Solution : les services de confiance vivent en dehors du cluster applicatif.

Architecture à 2 couches : Couche de confiance (authentik, OpenBao, PKI) sur le nœud admin Proxmox, et couche d'exécution (Talos, Applications, Monitoring) sur les nœuds de calcul
ÉlémentRecommandation
Machine physiqueMini-PC avec 16-32 Go RAM, 256+ Go SSD, AMD Ryzen ou Intel N100+
RéseauOPNsense opérationnel avec un LAN principal en 192.168.10.0/24 et un accès distant validé (voir guide précédent)
StockageIdéalement un SSD dédié pour les VMs (séparé de l’OS)

Proxmox VE est un hyperviseur basé sur Debian. Il vous permet de créer des VMs et des conteneurs LXC depuis une interface web.

  1. Téléchargez l’ISO sur proxmox.com/downloads

  2. Créez une clé USB bootable

    Fenêtre de terminal
    sudo dd if=proxmox-ve_*.iso of=/dev/sdX bs=4M status=progress
  3. Installez Proxmox VE

    • Bootez sur la clé USB
    • Choisissez le disque cible (SSD principal)
    • Configurez le hostname : proxmox-admin.lab.local
    • IP sur le LAN actuel : 192.168.10.10/24
    • Gateway : 192.168.10.1 (OPNsense)
  4. Accédez à l’interface web

    https://192.168.10.10:8006

Guide détaillé : Installation Proxmox VE

  1. Désactivez le repo entreprise (sauf si vous avez une licence)

    Fenêtre de terminal
    # Dans le shell Proxmox
    sed -i 's/^deb/#deb/' /etc/apt/sources.list.d/pve-enterprise.list
    echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
    apt update && apt dist-upgrade -y
  2. Configurez la résolution DNS

    Éditez /etc/resolv.conf pour pointer vers OPNsense :

    nameserver 192.168.10.1
    search lab.local
  3. Ajoutez votre clé SSH

    Fenêtre de terminal
    mkdir -p ~/.ssh
    echo "ssh-ed25519 AAAA..." >> ~/.ssh/authorized_keys

Guide détaillé : Configuration post-installation Proxmox

authentik est une solution SSO/Identity Provider open source. Elle vous permettra de :

  • Créer un portail d’authentification unique pour toutes vos apps
  • Centraliser la gestion des utilisateurs et groupes
  • Activer le MFA (TOTP, WebAuthn, etc.)
  • Intégrer des apps via OIDC, SAML, LDAP, ou proxy

Pour un homelab, un conteneur Debian avec Docker est le plus simple :

  1. Créez un conteneur LXC dans Proxmox :

    • Template : debian-12-standard
    • RAM : 4 Go minimum (8 Go recommandé)
    • Disk : 20 Go
    • IP : 192.168.10.20/24
    • Activez “nesting” (requis pour Docker)
  2. Installez Docker

    Fenêtre de terminal
    apt update && apt install -y curl
    curl -fsSL https://get.docker.com | sh
  3. Déployez authentik avec Docker Compose

    Suivez le guide officiel ou le nôtre (voir lien ci-dessous).

Guide détaillé : Installation authentik

ApplicationMéthode d’intégration
Proxmox VEOIDC (realm externe)
ArgoCDOIDC
GrafanaOIDC
Traefik DashboardProxy authentik (Forward Auth)
Applications web sans SSOProxy authentik
CLI / scriptsService accounts + API tokens

OpenBao est le fork communautaire de HashiCorp Vault. Il stocke et gère vos secrets de manière sécurisée :

  • Secrets statiques : mots de passe de bases de données, tokens API, etc.
  • Secrets dynamiques : génération à la demande de credentials à durée limitée
  • PKI : émission de certificats X.509
  • Transit : chiffrement/déchiffrement via API (vos apps n’ont jamais la clé)

Si OpenBao est dans votre cluster Talos, et que Talos a besoin de secrets au démarrage → problème de l’œuf et de la poule.

En le plaçant sur le nœud admin :

  1. Talos démarre et récupère ses secrets depuis OpenBao
  2. Les apps récupèrent leurs secrets via l’agent Vault
  3. Si le cluster est recréé, OpenBao est toujours là

Pour ce homelab, je pars sur une première instance OpenBao hébergée sur le nœud admin Proxmox. Le format exact (LXC ou VM) pourra évoluer ensuite selon les besoins d’isolation et d’automatisation.

  1. Créez un conteneur LXC (ou VM) :

    • RAM : 2 Go
    • Disk : 10 Go
    • IP : 192.168.10.21/24
  2. Installez OpenBao

    Fenêtre de terminal
    # Téléchargez depuis les releases GitHub
    curl -LO https://github.com/openbao/openbao/releases/download/v2.2.0/bao_2.2.0_linux_amd64.deb
    dpkg -i bao_2.2.0_linux_amd64.deb
  3. Configurez (/etc/bao.d/bao.hcl) et initialisez

  4. Stockez les clés de déverrouillage quelque part de sûr (pas sur ce serveur !)

Guide détaillé : Installation OpenBao

Répartition cible des services sur le nœud admin

Section intitulée « Répartition cible des services sur le nœud admin »

À ce stade, votre nœud admin héberge :

ServicePositionnement initialUsage
Proxmox VEhôte physique (192.168.10.10)Hyperviseur
authentikVM ou LXC dédié (192.168.10.20)SSO/OIDC
OpenBaoVM ou LXC dédié (192.168.10.21)Secrets
PKI interneétape suivanteCertificats TLS internes

Ces services sont critiques. Une sauvegarde régulière est indispensable.

ÉlémentMéthodeFréquence
VM / conteneurs ProxmoxProxmox Backup Server ou vzdumpQuotidienne
Config authentikExport via UI ou dump PostgreSQLHebdomadaire
Data OpenBaoSnapshot Raft ou backend storageQuotidienne
Clés unseal OpenBaoStockage offline hors siteUne fois (puis rotation)

Guide détaillé : Sauvegardes Proxmox

Fenêtre de terminal
# Depuis votre poste
curl -k https://auth.lab.local/api/v3/core/info/

Vous devriez obtenir une réponse JSON avec la version d’authentik.

Fenêtre de terminal
# Définir l'adresse
export BAO_ADDR='https://vault.lab.local:8200'
# Vérifier le statut
bao status
  • Proxmox accessible via https://192.168.10.10:8006
  • authentik déployé et accessible
  • Compte admin authentik avec MFA activé
  • OpenBao initialisé et déverrouillé
  • Clés unseal stockées en lieu sûr (hors ce serveur)
  • Résolution DNS locale (si déjà mise en place)
  • Première sauvegarde effectuée
  • Nœud admin séparé : évite la dépendance circulaire avec le cluster applicatif
  • authentik : SSO/OIDC pour toutes vos applications
  • OpenBao : gestion centralisée des secrets
  • DNS interne : configurez *.lab.local pour simplifier les accès
  • MFA obligatoire : le compte admin authentik est la clé de voûte
  • Sauvegardez TOUT : particulièrement les clés unseal d’OpenBao

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn