« mon-01 tape dans l fond. » Il tapait : load 5,10 sur 4 coeurs, 8 processus check_disk a 70-99 % de CPU chacun, jusqu a 28 minutes de vie. check_disk 2.4.0-3+deb13u1 ne rend jamais la main sur cet hote (etat R). Icinga en relancait un a chaque intervalle pour le service `disk` de son hote de DEMONSTRATION, et aucun ne mourait. RETIRE : conf.d/hosts.conf, l hote NodeName livre par le paquet. Les apply Service s y accrochaient — disk, http, swap, apt, load, procs, users — et trois etaient rouges en permanence (swap sur une VM sans swap, http sur un port ou rien n ecoute, apt pour un paquet). On retire l HOTE et non les services : sans lui les apply ne s accrochent a rien, et on ne touche pas a un fichier que le paquet remplacera. Ca garde ping4, qui vise nos hotes et sert vraiment. avant : load 5,10 — 8 check_disk — 3 alarmes rouges permanentes apres : load 0,77 — 0 check_disk — certificat 14/14, sante 14/14, ping4 14/14 TROUVE EN VERIFIANT : l Icinga du SITE tenait 6 de ses 7 machines pour MORTES (1/7 UP, contre 14/14 au tenant). hostalive est un ping, le site est decoupe en zones, et l ICMP inter-zones n etait declare nulle part — 100 % de perte, mesure. Or Icinga SUPPRIME les notifications des services d un hote DOWN : une supervision qui croit tout mort n alerte plus de rien, tout en ayant l air de fonctionner. Le flux est declare des DEUX cotes, et le registre a refuse la premiere moitie seule — exactement sa raison d etre. CODES_ICMP apprend echo-request. Regles d hote posees sur les 21 machines. RESTE OUVERT : le generateur de la frontiere ne sait pas traduire un TYPE ICMP pour un pair INTERNE — il le note et n emet rien. Le site reste a 1/7. Corriger devis_opnsense.py est le prochain geste. make prouver : CONFORME, 64 OK, 0 echec, 0 saute. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
63 lines
2.8 KiB
YAML
63 lines
2.8 KiB
YAML
---
|
|
# Flux réseau du socle Debian : le plan de gestion (SSH). Voir docs/flux-conception.md.
|
|
# CRITIQUE : sans cette règle, les nftables générés couperaient l'accès Ansible/SSH.
|
|
flux:
|
|
- sens: ingress
|
|
port: 22
|
|
protocole: tcp
|
|
pair: [flotte, externe]
|
|
chiffrement: ssh
|
|
raison: "Plan de gestion : administration et déploiement Ansible par SSH (inter-nœud ; l'accès depuis l'extérieur est filtré à l'OPNsense)."
|
|
|
|
# --- Sortie générale de la flotte ---
|
|
# Portée par le socle parce qu'elle vaut pour TOUS les hôtes, sans exception.
|
|
# Non déclarée, la frontière la bloquerait : son `block out` final est un vrai
|
|
# default-deny, et la flotte perdrait ses mises à jour et son horloge en silence.
|
|
- sens: egress
|
|
port: 443
|
|
protocole: tcp
|
|
pair: externe
|
|
chiffrement: tls-requis
|
|
raison: "Dépôts apt en HTTPS (Debian, Smallstep, Grafana, Icinga, Forgejo, Nextcloud) — sans quoi aucun correctif de sécurité n'entre."
|
|
- sens: egress
|
|
port: 80
|
|
protocole: tcp
|
|
pair: externe
|
|
chiffrement: clair
|
|
raison: "Dépôts apt en clair et redirections HTTP des miroirs (l'intégrité vient de la signature des paquets, pas du transport)."
|
|
# --- Decouverte de MTU de chemin (PMTUD) ---
|
|
# L'overlay EVPN plafonne a 1450 : tout ce qui traverse la frontiere depend de ces
|
|
# deux messages. Bloques, la connexion s'etablit, les petites requetes passent et les
|
|
# grosses reponses restent suspendues — la panne la plus couteuse a diagnostiquer.
|
|
- sens: ingress
|
|
port: frag-needed
|
|
protocole: icmp
|
|
pair: externe
|
|
chiffrement: n-a
|
|
raison: "ICMP « fragmentation nécessaire » entrant : sans lui, un distant ne peut pas nous demander de réduire nos paquets — les transferts se figent."
|
|
- sens: egress
|
|
port: frag-needed
|
|
protocole: icmp
|
|
pair: externe
|
|
chiffrement: n-a
|
|
raison: "ICMP « fragmentation nécessaire » sortant : c'est ainsi que nos hôtes signalent l'overlay à 1450 aux correspondants distants."
|
|
|
|
# LA FACE RECEPTRICE DU PING DE SUPERVISION.
|
|
#
|
|
# `serveur_icinga` declare l'egress ; le registre REFUSE un egress sans son ingress en
|
|
# face, et il a bien fait : c'est precisement l'oubli qui a coute cinq `TimeoutError`
|
|
# sur le rapport de sante quelques heures plus tot. Ici la garde l'a dit tout de suite.
|
|
- sens: ingress
|
|
port: echo-request
|
|
protocole: icmp
|
|
pair: serveur_icinga
|
|
chiffrement: n-a
|
|
partage: true
|
|
raison: "La supervision verifie que ce noeud repond (hostalive). Sans lui, elle le tient pour mort et supprime ses notifications."
|
|
|
|
- sens: egress
|
|
port: 123
|
|
protocole: udp
|
|
pair: externe
|
|
chiffrement: n-a
|
|
raison: "Synchronisation d'horloge (NTP). Une dérive fait échouer la validation des certificats step-ca et l'authentification SSO."
|