Icinga Web 2 gagne un troisieme mode, locale : nginx authentifie en HTTP Basic et pose REMOTE_USER, l application le croit. Un SITE n a ni annuaire ni Keycloak — ce sont des services d ecosysteme. Ni backend LDAP ni backend de groupes : un backend qui vise une ressource inexistante fait echouer chaque ouverture de session. L habilitation nomme alors une personne, entorse a D-66 ecrite plutot que contournee. Deux pieges en chemin : resoudre_annuaire etait appele sans condition et tombait sur NoneType has no len (default sans son second argument ne remplace pas None), et le flux du role ne nommait que l edge — le site n en a pas, donc personne ne pouvait entrer. serveur_grafana portait deja la reponse. LE DEFAUT DU DEVIS : une sortie vers un role ABSENT de l ecosysteme retombait sur !SETOPS_INTERNES, la forme de vers l Internet. La frontiere aurait autorise la console a parler LDAPS a n importe quelle machine du monde, pour joindre un annuaire qui n existe pas. C est une source vide ouvre le port, cote destination. Trois regles du meme defaut etaient DEJA posees pour postfix. La frontiere n est pas ecrite : elle porte la production, et le devis attend un mot. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
36 lines
1.6 KiB
YAML
36 lines
1.6 KiB
YAML
---
|
|
# Flux réseau d'Icinga Web 2 (frontal de supervision). Voir docs/flux-conception.md.
|
|
# Icinga 2 (API 5665) et IcingaDB (Redis 6380) sont co-localisés : consommés en localhost.
|
|
flux:
|
|
# `admin` EN PLUS DE `edge` — le meme raisonnement que `serveur_grafana`, qui le portait
|
|
# deja et dont la phrase vaut mot pour mot ici : *joignable depuis le plan
|
|
# d'administration partout, sans quoi un deploiement sans edge n'a plus de console*.
|
|
#
|
|
# CE QUE SON ABSENCE COUTAIT (2026-09-14) : le SITE n'a pas d'`infra-edge`. La console
|
|
# de supervision y a ete deployee, nginx ecoutait, php-fpm repondait — et le pare-feu
|
|
# ne laissait entrer PERSONNE. 88 verdicts lisibles par aucune machine au monde.
|
|
#
|
|
# Les deux consoles de l'observabilite avaient la meme contrainte et une seule des deux
|
|
# l'avait ecrite. En mode `locale`, nginx authentifie lui-meme : ce qui entre par le
|
|
# plan d'administration frappe un vestibule, pas l'application.
|
|
- sens: ingress
|
|
port: 8080
|
|
protocole: tcp
|
|
pair: [edge, admin]
|
|
chiffrement: clair
|
|
raison: >-
|
|
Interface web servie via l'edge (TLS terminé à l'edge ; SSO possible via
|
|
oauth2-proxy), et joignable depuis le plan d'administration là où il n'y a pas
|
|
d'edge.
|
|
- sens: egress
|
|
port: 5432
|
|
protocole: tcp
|
|
pair: serveur_postgresql
|
|
chiffrement: tls-requis
|
|
raison: "Lecture d'IcingaDB (base relationnelle, verify-full)."
|
|
- sens: egress
|
|
port: 636
|
|
protocole: tcp
|
|
pair: serveur_openldap
|
|
chiffrement: tls-requis
|
|
raison: "Authentification des utilisateurs sur l'annuaire (LDAPS)."
|