Fritzbox Config mit 2FA ersetzen

dsanders

Neuer User
Mitglied seit
6 Mai 2024
Beiträge
1
Punkte für Reaktionen
0
Punkte
1
Hallo, ich hoffe, dass hier jemand einen Rat für mich hat. (Bitte entschuldigen Sie mich, wenn ich einige falsche Annahmen mache oder etwas völlig dummes tue. Ich habe noch nie versucht, eine Fritzbox zu modifizieren, und ich lerne gerade erst etwas über SOAP.)

Ich versuche, den Prozess der Änderung der WAN-Schnittstellenkonfiguration (IP/Subnet/DNS) zu automatisieren, ohne mich manuell in die GUI einzuloggen. Bei meiner Arbeit müssen wir diese Konfigurationen auf jeder Kunden-Fritzbox aktualisieren, bevor wir die Box an den Kunden ausliefern, damit sie sich mit unserem Netzwerk verbinden können, und es wäre äußerst hilfreich, wenn ich diesen Prozess automatisieren könnte.

Ich glaube, der einfachste Weg dazu ist X_AVM-DE_SetConfigFile , aber ich weiß nicht, wie ich eine Datei mit SOAP oder dem tr-064-Protokoll an die Fritzbox senden kann.

Ich habe versucht, eine vorhandene Konfigurationsdatei mit X_AVM-DE_GetConfigFile herunterzuladen, aber ich werde jedes Mal von der 2FA gestoppt.

Da ich mich mit Python am besten auskenne, habe ich versucht, die Bibliothek FritzConnection zu verwenden. Ich kann den 2FA-Prozess starten (wenn alle Lichter auf der Fritzbox blinken) und ich kann ein Token erhalten, aber dann weiß ich nicht, wie ich dieses Token in dem Aufruf zum Abrufen der Konfigurationsdatei bereitstellen kann oder wie ich die Konfigurationsdatei herunterladen kann. Wenn ich außerdem eine Taste auf der Frtizbox drücke, um mich mit 2FA zu authentifizieren, wird der Prozess sofort angehalten. Ich weiß nicht, wie ich erfassen kann, dass ich die Taste gedrückt habe oder wie ich mit dem Authentifizierungsprozess fortfahren kann.

Ich gehe davon aus, dass ich beim Starten der 2FA einen eindeutigen Token erhalte, den ich dann in eine weitere Nachricht einfügen muss, zusammen mit der Aktion des Drückens der Fritzbox-Taste, die dann zu einem "authentifizierten" Zustand führt, in dem ich dann weitere Aktionen zum Herunter- oder Hochladen einer Konfigurationsdatei durchführen kann, aber ich verstehe nicht, wie das funktionieren soll.
Meine Idee war es, eine Beispielkonfigurationsdatei als Vorlage herunterzuladen und diese Datei dann für jeden neuen Kunden/jede neue Fritzbox zu aktualisieren und hochzuladen.

Hier ist ein Beispiel für den Code, den ich ausführe, und die Ausgabe. Ich kann den Prozess starten, ein Token erhalten und dann den Prozess sofort stoppen, wenn ich die Taste zur Authentifizierung drücke.

Python:
from fritzconnection import FritzConnection
import time

fc = FritzConnection(address="192.168.178.1", password="mypassword")
state = fc.call_action(service_name="X_AVM-DE_Auth1", action_name="GetState")
print(state)
start_2fa = fc.call_action(service_name='X_AVM-DE_Auth1', action_name='SetConfig', arguments={'NewAction': 'start'})
print(start_2fa)
state = fc.call_action(service_name="X_AVM-DE_Auth1", action_name="GetState") # get new state
print(state)
token = start_2fa.get("NewToken")
time.sleep(3) # press the button
state = fc.call_action(service_name="X_AVM-DE_Auth1", action_name="GetState")
print(state)

# Results:
{'NewState': 'stopped'} # Before start
{'NewState': 'waitingforauth', 'NewToken': '31d66b2c-1dd2-11b2-bbb7-a01f13c77306', 'NewMethods': 'button,dtmf;*12292'}  # Process started
{'NewState': 'waitingforauth'} # Before button press
{'NewState': 'stopped'} # After button press

Hat jemand einen Rat, was ich falsch mache oder wie ich meine Ziele am besten erreichen kann?

VD!
 

Zurzeit aktive Besucher

Neueste Beiträge

Statistik des Forums

Themen
245,002
Beiträge
2,222,471
Mitglieder
371,776
Neuestes Mitglied
Krystyna Böttcher
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.