Some checks are pending
verifier / verifier (push) Waiting to run
Chezlepro rangeait ses instantanes sur une VM DE SA PROPRE FLOTTE. Raser l ecosysteme pour le reconstruire, c etait raser le filet avec. Le site a son depot ; les neuf detenteurs d etat y deposent ; une restitution est sortie (annuaire LDAP lisible, hors flotte). Isolation par compte Unix, pas par convention : home 0700, cle exclusive, racine partagee a root en 0711 (traversable, non listable). Les deux refus constates. Le site heberge du chiffre : il ne peut ni lire ni ouvrir, d ou la verification deplacee chez le locataire qui detient la cle. Quatre defauts reveles par ce deuxieme usage : - la racine des depots ne peut etre le home de personne (StrictModes rendait Permission denied publickey pour un refus de CHEMIN) - la racine nie le TLD internal, et harden-below-nxdomain etendait ce non a toute la zone sans jamais interroger l autoritatif : aucun locataire ne pouvait nommer un service du site - le gabarit transporte des fichiers de durcissement perimes, et les machines du site ne recoivent jamais ssh_hardening - MaxStartups compte les connexions non authentifiees : un depot de site en voit la somme de ses locataires Constat non corrige : les machines du site ne sont pas durcies. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019f91zs9SDdwSzL2CVei6on
47 lines
2.7 KiB
YAML
47 lines
2.7 KiB
YAML
---
|
|
# LE DÉPÔT DE SAUVEGARDE DU SITE — le marqueur, pas l'installateur.
|
|
#
|
|
# `serveur_backup` pose le dépôt et son utilisateur restreint ; ce rôle dit que CE dépôt
|
|
# est celui où les écosystèmes du site déposent leur état, et déclare le flux qui le
|
|
# permet.
|
|
#
|
|
# Les valeurs viennent de `serveur_backup` : on ne les redéclare pas ici, une seconde
|
|
# source finirait par diverger de la première.
|
|
# LA RACINE PARTAGÉE — parent des dépôts, home de personne.
|
|
#
|
|
# Chaque déposant (les locataires, et le site lui-même) a SON sous-répertoire en 0700.
|
|
# Celui-ci est leur parent commun : il appartient à root, et n'est ni le home ni la
|
|
# propriété d'aucun compte de dépôt. C'est ce que `sshd` exige (`StrictModes`) pour
|
|
# accepter une clé, et ce que le noyau exige pour qu'un compte puisse simplement
|
|
# atteindre son propre répertoire.
|
|
serveur_backup_site_parent: "/srv/restic"
|
|
|
|
# Le sous-répertoire du SITE lui-même. La même valeur est passée à `serveur_backup`
|
|
# dans `meta/main.yml` — un paramètre de dépendance n'est pas en portée ici, on ne peut
|
|
# donc pas la lire, seulement la répéter.
|
|
#
|
|
# Deux littéraux qui doivent s'accorder finissent toujours par diverger. Ce qui les
|
|
# tient, c'est la vérification plus bas : le marqueur EXIGE que ce répertoire existe
|
|
# réellement. S'ils divergent, l'installateur en aura créé un autre, celui-ci sera
|
|
# absent, et le déploiement s'arrêtera en le nommant — au lieu de laisser un dépôt de
|
|
# site silencieusement inaccessible.
|
|
serveur_backup_site_racine: "{{ serveur_backup_site_parent }}/site"
|
|
serveur_backup_site_utilisateur: "{{ serveur_backup_utilisateur | default('restic') }}"
|
|
|
|
# COMBIEN DE PLACE IL FAUT AVOIR DEVANT SOI, ET POURQUOI ON LE MESURE.
|
|
#
|
|
# Un dépôt de sauvegarde qui se remplit ne tombe pas : il ACCEPTE moins, puis échoue au
|
|
# milieu d'un instantané. La panne arrive donc au pire moment — celui où l'on écrit — et
|
|
# se lit comme une erreur réseau. On refuse en amont plutôt que de la découvrir en aval.
|
|
#
|
|
# 20 Go : de quoi absorber plusieurs instantanés complets d'un écosystème. Ce n'est pas
|
|
# une capacité cible, c'est un plancher sous lequel il ne faut pas descendre sans le voir.
|
|
serveur_backup_site_espace_minimal_go: 20
|
|
|
|
# LES LOCATAIRES — un compte Unix chacun, dérivé par l'inventaire du site.
|
|
#
|
|
# Chaque entrée : `{nom, compte, pubkey}`. La liste vient de `site_inventaire.py`, qui
|
|
# détient les deux sources nécessaires (le plan du site ET les dépôts des tenants) ; le
|
|
# rôle, lui, tourne sur une machine qui n'a aucune raison de lire la carte de
|
|
# l'hébergeur. Vide par défaut : un dépôt sans locataire déclaré n'ouvre aucun compte.
|
|
serveur_backup_site_locataires: []
|