TLS-Gate v3.6.0: Modulkette als Regel mit Ende-zu-Ende-Test (nicht verdrahtet), Checkliste 2FA/Container
Von: Branko â OZMAI
Stand: 5. Oktober 2026
Typ: EXTERNAL_SOURCE (Inbox-Regel §3 â keine automatische Geltung, kein Brain-Status)
Charakter: STAND + NACHTRAG. Setzt 2026-10-05_TLS-GATE-V3-4-0-BIS-V3-5-0-MFA-MODUS-JE-GRUPPE-UND-PRODUKT-STAMMDATEN_BRANKO.md fort. Ersetzt eine Aussage dieser VorgĂ€ngerdatei: dort steht unter âOffene Punkteâ, die Verkettung der Module sei ânicht abgebildet und nicht getestetâ. Seit v3.6.0 gibt es dafĂŒr eine Regel und einen Test, aber nur als Auswertung, in keiner Seite verdrahtet (siehe §2). Alles andere der VorgĂ€ngerdatei gilt unverĂ€ndert.
Quelle: Repo TLS-Gate-Mock-Pipeline (git.crumbforest.org). Tag v3.6.0 = Commit 88e18fa (VorgÀnger v3.5.0 = 7cc3f2e). Dokument: 5c99a2a.
Belege: tests/test_chain.sh (43), alle Host-Suiten grĂŒn; die VM-Suiten wurden fĂŒr v3.6.0 nicht neu gestartet (siehe §4).
Legende: â real/gebaut · đ§Ș gebaut, getestet, nicht live · đ spezifiziert · ⏠OPEN · â UNKNOWN
Keine Zugangsdaten, keine Kunden-Domains, keine Reseller-IDs.
1. Anlass
Branko gab fĂŒr die Modulkette #login â #crew â #schlĂŒssel â #CA â #hosting â #SSL an, dass âgenau dasâ bisher nicht getestet wurde (jedes Glied einzeln ja, die Verkettung nein), und zwei Vorgaben: (a) sofern nach dem ersten Zugang eine neue Anlage möglich ist, und (b) wer nicht modulberechtigt ist und zugreift, dessen Fehlversuch wird im Audit geloggt. Die Definitionen, was ein Glied erfĂŒllt, blieben unbeantwortet; sie sind unten als vorlĂ€ufig gekennzeichnet.
2. Was gebaut ist
- đ§Ș
src/Modules/Chain.php: reine Auswertung je Gruppe aus den Stammdaten (status,access,next,check,requireModule). Kein eigener Zustand, kein Schema-Wechsel. - đ§Ș Regel 1, keine Sackgasse: Der Zugang zu einem Glied verlangt nur, dass die Glieder davor nicht fehlen, nicht dass es selbst erfĂŒllt ist. Damit lĂ€sst sich das nĂ€chste Glied nach dem ersten Zugang immer selbst anlegen. Beispiel: fehlt
schluessel, ist das Modul erreichbar (zum Anlegen),hostingundsslbleiben zu. - đ§Ș Regel 2, Fehlversuch im Audit: Abgelehnte Aufrufe schreiben
module.denied/deniedmitreason(vorgaenger_fehlt,keine_freigabe,unbekanntes_modul) undblocked_by. Erlaubte Aufrufe schreiben nichts. Keine Zugangsdaten im Eintrag (geprĂŒft). - đ§Ș Glied
ca=open: Platzhalter, blockiert nicht und wird so ausgewiesen. Grund: Die CA ist heute nur eine Test-CA der Node (bin/node_ca.php), kein Objekt je Gruppe. - â
Bewusst nicht eingebaut:
check()hĂ€ngt in keiner Seite. Sonst wĂ€re die heutige SSL-Konsole fĂŒr alle Gruppen ohne Freigabe (group_products) sofort gesperrt. Verhalten der Anwendung ist unverĂ€ndert. - â
Dokument (DOC):
docs/CHECKLISTE_2FA_CONTAINER_ZUGANG.md(5c99a2a): Anmeldung, Audit-Meldungen, MFA-Modus je Gruppe, Support-Weg, ssh (Port 2222, nur SchlĂŒssel),last_login. Anlass: Auf die Frage nach einer 2FA-Container-Checkliste fand die RAG-Antwort nur die allgemeineSECURITY_CHECKLIST.mdund sagte selbst, dass â2FA-Containerâ in den Quellen nicht vorkommt. Die Liste gab es tatsĂ€chlich noch nicht.
3. VorlÀufige Festlegungen (NICHT von der Crew bestÀtigt)
| Glied | erfĂŒllt, wenn | Quelle der Festlegung |
|---|---|---|
| login | Gruppe aktiv und darin schon eine erfolgreiche Anmeldung (users.last_login) |
Annahme des Entwicklers |
| crew | mindestens ein aktives Konto (bewusst niedrig) | Annahme |
| schluessel | mindestens ein aktiver SOAP-Zugang | Annahme: das einzige schlĂŒsselartige Objekt je Gruppe in der DB |
| ca | open |
Annahme |
| hosting | aktive, verfĂŒgbare Freigabe der Art shared/bare/vm/ha (available_from erreicht) |
Annahme |
| ssl | aktive, verfĂŒgbare Freigabe der Art ssl | Annahme |
Die drei RĂŒckfragen dazu (was âschlĂŒsselâ und âCAâ bedeuten, was bei einer LĂŒcke geschehen soll) wurden gestellt und nicht beantwortet; die Empfehlungen des Entwicklers wurden gesetzt und als solche gekennzeichnet (Kopf von Chain.php, Changelog, Entwurf).
4. Belegt, und was nicht
- đ§Ș
test_chain.sh43: Ende-zu-Ende von der leeren Gruppe bis zum freigegebenen SSL, mit der 30-Minuten-Verzögerung ĂŒberavailable_from, deaktivierter Freigabe, abgeschaltetem Produkt, vertauschten Produktarten, getrennten Gruppen, unbekanntem Modul, deaktivierter Gruppe. Audit-ZĂ€hlung: jede Ablehnung steht im Audit (15 von 15). - đ§Ș Gegenprobe: drei absichtlich kaputte Fassungen fĂ€rben den Test rot (ohne Audit: 3 rot; mit Sackgasse: 8 rot;
openblockiert: 12 rot), die Originalfassung ist grĂŒn. - â VM-Suiten nicht neu gelaufen (
run,p3âp6): Die neue Datei wird von keiner Seite geladen, das Risiko wurde als gering eingeschĂ€tzt, aber nicht geprĂŒft. - â Kein Test ĂŒber das Web:
requireModule()(Sitzung, HTTP 403) ist nicht ausgefĂŒhrt worden, weil keine Seite sie aufruft. Getestet istcheck()mit nachgestellter Sitzung (tg_uid,tg_gid).
5. Einordnung als PrĂŒffall (Branko, nicht OZMAI-Geltung)
Die Berechtigung leitet sich aus Stammdaten ab (Freigabe, Konto, Zugang), nicht aus einem frĂŒheren erfolgreichen Zugriff, und check() ist lesend: Eine erlaubte PrĂŒfung erzeugt keine stĂ€rkere Bindung, eine abgelehnte hinterlĂ€sst nur einen Audit-Eintrag. Das passt zum Kernsatz des IdentitĂ€ts-PrĂŒffalls (âEine erfolgreiche PrĂŒfung einer Bindung darf nicht stillschweigend eine stĂ€rkere Bindung erzeugenâ) und zu âWiederholung â BestĂ€tigungâ: wiederholte Ablehnungen bestĂ€tigen nichts, sie sind Belege. Ob das als PrĂŒffall taugt, entscheidet OZMAI/Alex.
6. Offene Punkte
- ⏠SSL hÀngt an einer Hosting-Freigabe. Die Kette verlangt alle Glieder davor, also auch
hosting. Das widerspricht âSSL nur beim RZ, kein SSL-Reseller als Kundentypâ, wenn ein reiner SSL-Kunde kein Hosting hat. Entscheidung offen (Kette lockern, SSL aus der Kette nehmen oder RZ-Gruppen ausnehmen). - ⏠Altbestand: Vor einem Einbau brauchen bestehende Gruppen Freigaben (
group_products), sonst sperrt die Kette die heutige SSL-Konsole. Einbuchen offen. - ⏠Bedeutung von
schluesselundca(SOAP-Zugang, ssh-SchlĂŒssel, Test-CA, Bestellung mit Belegnode_ca): nicht entschieden. Ein ssh-SchlĂŒssel ist nur als Datei im Container-Dateisystem vorhanden, nicht in der DB; die Anwendung kann ihn heute nicht prĂŒfen. - ⏠Verhalten bei LĂŒcke im Dashboard: sperren mit Hinweis oder ausblenden; Empfehlung des Entwicklers ist âsperren mit Hinweisâ, nicht bestĂ€tigt.
- ⏠Die ĂŒbrigen Punkte der VorgĂ€ngerdatei bleiben offen: Startpunkt der 30-Minuten-Regel, MFA-Modus fĂŒr
bare, Quelle fĂŒr Preis/Verbrauch, SOT-Vermerk, Registry-Handle,qrloginohne eigenen Test. - ⏠NetBox/Ansible (SOT-Vermerk des SchlĂŒssels eines GerĂ€ts) und das Verhalten offline sind weder modelliert noch getestet;
group_products.sot_refist nur ein Verweis, TLS-Gate schreibt nicht nach auĂen.