Wake on LAN per CGI-Script aus dem Webmenu der FBF

Hi!

Man jann eigentlich fast das komplette Script in die debug.cfg schreiben außer das #!/bin/sh und dann müsste das funktionieren. Sonst muss man halt ein Inmage bauen was zu umständlich ist. Einfach alles in die debug.conf rein würd ich sagen.

Gruß

Maruu
 
hmm, wie mach ich das am besten mit der debug.cfg? soll ich die alte debug.cfg rauskopieren und dann das neue skript von hand einfügen oder geht das garnicht so ohne weiteres und ich sollte einfach das ganze skript mittels vi "von hand" in die debug.cfg schreiben? ich hab ein bisschen schiss vor vi, nich dass ich mir damit die box zerschieße...
ach ja, aber ne möglichkeit das wol-skript (wol.sh) und etherwake permanent auf der box zu belassen (in den flash zu schreiben) gibt es so nicht, oder? weil es ja schon ein bisschen doof is, die 2 dateien jedesmal von nem ftp-server im internet zu ziehen, vorallem für die leute die keinen eigenen server haben!

schreibt mal was ihr so denkt, könnt ja auch mal ne beispiel-debug.cfg anhängen :wink:

vlg martian

Öhh, EDIT:
Wieso ist das denn eigentlich so schwer das in ein Fake-FW-Image zu packen? Könnte das nicht ein Experte hier für uns mal eben schnell erledigen :p
 
urgs, wohl wieder grad kein experte hier zum antworten... wär schön wenn sich doch noch jemand findet, weil dann wär der WOL-Mod ja komplett und dieser Thread könnte geschlossen werden... :?
 
Hi
Also ich hab jetz etherwake auf der Box am laufen, das html-verzeichnis umgebogen so dass ich ein eigenes shellscript eingeben konnte und ich kann auch schon wunderbar vom lappi aus über http://fritz.box/ meinen PC anschalten - aber nu müsste das noch von außen gehen.
ich würde ungern das komplette webinterface nach außen öffnen. Ich habe mir drei sachen überlegt:

1. entweder eine zweite telnetd-instanz, die auf einem anderen port lauscht und als shell ein eigenens schellscript nimmt (geht das überhaupt?), wo man nur ein PW eingeben und den Rechner wählen kann, oder
2. eine zweite websrv-Instanz die nur mein wake-script bedient (ist das speichermäßig möglich und sinnvoll?) - denn ich nehme nicht ann dass der voehanden webserver zugangsjkomtrollen ala htacess bietet, oder?
3. den PC über einen Telefonanruf starten lassen, also auf eine bestimmte nummernfolge reagieren (ich weiß nicht ob das überhaupt geht..)

Nunja - mehr fällt mir erstmal nicht ein, ohne das komplette webinterface zu öffnen. Wäre lieb wenn mir mal einer sagt ob meine ideen machbar und sinnvoll sind.
Danke & Gruß, Peter
 
@martian: Mit Putty als Telnet- bzw. SSH-Client kann man Änderungen an der debug.cfg auch per "Copy & Paste" machen.
 
@MaZderMind: Da es auf der Loginseite ja auch den Button "Passwort vergessen" (sinngemäß) gibt, über den Du zwar nicht das Passwort ändern, wohl aber die Box zurücksetzen kannst, ist das Öffnen des kompletten Webinterfaces nach außen absolut fahrlässig.

Der 3. Punkt ist möglich und wird genau so von mir praktiziert! Dazu mußt Du jedoch die Firmware modifizieren (wird auch alles hier im Board beschrieben, ich habe den mod0.57 drauf).

Die anderen beiden Punkte kann ich Dir leider nicht beantworten...
 
Hi

Ich hab ne Lösung wie man IPZugangsberechtugung umsetzen kann.
Jeglicher aufruf auf das Webinterface käuft ja über das webcm-Binary, welches auch den Login etc. verwaltet. Nachdem man den HTML-Pfad wie oben beschrieben umgebogen hat damit man auf das cgi-bin-Verzeichnis schreibrechte hat, kann man einfach webcm z.B. in webcm.org umbenennen. Nun ein Shellscript namens webcm ins cgi-bin packen. Im Script kann dann die Umgebungsvariable ${REMOTE_ADDR} mittels sed ausgewertet werden, ob sie denn auch mit 192.168.178 beginnt. Tut sie das, wird das originale webcm aufgerufen, ansonsten kann man eine Fehlermeldung ausgeben. So wird selbst due Loginseite abgeschirmt und nur eigene cgi-binaries wie das wake-Script können aufgerufen werden.
Bei mir klappt es - ich komme per http://fritz.box/ rein, nicht aber per DynDNS-Account. Das Wake-Script geht beidemale.

Gruß, Peter
 
prima, da kommt ja wieder etwas leben in die überlegungen hier :roll:
hmm, wichard könntest du zum wake-per-telefon mal ein paar links hier reinstellen evt? und wäre das auch mit einer aktuellen FW (bei meiner FBF Wlan der .67) möglich, ohne auf die alte mod-FW zurückzugreifen?
außerdem wäre es toll wenn das thema fake-fw-image basteln nochmal aufgegriffen wird, weil damit werden mods leicht einspielbar für jedermann und auch im falle eines reboots wäre keine aufwendige neuinstallation/einspielen der mods/skript notwendig :!:
 
Hi
Zitat aus dem anfang des Thereads (1. Seite):
Es gibt im mod.57 ein Script das heisst callmonitor.sh. Das kann man so configurieren, dass die Box beim Anruf auf eine betsimmte Nummer ein etherwake absetzt. Damit kannst du per Telefonanruf einen Rechner aufwecken.

Okay.. Also meine debug.cfg hängt an.
Sie richtet selbstständig den Telnet-Server ein, Lenkt die Syslog-Ausgaben an mich um (zwecks Anrufmonitoring mit jFritz), lenkt den Webserver so um, dass man unter /var/html/cgi-bin eingene Scripte platzieren kann, erstellt in /var/html/wake ein shellscript welches die WOL-Maske bietet (s. unten) und wendet den webcm-Mod an (s. oben), um Zugang auf das Webinterface nur für IPs unterhalb von 192.168.178.* zu erlauben. Nur das Automatische öffnen eines Ports in der ar7.cfg hab ich noch nicht hinbekommen.
Zum WOL-Mod: Das Webinterface implementiert eine /einfache/ Passwortsperre, damit nicht jeder idiot deinen Rechner hochfahren kann. Sicher ist es jedoch nicht wirklich, das das Passowort im Klartext in derAdresszeile übertragen wird. Was anderes ist mir nicht eingefallen... Es kann beliebig viele PCs mit verschiedenen MACs verwalten und bietet die PCs in einer Dropdownliste zur Auswahl an.

Zum Packen eines Pseudo-Images brauchst du Gnu-Tar 1.12 für DOS, vermutlich musst du die --old-archive-Option anwenden.
Wenn ich es schaffe ein Pseudo-Image zu basteln werde ich zwei getrennte Mods draus bauen (WOL und webcm) und hier im Forum veröffentlichen. Kann aber noch etwas dauern...

Was denkst du macht mehr Sinn? Die Mods in die debug.cfg reinzuschreiben (Mods müssebn nur einmal installiert werden) oder die Mods direkt ihre Files schreiben zu lassen (dann müssen sie aber nach jedem Reboot neu installiert werden...

Happy Modding,
Gruß, Peter

[edit]
In der debug.cfg sind alle Privaten Daten ersetzt worden. Such nach !!! um die stellen zu finden, in die du deine eigenen Daten einsetzen musst.

[edit]
Das zum Tar stimmt nicht. http://www.karlsruhe.linux.de/downloads/fbox-kalug-20041129.pdf sagt:
Updates sind tar-Dateien. müssen wegen busybox-Fehler auch mit altem busybox-tar gepackt werden
Ich nehme an, damit ist das tar in der originalen busybox-version gemeint. Also wirds mit dem Packen ohne linux wohl nix.. mal sehen - vllt bring ich die busybox ja unter knoppix zum laufen..
 

Anhänge

  • debug.cfg.txt
    2.6 KB · Aufrufe: 84
Also, zu dem was sinnvoller ist:
Die debug.cfg zu verändern halte ich für nicht soo gut, weil dann auch das eventuelle deinstallieren schwer wird. Lieber 2 separate fake-fw-images zum einspielen nach jedem restart, das dauert ja nicht so lange. Aber wie könnte man dann in dem Fake-FW-Image seine Nutzerbezogenen Daten eintragen? Also MAC Adresse etc? Kann man das alte Busybox-Tar wenns erstellt ist vll mit Winrar oder sowas öffnen und dann die darin enthaltenen Beispiel-Dateien entpacken, anpassen und wieder einpacken? Oder verändert Winrar dann das Format, so dass die Images nicht mehr aufgespielt werden können?

Und ich hab auf meinem Rechner auchn Linux laufen, also wenn ihr mir sagt was ich tun muss um ein busybox tar zu erstellen könnte ich das auch mal versuchen... :p
 
Hallo martian,

das "Deinstallieren" der Einträge aus der debug.cfg ist überhaupt kein Problem: Mit dem nvi die debug.cfg öffnen, die entsprechende Zeile löschen, fertig. Oder gleich die ganze debug.cfg löschen mittels
echo > /var/flash/debug.cfg
Waum gibt es eigentlich im Forum kein "tab completion" für diese Dateinamen und Verzeichnisse? ;)

Daher halte ich persönlich eine "Installation" über die debug.cfg für einfacher, da dann nicht nach jedem Neustart "irgendwas" gemacht werden muß, sondern es einfach läuft.

Zum "neuen" mod steht eigentlich alles in diesem Thread; was es mit den Mods auf sich hat, steht im berühmten Thread 6666.

Viel Spaß und Erfolg beim lesen und ausprobieren!
 
Hi
Also ich hab mir jetzt erfolgreich eine Busybox unter Knoppix kompiliert und damit ein Tarerstellt das dei FBF versteht. (Für mich, der Linux erst seit knapp drei Wochen kennt - ein Wunder).
@martian: Lad dier hier die aktuellen Busybox-Sourcen runtern, entpack sie und füre das makefile aus. Danach hast du im selben Verzeichnis eine busybox-Binary die du aus der Konsole dann z.B. mit busybox tar -cf mytar.tar * auftufen kannst, um einen entsprechenden tarball zu erstellen.

Zum eingeben der Daten hab ich mir folgendes gedacht:
Beim ersten Aufruf des wake-Scriptes wird geguckt ob die Settings bereits gesichert sind. Wenn nein wird eine Eingabemaske angezeigt, wo man alles eingeben kann. Beim speichern würden die Werte in die debug.cfg eingetragen, somit wären sie beim nächsten Reboot vorhanden.

Dazu zwei Fragen:
1. Wie kann ich die Werte so in der debug.cfg ablegen, dass sie nach einem reboot von wake-script gelesen werden können
2. Wie kann ich die Variablen im wkae-Script so setzen, dass sie beim zweiten aufruf des Scriptes immernoch vorhanden sind.
export TESTVAR=Wert brachte garnix.

Danke & Gruß, Peter

PS. Da merkt man wieder den Linux-Neuling :D
 
Hmm, sorry ich pack das nicht...
Aber heute ist meine neue FBF 7050 gekommen mit der ich jetzt mal etwas rumspielen werde 8)
Vielleicht kann Olistudent ja das verpacken in die Fake-FW übernehmen, ist ja alles da jetzt :wink:
 
Ah, es geht um diesen Thread?
Was genau soll den das Update können?

MfG Oliver
 
Oh, danke für dein Interesse: Also, wir versuchen hier ein WOL-Mod zu bauen (der auch schon wunderbar funktioniert...), die Krönung wäre nun ein passendes Fake-FW-Image, welches nachdem es eingespielt wurde eine Eingabemöglichkeit zur Eingabe (s)einer MAC-Adresse anbietet und diese dann (wenn möglich permanent, sonst eben temporär in "/var") speichert.
Beim Aufruf einer URL (ideal ist http://fritz.box/wol.html) soll dann diese MAC-Adresse auswählbar sein und mittels etherwake ein WOL-Paket abgesetzt werden können.

In dem Fake-Image müssten also das skript wol.sh und etherwake enthalten sein. Dass würde das einspielen drastisch erleichtern, da bei Usern die öfters mal neustarten wollen/müssen das manuelle einspielen mittels wget etc unnötig lange dauert...

Wenns noch Fragen gibt gerne, ansonsten lies dich schnell durch diesen Thread, da liegen auch ein paar Files.
Vielen Dank schonmal im voraus, dann können wir diesen Thread schließen & vielleicht gibt uns ein Moderator ein "Sticky", so dass alle davon profitieren können :roll:
 
Okay, ich schau mal was sich machen lässt...

MfG Oliver
 
Hi
@martian Also dir ist schon klar das der quasi fertige WOl-Mod schon hier in bei mir liegt? Das einzige was mir noch fehlt ist eine Möglichkeit die Portfreigabe auf die Box zu automatisieren. So wie ich das sehe geht das bisher nur per telnet und nvi.
Es sollte mit ar7cfgctl gehen, leider hab ich keinerlei doku dazu, avm weigert sich Informationen dazu freizugeben und was reverse-engeneering /analyse des binaries angeht, komme ich nicht wirklich weiter.
Der zweite Weg wäre wohl per POST-Rwquest auf das webcm-Binary zu fahren, aber ich weiß nicht wie ich solch einen Request selbst abzusetzen.

Ich müsste "einfach" mit echo Daten an einen bestimmten Port/IP Senden können - hat jemand ne Idee?

Gruß, Peter
 
Hast du dir mal die callmonitor.out angeschaut?
Code:
echo -e "$MESSAGE\0\c" | nc -w 2 "$IP" "$PORT"
MfG Oliver
 
Hi
der nc-Befehl ist in der Standardfirmware nicht enthalten. Ich habe es mittlerweile jedoch geschafft die Weboberfläche (webcm) aus einem Shellscript heraus anzusteuern. Weiß jetzt nur noch nicht so genau wie ich Daten auf den stdin (was beim webcm post-daten entsprechen würden) in das binary zu pumpen.
Wenn das ginge, könnte ich die Box dazu veranlassen sich selöbst im webcm zu authentifizieren und dann per script ports Freigeben.
Wie unterscheidet die Box eigentlich angemeldet / nicht-angemeldet? Cookies sinds net, mitgeschleifte Variablen sinds net . läuft das IP-Basiert ab?

Ich nehme an für avm-Tools wie ar7cfgctl oder websrv gibt es kein Sourcen?

Gruß, Peter
 
MaZderMind schrieb:
Weiß jetzt nur noch nicht so genau wie ich Daten auf den stdin (was beim webcm post-daten entsprechen würden) in das binary zu pumpen.
Das Folgende hat bei mir gerade funktioniert:
Code:
export REQUEST_METHOD="POST"
export REMOTE_ADDR="127.0.0.1"
export CONTENT_TYPE="application/x-www-form-urlencoded"

#POST_DATA="login:command/password=test"
POST_DATA="box:settings/expertmode/activated=1"
export CONTENT_LENGTH=${#POST_DATA}

echo -n "$POST_DATA" | /usr/www/html/cgi-bin/webcm
(Du musst natürlich auf die richtige Kodierung der POST-Daten achten.)
Wie unterscheidet die Box eigentlich angemeldet / nicht-angemeldet?
Ich glaube, das läuft IP-basiert; im Beispiel oben musste ich das Passwort in einem eigenen Request vorausschicken, im gleichen wie das eigentliche Kommando ging's nicht. Sobald ich die REMOTE_ADDR geändert hatte, musste ich mich erneut authentifizieren.
 
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.