PSK-Befund dokumentiert: Wert ist live, Historie bleibt, Rotation bleibt nachgelagert
Ergebnis der read-only-Recherche-Session, hier gegengeprueft und in die kanonische Doku uebernommen. Der PSK in docs/teilprojekte-archiv.md (TP17) ist NOCH der live konfigurierte -- verifiziert am Manager per Fingerprint (Laenge + drei Zeichenpaare) statt im Klartext, damit der Wert nicht ein zweites Mal in einem Transkript landet. Das ist zugleich die Merkregel: Uebereinstimmung prueft man mit Stichproben, nicht durch Ausgeben. User-Entscheid: Historie belassen, im Nachtrag dokumentieren -- kein filter-repo. Traegt, weil es genau eine getrackte Fundstelle gibt, drei Commits, Remote nur gitea.emsenhuber.net und einen einzigen lokalen Klon; der Wert hat die eigene Infrastruktur nie verlassen. Der wirksame Schritt ist die Rotation, und die bleibt hinter TP17.1. Blast radius selbst nachgemessen (crs326-core, read-only), Peer-Zahlen bestaetigt: 26 der 27 WLAN-Clients des gesamten Netzes haengen auf dirtyvader-iot (main 1, media/untrusted/guest je 0), VLAN30 fuehrt 41 Leases/Reservierungen (5 bound). Neben den ~26 Shellys: P750W, Airfryer, SwitchBot, Twinkly, DTUBI, SONOFF-NSPanelPro, ein iPhone. Damit praezisiert sich TP17.1: nach zehn migrierten Gen4 blieben grob 16 Geraete auf dem IoT-SSID, nicht 12 -- der Funkruhe-Effekt ist real (-38 % Clients), der PSK-Effekt nur halb. Die Reihenfolge-Entscheidung bleibt richtig, ihre Begruendung wird ehrlicher. Zwei Umsetzungshinweise fuers spaetere Rotations-Paket festgehalten: migrate.py hat kein Rotate-Kommando, und ein Flag-Day ist vermeidbar ueber Passphrase-Overrides je MAC in /interface wifi access-list -- was dem TP25-Befund "keine access-list" nebenbei einen Zweck gibt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -879,6 +879,19 @@ FT kaschierte das bisher als „Roaming" statt „schwache Abdeckung".
|
||||
ist real und in der Übergabe ausgeführt.
|
||||
- 📊 **Bestandszahl, live 2026-08-23:** 22 der 26 Shellys erreichbar — **12 Gen4**, 8 Gen3, 2 Gen2.
|
||||
Die „~11 Gen4" aus der Schätzung von 2026-07-11 waren also nah dran.
|
||||
- 🔑 **Nachtrag 2026-08-23 — der IOT-PSK steht in der „Ziel"-Zeile oben im KLARTEXT, und das bleibt
|
||||
vorerst so (User-Entscheid).** Der Wert ist am selben Tag gegen den Manager geprüft worden und ist
|
||||
**noch der live konfigurierte**. Bewusst **nicht** redigiert und **keine** History-Rewrite:
|
||||
- Redigieren allein hilft nicht — die Zeile liegt seit `e76289c` (2026-07-11) in der Historie.
|
||||
- Ein `git filter-repo` wäre hier Aufwand ohne Gegenwert: **eine** getrackte Fundstelle, drei
|
||||
Commits, Remote **nur** `gitea.emsenhuber.net` (kein GitHub), **ein** lokaler Klon — der Wert hat
|
||||
die eigene Infrastruktur nie verlassen.
|
||||
- **Der wirksame Schritt ist die Rotation**, und die kostet heute ~26 Geräte. Sie ist deshalb
|
||||
bewusst **hinter TP17.1** eingereiht (Gen4 → Thread), s. Follow-ups in
|
||||
[`teilprojekte.md`](teilprojekte.md).
|
||||
⚠️ **Wer diesen Abschnitt liest, behandelt den Wert als aktives Geheimnis** — nicht zitieren, nicht
|
||||
in Transkripte, nicht in Tickets. Zum Abgleich reicht ein Fingerprint (Länge + Stichproben),
|
||||
genau so ist er am 08-23 verifiziert worden.
|
||||
|
||||
<a id="tp19"></a>
|
||||
|
||||
|
||||
@@ -396,9 +396,14 @@ nachmessen und dann entscheiden**. Blocker gibt es keine mehr. TP5 ist in der Na
|
||||
Projekt (`hencou/shelly_gen4_matter_module`) deckt 1/1 Mini/1PM/2PM Gen4 ab = **10 der 12** Geräte;
|
||||
die zwei **Plug S Gen4 fallen raus**. Preis: Garantie und Shelly-Cloud weg, Rückweg nur mit
|
||||
**UART-Vollbackup je Gerät**, PM-Kalibrierung zunächst Platzhalter.
|
||||
⇒ **Selbst bei vollem Erfolg blieben 12 Geräte im WLAN** (8 Gen3 + 2 Gen2 + 2 Plug S + die 4
|
||||
⇒ **Selbst bei vollem Erfolg blieben 12 Shellys im WLAN** (8 Gen3 + 2 Gen2 + 2 Plug S + die 4
|
||||
ausgesteckten). Die Rotation wird **kleiner, nicht überflüssig** — und Gen3 kann nie folgen, dort
|
||||
fehlt 802.15.4. **Das ist Christophs Abwägung vor dem ersten Flash, nicht die des Umsetzenden.**
|
||||
- 📊 **Und die Rechnung ist noch etwas ungünstiger, als „Shellys" nahelegt** (live 2026-08-23):
|
||||
auf `dirtyvader-iot` hängen **26 der 27 WLAN-Clients des ganzen Netzes** — darunter Drucker
|
||||
(P750W), Airfryer, SwitchBot, Twinkly, DTUBI und ein SONOFF-NSPanelPro, die von Thread **nichts**
|
||||
haben. Nach zehn migrierten Gen4 blieben also grob **16 Geräte** auf dem IoT-SSID, nicht 12.
|
||||
Der WLAN-Ruhe-Effekt ist real (−38 % Clients), der PSK-Effekt ist es **halb**.
|
||||
- ✅ **Was netzseitig schon steht und nicht nochmal gebaut werden muss:** Thread-Border-Router läuft
|
||||
mit ~30 produktiven Matter-Knoten; der **Commissioning-Weg ist erprobt** — temporäre SSID
|
||||
`dirtyvader-infra` (VLAN20) nach [`matter-pairing-infra-ssid-runbook.md`](matter-pairing-infra-ssid-runbook.md),
|
||||
@@ -794,6 +799,36 @@ den Weg, über den man den Fehler zurücknehmen wollte.
|
||||
Weg: `manage_user set-password` (⚠️ `/user set*` ist per Deny-Policy blockiert), danach
|
||||
`~/.secrets/credentials.env` (`ROUTER_*_PASS`/`CRS326_*_PASS`) und `~/.claude.json` nachziehen.
|
||||
Es ist **ein** Passwort für alle vier Geräte — die „Überlebensversicherung" aus CLAUDE.md.
|
||||
- 🔎 **Nachtrag 2026-08-23 (Recherche-Session, read-only — kein Eingriff): der PSK in der Doku ist
|
||||
noch der LIVE konfigurierte.** Gegengeprüft am Manager `crs326-core` (`/interface wifi security`,
|
||||
Profil `sec-iot` → `cfg-iot` → SSID `dirtyvader-iot`, `datapath.vlan-id=30`,
|
||||
`wpa2-psk,wpa3-psk`) — und zwar **per Fingerprint statt Klartext** (Länge + drei Zeichenpaare),
|
||||
damit der Wert nicht ein zweites Mal in ein Transkript wandert. **Diese Methode ist die Merkregel
|
||||
daraus:** einen Verdacht auf Übereinstimmung prüft man mit Stichproben, nicht durch Ausgeben.
|
||||
- ✅ **User-Entscheid 2026-08-23 zur Git-Historie: belassen, im Nachtrag dokumentieren** — **kein**
|
||||
`git filter-repo`. Begründung trägt: genau **eine** getrackte Fundstelle
|
||||
([Archiv](teilprojekte-archiv.md#tp17)), drei Commits (`e76289c` Ersteintrag 2026-07-11,
|
||||
`f0d1ff9` 08-08, `7ee64b5` Doku-Split 08-23), Remote **ausschließlich** `gitea.emsenhuber.net`,
|
||||
**ein** lokaler Klon. Eine History-Rewrite hätte hier also nichts gerettet, was nicht ohnehin nur
|
||||
auf der eigenen Infrastruktur liegt — und den Preis (alle Hashes neu) für nichts bezahlt.
|
||||
- 📊 **Warum die Rotation heute teuer ist — live gemessen 2026-08-23:** **26 der 27 WLAN-Clients des
|
||||
gesamten Netzes hängen auf `dirtyvader-iot`** (`dirtyvader-main` 1, MEDIA/UNTRUSTED/GUEST je 0).
|
||||
VLAN30 führt **41 Leases/Reservierungen** (5 aktuell `bound`, der Rest sind statische
|
||||
Reservierungen ausgeschalteter Geräte). Neben den ~26 Shellys hängen dort **P750W** (Drucker),
|
||||
**Airfryer** (`espressif`, `.180`), **SwitchBot floor-lamp**, **Twinkly** `.228`, **DTUBI** `.8`,
|
||||
**SONOFF-NSPanelPro** und ein **iPhone** `.177`. ⇒ Ein Passwortwechsel ist heute eine
|
||||
Batch-Aktion über ~26 Geräte, und **das ist genau die Rechnung, die TP17.1 verkleinert.**
|
||||
- 🔧 **Zwei Umsetzungshinweise fürs spätere Rotations-Paket:**
|
||||
**(a)** `mcp/shelly/migrate.py` hat **kein** Rotate-Kommando (nur `migrate`/`deanchor`/`auth`/
|
||||
`table`) — es bräuchte eine kleine Variante über denselben `set_sta`-Pfad.
|
||||
**(b) Ein Flag-Day ist vermeidbar:** RouterOS 7 kann in `/interface wifi access-list`
|
||||
**Passphrase-Overrides je MAC**. Also neuer PSK aufs Profil, Altgeräte übergangsweise per MAC mit
|
||||
dem alten weiter, danach die Liste leeren. 💡 Nebeneffekt: der TP25-Befund „keine `access-list`"
|
||||
bekäme damit endlich einen Zweck — und seit dem 08-23 gibt es die ComplianceRule
|
||||
`wifi-access-list`, die Einträge dort auch sichtbar macht.
|
||||
- **Mitzuziehen bei der Rotation** (legitime, gitignorete Ablagen desselben Werts):
|
||||
`~/.secrets/credentials.env` (+ `.bak-20260808`), `routeros/.secrets/wlan-psks.env`,
|
||||
`mcp/shelly/.env`.
|
||||
- **TP14.4 —** CF-Access-Service-Token rotieren.
|
||||
- ~~**Doku-Aufräumen** (`docs/doku-cleanup-session.md`)~~ ✅ **abgeschlossen 2026-08-23.** Punkte A–D
|
||||
(08-16), E (08-18/19) und **F — der Split** (08-23) sind durch: abgeschlossene TPs liegen jetzt in
|
||||
|
||||
Reference in New Issue
Block a user