From 2d4b1930df2f10cb5c0d681fe3c21d8d82e36e0a Mon Sep 17 00:00:00 2001 From: kisfenyo Date: Fri, 23 Oct 2026 11:08:14 +0200 Subject: [PATCH] =?UTF-8?q?REPORT:=20day=202026-10-23=20=E2=80=94=20agent?= =?UTF-8?q?=200.163.0=20released,=20delivered=20(step=20bundle),=20vouched?= =?UTF-8?q?=20by=20the=20operator?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- REPORT.md | 53 +++++++++++++++++++++++++++++++++-------------------- 1 file changed, 33 insertions(+), 20 deletions(-) diff --git a/REPORT.md b/REPORT.md index afca443..ea40c45 100644 --- a/REPORT.md +++ b/REPORT.md @@ -1,23 +1,36 @@ -# REPORT — night 2026-10-22 → 23: D30 on `main`, the D4 patches v2, nothing released +# REPORT — day 2026-10-23: agent 0.163.0 released, delivered to the three test boxes, vouched by the operator -**What:** the night brief's agent parts. No release, no vouch. Design read: `03-host-agent.md` (the tunnel, the key, the -bundle), `06-offsite-connectivity.md` (the full-list push to ep0). +**What:** the day brief's Part 2. Design read: `03-host-agent.md` (the tunnel, the bundle), `11` §5.4.2 (the step +bundle, R-880). -- **D30** (`ae69ad4`, hardened `39fb9cb`, `b9b831f`): a handshake stamped in the future for 15 min → a new key pair, - registered on `POST /hosts//wg` (the hub re-keys in place; its full-list push swaps the key on ep0 — nothing new - on ep0). The key file is replaced by an fsynced rename over it (never missing or empty); the first old key stays - `private.key.prev`, later ones dated (3 kept); the once-an-hour bound survives a restart; a wait stamp dated after now - is dropped. Tests `TestD30_*` (7), each red-proved. -- **Live** (felhom.eu `audits/night-2026-10-23/P2-D30/`, test box Tester4-16fdef, fixture `ae69ad4`): with ep0 free to - start a handshake, a 2-hour clock jump healed by itself and no re-key ran (correct); with ep0's starts dropped on the - box, the tunnel stayed dead, the agent re-keyed at 15 min, the hub took the key (`existed=false generation=3 - sync=ok`), the box switched at its next desired-state fetch and shook hands with the new key. -- **D4 patches v2** (felhom.eu `audits/night-2026-10-23/P3-review/`), after a fresh review (A1–A7): `try-reload-or-restart`, - an `sshd -T` read-back reported as `sshd_dropin_not_in_force`, a reload in undo, the right citation; installer: a warning - when the reload fails. RootKeyOnly 6/6 (two new, red-proved); installer tests 40/40 with the patch. Both apply to - tonight's mains. Live by hand on the test box: root password SSH refused, key works, web password 200. -- **Gap filed:** a reboot after the clock was corrected forgets the future stamp (felhom.eu R-1223). +## Release -CI by commit: `ae69ad4` 2229, `39fb9cb` 2235 green; `b9b831f` and this docs commit: see felhom.eu -`REPORT-night-2026-10-23.md`. Fixture names on the test box: `0.163.0-night.1` (= `ae69ad4`), then `0.162.99` -(= `b9b831f`; a plain number, because the controller cannot compare a pre-release string — the off-site unlock refused). +- Code: `1109092` (D4 v2: the sshd drop-in `/etc/ssh/sshd_config.d/10-felhom-root-key-only.conf`, + `PermitRootLogin prohibit-password`, `try-reload-or-restart`, an `sshd -T` read-back; RootKeyOnly 6 tests). CI 2246 + success. CHANGELOG `b4721ee` (v0.163.0 header, both sha256), CI 2249 success. +- `scripts/release-agent.sh 0.163.0`: binary sha256 `561b5316cd511de9fa9d8b8be4553da7add684f715d3bea533ca330ff7f3763c`, + config bundle sha256 `3afb88d9fbbc4adc16083fa52a98cd4974583c6378a77a1a6e0ed8ae6d1b80c8`; tag `v0.163.0`; verified by + an independent download. +- **Vouched by the operator** 07:58:46 UTC — read back from the hub DB (with its WAL) and from the running hub's + `/configuration` page: agent 0.163.0, both sha256 as above. + +## Delivery — three signed jobs per box (felhom-opsign, key felhom-op-1) + +The D4 drop-in is a NEW bundle path, and the boxes ran bundle 0.160.0 (sha256 `6b0609…`), so: `agent_update 0.163.0` +→ `agent_config_update 0.163.0-step1` (built with `scripts/build-step-bundle.py` from 0.160.0: only +`felhom-os-apply` replaced; sha256 `6cbc0669…`, uploaded and read back) → `agent_config_update 0.163.0`. + +| Box | agent | bundle | self-check | swap = RAM (pool guest 9201) | drop-in, `sshd -T` | sshd reloaded | key login | felhom-sshd | +|---|---|---|---|---|---|---|---|---| +| Tester 1 | 0.163.0 | 0.163.0 | ok | 4096 / 4096 | in place, `without-password` | 09:27:38 SIGHUP | ok | active, listening, `sshd -t` ok | +| demo-hp | 0.163.0 | 0.163.0 | ok | 25898 / 25898 | in place, `without-password` | 09:19:44 SIGHUP | ok | active, listening, `sshd -t` ok | +| demo-felhom | 0.163.0 | 0.163.0 | ok | 12288 / 12288 | in place, `without-password` | 09:24:42 SIGHUP | ok | active, listening, `sshd -t` ok | + +**Not proven, said plainly:** the real root password over SSH was not tried (CC does not hold it); a dummy password is +refused, but OpenSSH logs that only as „Failed password", so the policy proof is `sshd -T` + the reload. felhom-sshd +(:8822) admits only the operator peer over the tunnel, so a connection from DooPlex times out by design. The console +login is not touched by the drop-in (`passwd -S root` = P on all three); not tried at a physical console. + +Installer 1.36.0 (the uninstall removes the drop-in) was published the same day (felhom.eu). R-982 and R-1204 closed. +Evidence: felhom.eu `documentation/audits/day-2026-10-23/07-agent-0163-boxes.txt`, `10-vouch-readback.txt`, +`11-installer-1360.txt`.