TLS-Gate v3.16.0: NetBox-ZugÀnge im Web, Buchen im Web, Befunde aus dem Live-Test

Von: Branko → OZMAI, Crew
Stand: 12. Oktober 2026
Typ: EXTERNAL_SOURCE (Inbox-Regel §3, keine automatische Geltung, kein Brain-Status)
Charakter: NACHTRAG zu 2026-10-11_TLS-GATE-NETBOX-SCHRITT-4-GERAETE-ZERTIFIKATE-NACHTRAG_BRANKO.md. Ersetzt dort eine Aussage: Schritt 4 (84a6925/5f8dae9) ist nicht mehr ungetaggt, er gehört zu v3.16.0. Sonst ergÀnzt dieser Eintrag nur.
Quelle: Repo TLS-Gate-Mock-Pipeline, Tag v3.16.0 = b9a33fa (seit v3.15.0/8b05cba: 19 Commits). Dazu 4dbe747 (nur Test, nach dem Tag). Live-Befunde: docs/HANDOUT_NETBOX_LIVETEST.md (Code-Stand db015b8).
Belege: VM am 12.10. aus b9a33fa neu gebaut (docker_vm/build.sh, app/BUILD = b9a33fa
, dirty=0), ozm01–03 mit instance.sh angeglichen: run 91, p3 48, p4 54, p5 31, p6 22, p7 53, p8 28, p9 4, alle grĂŒn. Lokal: test_netbox 79, test_netbox_ui 44, test_katalog 188, test_bookings 80, test_dashboard_tiles 29, test_device_cert 42 (siehe §5). Die ĂŒbrigen lokalen Suiten liefen fĂŒr diesen Eintrag nicht.

Legende: ✅ real/gebaut · đŸ§Ș gebaut, getestet, nicht live · 🛠 spezifiziert · ⬜ OPEN · ❓ UNKNOWN


1. Live-Test gegen seeds.crumbforest.io ✅ (Aussage Branko, Werte nicht im Repo)

Am 11.10. lief der Connector (Schritt 1–3) gegen die Crumbforest-NetBox. Beim zweiten Anlauf am 12.10. hakte es an drei Stellen, keine davon ein Fehler im Connector:

# Befund Ursache
1 HTTP 403 
 Invalid token Der Token war ungĂŒltig. Ein weiterer Token hatte Schreibrechte und wurde durch einen nur lesenden ersetzt.
2 HTTP 400 
 tenant: Select a valid choice Der Tenant ist ein eigenes Objekt (Tenancy → Tenants) und nicht der NetBox-Benutzername.
3 Die Meldung zeigte nur den HTTP-Status Das Gate gab den Text von NetBox nicht weiter, behoben (§2).

Falsch angelegte ZugĂ€nge mussten dreimal per SQL gelöscht werden, jeweils mit Grund im Audit. Brankos Satz dazu (12.10.): „warum bauen wir das nicht so aus wie SOAP-ZugĂ€nge“. Daraus entstand §2.

Die wichtigste Erkenntnis: ❓ Im RZ nutzen wir in NetBox keine Tenants. Der Connector filtert aber zwingend auf einen Tenant (Entscheidung N2, Grundlage von Regel b). Bevor die RZ-NetBox gespiegelt werden kann, muss das entschieden werden (§6).

2. NetBox-ZugĂ€nge im Web đŸ§Ș (netbox.php, Entscheidung N9)

  • Funktionen: Zugang anlegen, Token tauschen, an/aus, Verbindung testen, löschen, Kontobindung an/aus.
  • Token: Er wird als Passwortfeld eingegeben und nie zurĂŒck ins HTML geschrieben.
  • Audit: Jede Aktion steht als web.netbox_cred_<op> im Audit, mit dem Ergebnis ok, denied (mit Grund) oder fail.
  • Was bleibt: Der Sync lĂ€uft weiter nur auf der Node, weil der Abruf nach außen geht.
  • Rechte:
  • group_admin verwaltet nur die eigene Gruppe und setzt nie die Kontobindung. ZugĂ€nge mit Kontobindung darf er nur testen und an/aus schalten.
  • Die Kontobindung schaltet nur admin.
  • Ein Zugang einer fremden Gruppe gilt als „Unbekannter Zugang“.
  • Löschen und Kontobindung brauchen ein Pflicht-HĂ€kchen.
  • Verbindung testen (NetBoxClient::probe): Liest die Version, die GerĂ€teanzahl des Tenants und je eine Zeile Interfaces und IP-Adressen und schreibt nichts. Nur HTTP 403 gilt als fehlendes Recht. Andere Fehler zeigen den Text von NetBox.
  • CLI:
  • zugang delete löscht nur, wenn nichts daran hĂ€ngt (keine gespiegelten GerĂ€te, keine Ereignisse, keine Zertifikate). Sonst bleibt nur das Abschalten.
  • zugang konto-bindung 
 an|aus nennt die laufenden Buchungen, deren Anker auf GerĂ€te dieses Zugangs zeigen.
  • Der Tenant bleibt unverĂ€nderlich. Ein anderer Tenant heißt neuer Zugang.
  • Fehlertext von NetBox: HTML wird ohne Tags gezeigt, höchstens 200 Zeichen. Ein zurĂŒckgespiegelter Token wird durch *** ersetzt.
  • Beleg: p8 28 prĂŒft „Verbindung testen“ im Web gegen die Fake-NetBox in der VM. Gegen seeds lief die Web-Seite im Repo nicht. Ob Branko sie dort benutzt hat, ist hier nicht belegt.

3. Buchen und Beenden im Web đŸ§Ș

Brankos Anlass (12.10.): Das Dashboard zeigte Zuweisung, VerfĂŒgbarkeit und Preis, aber man konnte nichts buchen.

  • Katalog (nur admin):
  • Der Admin bucht fĂŒr eine Person der eigenen Gruppe. Zur Auswahl stehen nur freigegebene, verfĂŒgbare, aktive Paare.
  • Die Buchung landet im Zustand offered. Aktivieren muss der Inhaber, wie bisher.
  • Darunter stehen die laufenden Buchungen der Gruppe als Baum, mit „beenden“ und Pflicht-HĂ€kchen.
  • Ein Grundprodukt lĂ€sst sich erst beenden, wenn darunter keine ZusĂ€tze mehr laufen.
  • Dashboard:
  • Man bucht eigene ZusĂ€tze unter eigenen laufenden Grundprodukten und kann eigene ZusĂ€tze beenden.
  • Kein Preis aus dem Formular: Der Preis kommt aus der Freigabe. Preis und Anker im POST werden ignoriert.
  • user und group_admin sehen keine Kategorien der Achse access.
  • Bookings::end: readonly beendet nichts. Aus dem Dashboard lassen sich nur ZusĂ€tze beenden. Die CLI ist unverĂ€ndert.

4. Schritt 4 (GerÀte-Zertifikate) jetzt im Tag

Inhaltlich gilt der VorgĂ€nger-Eintrag weiter, nur ist der Stand jetzt getaggt. Weiter offen bleibt ❓ der Ort der Node-CA. Sie ist nicht im Frontend native_php, auf ozm01–03 kann also weiterhin nichts ausgestellt werden (p9 prĂŒft nur die Tabellen).

5. Befund beim Neubau đŸ§Ș

test_device_cert war unter LANG=de_DE.UTF-8 mit 41 von 42 rot: Die Laufzeit wurde mit −20738 Tagen berechnet. Die Ursache lag im Test, nicht im Produkt. BSD-date -j -f "%b 
" las das Ablaufdatum von openssl unter der deutschen Locale nicht und rechnete deshalb mit 0. Die Behebung ist LC_ALL=C (4dbe747), danach 42 von 42, auch unter LANG=C. Das ist dieselbe Fehlerklasse wie p4 in v3.1.0. Das Zertifikat selbst hatte die ganze Zeit 90 Tage (die ĂŒbrigen PrĂŒfungen und openssl verify waren grĂŒn).

6. Offen

  • ❓ RZ ohne Tenants: Legt das RZ einen Tenant an (z. B. ozm) und hĂ€ngt die GerĂ€te daran, oder filtert der Connector anders (Site, Tag)? Das Zweite wĂŒrde N2 und damit Regel b Ă€ndern. Diese Entscheidung liegt bei Branko und der Crew.
  • ❓ NetBox-Version im RZ. Davon hĂ€ngt das Token-Format ab (ab 4.5 nbt_ + Bearer, das Gate unterscheidet es selbst).
  • ⬜ VMs (virtualization/
) werden nicht gespiegelt (N7). Die 2 VMs von ozm in seeds fehlen im Spiegel.
  • ⬜ Ort und Benutzer des Sync-Timers auf der Node.
  • ❓ Ort der Node-CA (§4).
  • ⬜ Fragen aus Brankos NetBox-Test am 12.10.: Branko hat dazu Fragen bekommen. Sie stehen nicht in diesem Eintrag und kommen als eigener Nachtrag.