Commit graph

749 commits

Author SHA1 Message Date
14bf977bd6 reconstruction : make reconstruire-locataire conduit tout depuis le poste
Sauvegarder, raser/creer/inseminer (runner du site), armer (pause sauf
ARMER=oui), monter-flotte (runner du locataire), pare-feu, bilan.
Arret a la premiere etape en echec, reprise par DEPUIS=, journal dans
<locataire>/logs/.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 10:14:12 -04:00
cc906af918 reconstruction : monter-flotte et parefeu-*-flotte entrent dans le code
La sequence du runner (flux, socle, deployer-tout, valider) devient
make monter-flotte ; reconstruire s'appuie dessus. eprouver_parefeu.py
--flotte : toutes les VM une a une, runner en dernier, arret au premier
refus ; les reseaux des IPSet (zone d'administration) comptent enfin.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 05:23:27 -04:00
9167f67c7b client_backup : le web frontal quitte le catalogue des detenteurs d'etat
Il relaie et ne sert rien lui-meme. Un noeud qui n'a plus rien a
sauvegarder perd aussi ses verifications de depot et de restauration,
qui rapportaient sinon a des services qu'Icinga ne declare plus.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 04:46:19 -04:00
b135b09488 client_backup : un Icinga neuf recoit le premier rapport sans attendre dimanche
La copie de l'AC d'Icinga change quand Icinga ou le noeud est neuf : elle
declenche deposer, verifier le depot, verifier la restauration. Eprouve
sur web-frontal-01 de Technolibre ; second passage sans effet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 04:40:20 -04:00
844568af08 journal : Chezlepro reconstruite par les runners, l'etat est revenu a l'identique
AC (meme racine), sysadmin, annuaire, Nextcloud, DKIM, bases : empreintes
identiques avant et apres. Un defaut trouve et corrige (annuaire vierge).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 04:33:56 -04:00
d9a8905fc7 openldap : la mesure d'un annuaire vierge ne meurt plus sur lui
Sur un annuaire vraiment vierge, grep -v ne gardait aucune ligne et
sortait en 1 : pipefail faisait echouer la mesure dans le seul cas
qu'elle doit reconnaitre. Comptage par awk. Trouve par la
reconstruction de Chezlepro.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 03:56:42 -04:00
515aac415a restauration : la section d'une base passe a psql par l'entree standard
postgres ne lit pas le repertoire jetable de root ; trouve en repetition
sur data-sql-01 de Technolibre. Le test l'exige desormais.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 02:51:19 -04:00
8a9da0c31a restauration : la reconstruction remet l'etat de l'incarnation precedente
Chaque role proprietaire (AC, bases, annuaire, Nextcloud, rspamd/DKIM,
courriel, forge, web) remet son etat au moment ou il le creerait neuf,
depuis le dernier instantane anterieur a la naissance de la machine.
La sauvegarde refuse de deposer tant qu'un etat d'avant attend.
Outil de noeud setops-restaurer ; cibles sauvegarder-maintenant,
restauration-etat, restauration-renoncer ; test_restauration.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 02:39:22 -04:00
d3437a6308 journal : etat de Technolibre remis en place sans reconstruire
La reconstruction ne reinjecte aucun instantane : annuaire, Keycloak,
Nextcloud et courriel remis depuis restic-tech (23:50) sur les machines
existantes. Le runbook coupe aussi la section sur DROP DATABASE.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 02:16:27 -04:00
502feff6e0 journal : reconstruction de Technolibre par les runners, quatre defauts trouves
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 01:46:35 -04:00
bdbf7d8317 keycloak : un client absent ne fait plus echouer les mappers de groupes et de roles
Sous set -euo pipefail, grep sans correspondance sortait AVANT la branche client absent.
Trouve par la reconstruction de Technolibre (plus de client forgejo).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 01:12:03 -04:00
f3e8883083 flux : sans voir son site, un ecosysteme qui en depend ne regenere pas ses pare-feux
Sur le runner d un locataire (ni underlay.yml ni plan du site), make flux reecrivait des
regles amputees de tout lien au site : AXFR du DNS public, collecte de la fabric,
insemination. Le generateur s abstient et le dit ; les regles committees font foi.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 00:33:27 -04:00
be06def899 armement : le runner retrouve son identite SSH depuis la voute
Le runner fabriquait sa paire a sa naissance : reconstruit, il avait une identite que la
flotte ne connaissait pas (refuse sur les 13 machines de Technolibre). La cle privee vit
dans la voute du locataire ; serveur_ops_tenant la remet et exige que sa cle publique soit
declaree au plan (garde eprouvee en defaut).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 00:23:49 -04:00
cc3a4eec30 journal : 404 du frontal de Technolibre
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 21:12:30 -04:00
5f23201075 frontal : page 404 du locataire pour les noms qu il ne publie pas
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 18:37:00 -04:00
f818143b49 journal : page du PSPBT sur essai.chezlepro.ca
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 18:28:22 -04:00
b01de94493 waf : le mode dit en clair par la sonde ; journal du passage en blocage
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 18:09:02 -04:00
4678ca0223 journal : plancher de Chezlepro avec essai.chezlepro.ca
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 18:03:16 -04:00
80bd8e88ac dorsal : confiance limitee a la forge du site ; chemin public eprouve de bout en bout
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 17:34:44 -04:00
8186389309 domaine public -> frontal ; noms publics vers l adresse du locataire ; dorsal refuse les inconnus
Zone publique : les expositions pointent vers ip_publique (les NS restent au site).
client_pki : l AC interne ne signe que le domaine interne. Dorsal : serveur par defaut 444.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 17:14:56 -04:00
6d31842b83 journal : frontal proxy + WAF et dorsal des sites, poses chez les deux locataires
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 16:57:33 -04:00
cac0b75b3a web frontal : server_tokens deja actif chez Debian, pas redeclare
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 16:53:08 -04:00
0cd08663e7 web frontal : le lien du vhost se simule au premier deploiement
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 16:50:23 -04:00
2fde5c7ae7 wiki publie : temoin a jour
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 16:48:43 -04:00
3fe7e3cea3 web frontal = reverse proxy + WAF ; le dorsal porte les sites
Le frontal derive ses vhosts des expositions publiques (meme derivation que l edge),
filtre par ModSecurity v3 + OWASP CRS (DetectionOnly d abord, eprouve), refuse les noms
inconnus, et ne sert plus rien lui-meme. Les sites statiques passent au dorsal, relaye
par l edge et par le frontal. Sondes : frontal (nouvelle), sites-servis suit le dorsal.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 16:48:42 -04:00
2903d75831 journal : frontiere appliquee, NAT des locataires prouve dans les deux sens
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 16:22:24 -04:00
5eca6ff4f8 journal : services publics des locataires prets ; frontiere en attente d accord
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 16:14:34 -04:00
37753984a7 services publics des locataires : web frontal 80/443, soumission 587/465 ; externe ouvre a tous chez les locataires
Le web frontal devient la porte publique (80/443 externe) ; Postfix publie la soumission
587 et ajoute le 465 (TLS direct). Le generateur nftables ouvrait un flux externe combine
a une source nommee a cette seule source : l Internet etait refuse par l hote. Corrige chez
les locataires ; au site, rien ne s elargit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 16:09:31 -04:00
e9b03399b9 frontiere : NAT des locataires par leur adresse publique (devis)
Sortie traduite avec l adresse attribuee par le site ; flux externe rediriges depuis cette
adresse vers la machine du role. Gardes : pas de redirection en double, adresse du pool.
Non applique : en attente de l accord de l exploitant.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 15:54:36 -04:00
e84b155a5f pool d adresses publiques : le site attribue a chaque locataire la sienne
Declare dans opnsense.yml du site, rendu par le contrat (ip_publique), valide (une par
locataire, jamais celle du site), compare aux alias du WAN par frontiere-plan.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 15:24:09 -04:00
712a7da1fd frontiere : les flux admin traduits chez les tenants ; edge retire de l Internet
Le devis OPNsense ne rendait le chemin du poste chez un tenant qu au travers des flux
externe ; il traduit desormais les flux admin (gestion, VPN). Applique : 4 retraits
(WAN -> edges), 18 ajouts, 0 ecart. sonde_tcp : une fermeture propre apres la requete
est une reponse de la destination ; la mesure de la frontiere est conforme.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 15:05:23 -04:00
81cdb84f66 journal : pare-feu Proxmox et nftables des edges poses ; route du poste vers le site
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 14:09:29 -04:00
2695013b32 proxmox-fw : les types ICMP au vocabulaire de Proxmox (fragmentation-needed)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 14:05:22 -04:00
e68f315625 wiki publie : temoin a jour
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 13:58:11 -04:00
1493059271 edge ferme a l Internet ; le pare-feu Proxmox recoit les flux externe
L edge n expose qu a sa zone d administration (plus de pair externe) ; le public passera
par le web frontal. Le devis Proxmox recoit les flux externe depuis +t<i>-internet (RFC 1918
exclus en nomatch) et depuis l admin quand le poste en est client.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 13:58:01 -04:00
1bd211d62b resolution_interne : entre machines du site, chaque nom mene a son service
L edge expose les interfaces web aux personnes ; les VM du site vont directement au
service. Declare par domaine (service | edge, defaut edge) ; plancher, zone et certificat
du service suivent. Pose au site : 35 planchers sur 35 conformes ; locataires inchanges.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 13:25:37 -04:00
efb1b3d334 wiki publie : temoin a jour
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 12:34:49 -04:00
eee6851c3b sonde plancher ; une exposition sans port n est plus attribuee a l edge
La zone publie l empreinte de ce que le plancher doit porter ; chaque machine la compare
a son /etc/hosts. Au site, elle a revele que sauvegarde, pki et dns.genese.internal
pointaient vers l edge (regression de mon deploiement du matin) : la derivation ne donne
plus a l edge ce qui n a pas de port. Zone du site corrigee, SFTP des locataires verifie.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 12:34:47 -04:00
ba2020d486 powerdns : une zone plus recente que sa version servie est rechargee ; zones le voit
PowerDNS servait chez les deux locataires une zone anterieure a son fichier (console
absente) : le handler de rechargement avait ete abandonne. Reconciliation a chaque
passage (bind-reload-now) et controle dans la sonde zones. Plancher /etc/hosts rejoue
sur les deux locataires ; console se resout depuis les edges.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 05:29:45 -04:00
fbd4094d3f wiki publie : temoin a jour
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 00:30:45 -04:00
2bbe12299f sonde passerelle : le trajet d un visiteur jusqu a la page de connexion
Apres /ping, /oauth2/start doit renvoyer vers l emetteur configure pour ce client, et
l IdP, joint depuis la passerelle, doit servir sa page de connexion. Le secret du client
n est pas teste (journal du realm). Port derive de l ecoute ; archive oauth2-proxy
plus retransferee a chaque deploiement. Fin de la revue des sondes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 00:30:43 -04:00
5404c947d8 wiki publie : temoin a jour
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 23:55:59 -04:00
1653319ef1 sonde vigie : elle eprouve ce que la vigie lit, pas seulement qu elle repond
Apres check_http, la sonde lit la configuration deployee d Icinga Web 2 et eprouve
chaque ressource utilisee avec ses identifiants : base du moteur (hotes), annuaire ou
base des comptes, Redis. Au vert sur les trois ; quatre mises en defaut critiques.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 23:55:58 -04:00
8ac7909d49 wiki publie : temoin a 4e07b52
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 22:03:37 -04:00
4e07b52291 sonde vigie : la sonde d Icinga Web 2 ne s appelle plus console
Le vocabulaire des plans dit vigie pour Icinga Web 2 et console pour la console
d exploitation Set-OPS (sonde console-ops). Renommee et posee sur les trois
supervisions ; client_sante a retire l orphelin console.sh ; vigie au vert partout.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 22:01:21 -04:00
ca1f1557c4 wiki : fiches des roles regenerees
Rattrape les sondes declarees aujourd hui (disque, fabric, genome-a-jour, tableaux,
filtrage) et les flux de la PR fusionnee (serveur_dns_public, console-ops, icingaweb2).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 20:17:46 -04:00
9e6f33d1cf sonde identite : Keycloak doit atteindre l annuaire ; l archive Keycloak ne voyage plus pour rien
La sonde demande a Keycloak de s authentifier aupres de LDAP avec la federation
enregistree (testLDAPConnection, secret masque). Eprouvee sur les deux locataires ;
mise en defaut par parametre. Le repere d archive deja posee est le marqueur de
construction de la version, pas /tmp : changed=0 au redeploiement.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 20:17:46 -04:00
6b6a56ab3f sondes filtrage et edge : elles verifient le service rendu ; l edge refuse les noms inconnus
filtrage soumet GTUBE ; edge interroge chaque exposition en local. Sans serveur
par defaut, un nom inconnu recevait Keycloak : 000-defaut.conf (444, rejet TLS).
Garde test_sondes_syntaxe : chaque gabarit de sonde se rend en bash valide.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 19:40:26 -04:00
b938897e17 sonde tableaux : la sante de chaque source de donnees de Grafana
Elle etait verte pendant que les tableaux etaient vides. Eprouvee avec une
source recreant le defaut du jour, puis retiree.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 17:51:53 -04:00
8f699eb3ce grafana : l URL de Loki suit son TLS ; les tableaux des locataires se remplissent
Loki servait en HTTPS, Grafana lui parlait en clair : la variable host restait
vide et aucun panneau ne s affichait. URL derivee de serveur_loki_tls_actif.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 17:40:41 -04:00