- client_sante : tasks/retirer.yml, joué sur hyperviseurs:!client_sante ; le minuteur resté depuis le 2026-09-10 visait 10.0.36.11 et échouait toutes les 15 min (une unité en échec permanente par hyperviseur) - site_inventaire : plus de client_sante_icinga_url pour les hyperviseurs - client_journal : loki.process jette le bruit de la sonde connectivite, phrase exacte et seulement depuis une machine de client_sante - serveur_loki : log_level warn (Loki réingérait ses propres requêtes) - auditd : règle never pour adjtimex de node_exporter (35 % de l'audit) ; nouveau handler augenrules --load, un restart d'auditd ne rechargeait pas les règles sur Debian 13 - audit : rapport de preuves du 2026-10-03, carte à 51 pièces Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
56 lines
2.7 KiB
Django/Jinja
56 lines
2.7 KiB
Django/Jinja
# Managed by Ansible — Set-OPS
|
|
-D
|
|
-b 8192
|
|
-f 1
|
|
|
|
-w /etc/passwd -p wa -k identity
|
|
-w /etc/group -p wa -k identity
|
|
-w /etc/shadow -p wa -k identity
|
|
-w /etc/gshadow -p wa -k identity
|
|
-w /etc/sudoers -p wa -k sudoers
|
|
-w /etc/sudoers.d/ -p wa -k sudoers
|
|
-w /etc/ssh/sshd_config -p wa -k sshd
|
|
-w /etc/ssh/sshd_config.d/ -p wa -k sshd
|
|
-w /etc/apt/ -p wa -k apt-config
|
|
|
|
# LE MATERIEL QUI SIGNE TOUT LE RESTE (2026-09-11).
|
|
#
|
|
# Les regles ci-dessus surveillent les fichiers par lesquels on prend un compte. Celles-ci
|
|
# surveillent ce par quoi on prend une IDENTITE DE MACHINE : `/etc/step/certs/` porte la
|
|
# cle privee de l'hote. Qui la copie parle ensuite au nom de la machine devant toute la
|
|
# flotte — PostgreSQL en `verify-full`, Loki, l'annuaire — sans jamais toucher a un
|
|
# mot de passe ni declencher une seule des regles precedentes.
|
|
-w /etc/step/ -p wa -k pki
|
|
{% if 'serveur_step_ca' in group_names %}
|
|
|
|
# LA RACINE DE CONFIANCE, ET ELLE N'EXISTE QUE SUR L'AUTORITE.
|
|
#
|
|
# `/etc/step-ca/` contient `password.txt` et `secrets/` : de quoi emettre un certificat
|
|
# valide pour N'IMPORTE QUEL nom de l'ecosysteme. C'est le seul secret dont la copie ne
|
|
# se repare pas par une rotation — il faut refaire la PKI entiere.
|
|
#
|
|
# LA GARDE EST CONDITIONNELLE, ET CE N'EST PAS UN DETAIL : `auditctl` REFUSE un `-w` vers
|
|
# un chemin absent, et `augenrules` fait alors echouer le chargement ENTIER. Poser cette
|
|
# ligne sur les treize machines qui ne sont pas l'autorite rejouerait exactement la panne
|
|
# du 2026-08-30 — regles armees, personne pour collecter.
|
|
-w /etc/step-ca/ -p wa -k pki-autorite
|
|
{% endif %}
|
|
|
|
# L'EXPORTATEUR DE METRIQUES LIT L'HORLOGE, IL NE LA REGLE PAS (2026-10-03).
|
|
#
|
|
# `adjtimex` sert aux deux : regler ET lire. Le collecteur `timex` de `node_exporter` le lit
|
|
# a chaque collecte, et la regle `time-change` ci-dessous ne peut pas distinguer — le mode
|
|
# est dans une structure pointee, hors de portee d'un filtre `-F`. Mesure au site : 4
|
|
# evenements par minute, 35 % de toute la piste d'audit d'une VM, pour un appel en lecture.
|
|
#
|
|
# UNE REGLE `never` ETROITE, ET DEVANT : l'audit retient la PREMIERE regle qui correspond.
|
|
# Elle ne vise que `adjtimex`, que ce binaire-la : `settimeofday`/`clock_settime` restent
|
|
# audites pour lui aussi, et chrony — qui regle vraiment — reste entierement audite.
|
|
# Eprouve avant d'ecrire : 4 evenements/min sans elle, 0 avec ; et `auditctl` accepte un
|
|
# `exe=` absent, donc la ligne ne casse pas le chargement d'une machine sans exportateur
|
|
# (ce que ferait un `-w` vers un chemin absent, voir plus haut).
|
|
-a never,exit -F arch=b64 -S adjtimex -F exe=/usr/bin/prometheus-node-exporter
|
|
-a always,exit -F arch=b64 -S adjtimex,settimeofday,clock_settime -k time-change
|
|
-a always,exit -F arch=b64 -S sethostname,setdomainname -k system-locale
|
|
|
|
-e 1
|