Mesure sur forge-01 (par l'agent invite, sans dependre du reseau) : quatre drop-ins SSH coexistent la ou il devrait y en avoir deux. Les roles se sont appeles `chezlepro` avant de porter le nom du moteur ; le renommage a change le fichier DEPOSE sans retirer le precedent. Et les paires divergent : MaxSessions 2 contre 10, MaxStartups 5:30:20 contre 10:30:60. sshd retient la PREMIERE valeur rencontree pour chaque mot-cle et lit les drop-ins dans l'ordre lexical — c'est donc l'ANCIEN fichier qui gagne. Une configuration qu'on croit avoir remplacee reste aux commandes, en silence. ssh_baseline et ssh_hardening retirent chacun le fichier de la nomenclature qu'ils ont abandonnee, AVANT de deposer le leur, et notifient la meme validation. La liste est declarative et ne contient que des noms reellement deposes un jour : supprimer un fichier qu'on n'a jamais ecrit serait effacer la configuration d'un autre. PAS ENCORE EPROUVE : les seules machines portant les anciens fichiers sont celles de patient 0, hors d'atteinte depuis le poste. Ecrit, linte, reste a le voir agir. 42 preuves vertes, ansible-lint profil production. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
41 lines
2.1 KiB
YAML
41 lines
2.1 KiB
YAML
---
|
|
ssh_baseline_password_authentication: "no"
|
|
ssh_baseline_permit_root_login: "no"
|
|
ssh_baseline_pubkey_authentication: "yes"
|
|
|
|
# --- QUI A LE DROIT D'ENTRER --------------------------------------------------
|
|
#
|
|
# La cle du compte d'administration est posee par CLOUD-INIT, a la creation de la VM.
|
|
# Il n'existait donc aucun moyen declaratif d'en autoriser une SECONDE sur des machines
|
|
# deja nees — constate le 2026-08-24 : le poste d'exploitation fabriquait sa propre paire
|
|
# depuis son premier deploiement, et n'a jamais pu joindre un seul hote
|
|
# (`Permission denied (publickey)`).
|
|
#
|
|
# CHAQUE ENTREE PORTE SON `etat`, ET C'EST DELIBERE. Une liste purement additive ne sait
|
|
# pas RETIRER : une cle autorisee une fois le resterait pour toujours, et « revoquer »
|
|
# voudrait dire se connecter a la main sur chaque machine. Ici, passer une entree a
|
|
# `absent` la retire au prochain passage, sur toute la flotte.
|
|
#
|
|
# ON N'UTILISE PAS `exclusive: true` : il effacerait la cle posee par cloud-init si le
|
|
# plan ne la reprenait pas, et fermerait la flotte a tout le monde d'un seul deploiement.
|
|
# Le prix de ce choix est qu'une cle posee HORS du plan ne sera pas detectee ici.
|
|
#
|
|
# ssh_baseline_cles_admin:
|
|
# - cle: "ssh-ed25519 AAAA… setops@ops-01.exemple.internal"
|
|
# pourquoi: "poste d'exploitation — configure la flotte"
|
|
# etat: present # `absent` pour revoquer
|
|
ssh_baseline_admin_user: "{{ sudo_ansible_admin_user | default('ansible') }}"
|
|
ssh_baseline_cles_admin: []
|
|
|
|
# LES FICHIERS QU'UNE NOMENCLATURE ABANDONNEE A LAISSES DERRIERE ELLE.
|
|
#
|
|
# Ce role a porte le nom `chezlepro` avant de porter celui du moteur. Le renommage a
|
|
# change le fichier DEPOSE sans retirer le precedent : les deux coexistent sur toute
|
|
# machine anterieure au changement, et sshd retient la PREMIERE valeur qu'il rencontre —
|
|
# donc l'ancienne, l'ordre lexical la placant devant.
|
|
#
|
|
# Cette liste est le registre de ces mues. On n'y ajoute que des noms qu'on a REELLEMENT
|
|
# deposes un jour : retirer un fichier qu'on n'a jamais ecrit serait s'arroger le droit de
|
|
# supprimer la configuration de quelqu'un d'autre.
|
|
ssh_baseline_fichiers_perimes:
|
|
- 10-chezlepro.conf
|