[Gelöst] Zwei Faktor Authorisierung disabled als default?

vaxinf

Mitglied
Mitglied seit
17 Feb 2016
Beiträge
217
Punkte für Reaktionen
11
Punkte
18
Ich brauche die Firmware für eine FB7390, in der nach dem Werksreset die Zwei Faktor Authorisierung disabled ist.
In der Original-Version muss man im webinterface das Häkchen entfernen, um die Zwei Faktor Authorisierung abzuschalten (in ar7.cfg wird dann im boxusers Teil { two_factor_auth_enabled = no;} gesetzt.). Soweit ist es verstanden habe, kann man auch den Befehl "ctlmgr_ctl w boxusers settings/twofactor_auth_enabled 0" benutzen, wenn man interaktiv arbeitet.
Ich habe die Original-Firmware entpackt und gesehen, dass in der Firmware selbst der boxusers Teil von ar7.cfg nirgends vorkommt. Ich nehme deshalb an, dass ar7.cfg beim Start des webinterfaces angelegt und beschrieben wird.
Eine Voreinstellung bezüglich des Werts von two_factor_auth_enabled finde ich aber nirgends als lesbaren Text.
Hat jemand eine Idee, wie man die Voreinstellung ar7.cfg-Daten konfigurieren kann oder anders zu meiner gewünschten Konfiguration kommt???

Vielen Dank im Voraus für jegliche Tipps
Eberhard
 
Es sollte funktionieren, das einfach in der "Vorlage" der "ar7.cfg" irgendwo in "/etc/default..." zu ergänzen. Diese Datei enthält zunächst mal nur die Vorgaben, die von den Standardwerten abweichen. Man muß also keinen kompletten "boxusers"-Abschnitt dort eintragen, es sollte der eine, relevante Eintrag mit "two_factor_auth_enabled" ausreichen, damit auch nach den Werkseinstellungen direkt diese "gewählte" Einstellung wirksam ist.
 
Moins


Gedankenexperiment
(Was Konfigurationsdateien angeht)
Beim Rumstöbern mit "showshringbuf" ist mir mal aufgefallen, dass beim Einbinden von USB-Speicher darauf nach 2 Konfigurationsdateien gesucht wird.
Eine für TR-069 und Eine für die "normale" Konfiguration.
Hierfür wird aber wohl etwas mehr "Reverse Engineering" benötigt als ich das leisten kann ums nutzen zu können ;) .
...wenns überhaupt nutzbar ist.
 
Die über diese Dateien:
Code:
fritzboxconfig.import
provider_default_fritzboxconfig.import
provider_add_fritzboxconfig.import
konfigurierbaren Settings sind begrenzt und da gehören "boxusers"-Einstellungen m.E. nicht dazu - jedenfalls kann man auf diesem Wege (als "provider additive") auch keine User-Accounts zur Box hinzufügen (das ist von mir getestet - vermutlich/hoffentlich richtig).
 
Diese Datei enthält zunächst mal nur die Vorgaben, die von den Standardwerten abweichen. Man muß also keinen kompletten "boxusers"-Abschnitt dort eintragen, es sollte der eine, relevante Eintrag mit "two_factor_auth_enabled" ausreichen, damit auch nach den Werkseinstellungen direkt diese "gewählte" Einstellung wirksam ist.

Ich habe in der Datei filesystem/etc/default.Fritz_Box_7390/avm/ar7.cfg die Zeile
two_factor_auth_enabled = no;
vor dem // EOF eingefügt, die 2FA bleibt leider auf default "yes" in der gestarteten FB.

Das beste Ergebnis bisher ist das komplette fixe Ausschalten durch
.ctlmgr_ctl w boxusers settings/twofactor_auth_enabled 0
in /etc/init.d/rc.tail.sh .
Wenn der Befehl nur beim ersten Start nach einem Werksreset ausgeführt werden würde und dann später übersprungen werden würde, wäre die Sache perfekt. Gibt es da eine Variable, die vom system so gesetzt wird?

Eberhard
 
Zuletzt bearbeitet:
Was stimmt denn nun?
- two_factor_auth_enabled = no
oder
- twofactor_auth_enabled = 0
 
Beides!

im Befehl
ctlmgr_ctl w boxusers settings/twofactor_auth_enabled 0
dann steht im ar7.cfg
two_factor_auth_enabled = no;

Ist doch logisch...
 
Moinsen


Und die "default" Werte greifen erst nach: Werkseinstellungen laden
...ein schnöder Neustart reicht da nicht.
 
Und genau beim Laden der Werkseinstellungen ist die 2FA wieder aktiv und im Weg...

Ergänzung:
mit dem gepatchten ar7.cfg mit dem two_factor_auth_enabled = no; Eintrag
geht die FB in eine reboot-Schleife nach dem Werksreset.
 
Zuletzt bearbeitet:
Die Änderung in der "ar7.cfg" ist aber schon in einen "boxusers"-Abschnitt eingebettet, oder? Allerdings ist das Handling nicht bei allen Modellen wirklich identisch und ich weiß im Moment nicht sicher, ob die "ar7.cfg" aus "/var/default" (das ist nach "rc.conf" ein Symlink auf "/etc/default.Fritz_Box_7390") bei der aktuellen Version für die 7390 tatsächlich noch vom "ctlmgr" bei dessen Start (der sehr spät erfolgt im Vergleich zu anderen Schritten) geladen wird, wenn die "/var/flash/ar7.cfg" (dann immer noch) leer ist. Wobei man auch da natürlich aufpassen müßte, daß man die Datei für den richtigen OEM (oder für alle) ändert, denn diese Standardeinstellungen sind pro Branding einmal vorhanden und auch wenn die i.d.R. identisch sind, sind es doch verschiedene Dateien aus OS-Sicht.

Ansonsten kann man den Zustand "Werkseinstellungen" nur durch das Fehlen jeglicher Einstellungen beim Start "diagnostizieren" (das macht AVM mit einem "checkempty /var/flash/ar7.cfg", allerdings müssen erst mal die Device-Nodes dafür angelegt werden in "/var/flash") und da dann die AVM-Skripte umgehend mit dem Einrichten der Standardwerte beginnen (siehe "/etc/init.d/S08-tffs" - wobei die Entscheidung, ob Daten aus "provider_default" eingemischt werden, mit "CONFIG_PROV_DEFAULT" gesteuert wird, was bei den OEM-Einstellungen i.d.R. auf "n" gesetzt wird), müßte man schon dort den Umstand "verewigen" (z.B. durch eine zusätzliche Variable im Environment - "Recover_was_here" ist vielleicht nicht immer ausreichend, kann aber meistens auch als "Anzeige" dienen, weil sie vom Recovery-Programm und von "Werkseinstellungen" gesetzt wird), daß es keine Einstellungen gibt (bzw. gab beim Start).

Wenn man die 2FA also nur einmalig in diesem Zustand abstellen will, kann man vor der Ausführung von "ctlmgr_ctl" auch darauf testen ... ggf. reicht sogar schon die erwähnte Variable "Recover_was_here". Diese birgt halt nur die "Gefahr" (weil leere Einstellungen und die gesetzte Variable zwei unabhängige Faktoren sind), daß man unter bestimmten Umständen (z.B. wenn die Einstellungen über den Bootloader gelöscht werden, ohne "firmware_info" mit dem "recovered"-Zusatz zu versehen - wie es mein "build_tffs_image" machen könnte und wo dann der Aufrufer dafür zuständig wäre, den Zusatz in der "env"-Datei unterzubringen vor dem Erzeugen des TFFS-Images) ein solches Rücksetzen nicht mitbekommt.

Fazit:
Man kann es mit einem
Code:
[ -n "$Recover_was_here" ] && ctlmgr_ctl ...
versuchen, das muß dann aber in einem Init-File stehen, welches erst nach dem Start des "ctlmgr" aufgerufen wird und es gäbe dann immer noch Umgehungsmöglichkeiten ... auch wenn die beim "normalen Betrieb" nicht auftreten würden.
 
Die fb7390 scheint die Variable nicht zu kennen. Jedenfalls wird die Einstellung 2FA wieder gelöscht nach dem Neustart.

Wie steht es mit dem neustart counter, der wird wohl hochgezählt. Bekommt den Wert in einem Skript zu Gesicht?
 
Zuletzt bearbeitet:
Die fb7390 scheint die Variable nicht zu kennen. Jedenfalls wird die Einstellung 2FA wieder gelöscht nach dem Neustart.
Das ist ja mal eine unlogische Schlußfolgerung.

Wenn die Box die Variable gar nicht kennt, würde ja der "ctlmgr_ctl"-Aufruf auch gar nicht ausgeführt - immer unter der Annahme, Du hast den so eingebaut, wie ich das vorgeschlagen habe.

Da die 7390 aber auf genau diesem Weg auch ihren NAS-Speicher löscht beim Zurücksetzen auf die Werkseinstellungen (man braucht nur mal einen eigenen Blick in die "/etc/init.d/S15-filesys" zu werfen) und der vermutlich auch nicht bei jedem einzelnen Systemstart gelöscht wird, besteht doch eine viel höhere Wahrscheinlichkeit dafür, daß Du bei der Umsetzung irgendetwas falsch gemacht haben könntest, meinst Du nicht auch?

Gut, bei AVM wird die Variable als "${Recover_was_here}" (also mit geschweiften Klammern) benutzt ... das ist aber in diesem Falle nur eine Nebensächlichkeit, weil die Unterstriche im Namen definitiv erlaubt sind und dadurch auch keine Mehrdeutigkeit entsteht (wo der Name nun endet), der man mit den Klammern entgegenwirken müßte.

Hier aus dem Symptom (des fehlenden Erfolges) die Schlußfolgerung zu ziehen, das würde so gar nicht funktionieren, anstatt erst noch einmal alle eigenen Schritte zu überprüfen, ist schon ziemlich komisch.

Zumal die Frage nach dem Neustart-Counter irgendwie auch nicht so richtig einleuchtet ... vielleicht erklärst Du die Idee dahinter ja mal. Wie ermittelt man denn anhand eines streng aufsteigenden Zählers, ob der aktuelle Systemstart jetzt nach dem Zürücksetzen auf die Werkseinstellungen erfolgte (und die 2FA einmalig ausgeschaltet werden soll, was ja dann in der "ar7.cfg" gespeichert wird, bis zum Löschen oder bis der Benutzer das irgendwann mal übers GUI ändert) oder ob es sich um ein "normales" Reboot handelt?

Selbst mit einer (einfachen) Speicherung des letzten Zählerstands ist da ja noch nichts gewonnen ... die Idee dahinter würde mich wirklich interessieren.

EDIT: Die Existenz und den Wert von "Recover_was_here" kann man sich auch in den Support-Daten ansehen, wenn man keinen Shell-Zugriff hat.
 
Zuletzt bearbeitet:
Ich vermute, dass ich die Abfrage nicht richtig eingebaut habe.

Wenn man eine nur wenig modifizierte FW benutzt, ist es leider doch schwierig, Abläufe und Fehler zu lokalisieren.

### Zusammenführung Doppelpost by stoney ###

Problem gelöst.
Nach dem ich gecheckt habe, dass ich das korrekte Image verwendet habe, ging die 2FA wunschgemäß an- und wieder abzuschalten.
 
Zuletzt bearbeitet von einem Moderator:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.