Anleitung: SSH (Dropbear) und Etherwake auf der FRITZ!Box

Hallo Florian86,

wenn das deine komplette debug.cfg ist wird es wohl nicht funktionieren, da der USB-Stick zu diesem Zeitpunkt noch gar nicht gemountet ist.
Füge mal diese Warteschleife am Anfang der debug.cfg ein:
Code:
# # # # # Warten bis USB-Stick gemountet ist
max=5
i=0
while [ $i -lt $max ]; do
	if mount | grep " on /var/media/ftp/" > /dev/null; then
		break
        fi
        let i=$i+1
        sleep 10
done

USBSTICK=$(mount | grep /var/media/ftp/ | sed -e "s|^.*ftp/||g" -e "s/ .*$//")
#
# # # # # ENDE USB-Stick Warteschleife

Joe
 
Hallo,
Florian86 schrieb:
In der Binary (der Datei dropbearmulti) scheinen (falsche) Pfade (wie z.B. /usr/bin/ssh eincompiliert zu sein, welche sich ohne Modifikation der FritzBox ja auch nicht einfach einbinden lassen? = ein Mount/Drübermounten geht nur wenn ich die datei vorher erzeugen könnte oder? Und /usr/bin ist ja schreibgeschützt/readonly) ... wie gesagt durch einen Hex-Eingriff habe ich aber scheinbar eine ungültige Binary: Segmentation fault
Egal ob dropbear oder dropbearmulti:
ssh, scp, dropbearkey, dbclient sind alle Softlinks auf dropbear (Im selben Verzeichnis)
also:
/var/tmp/mkdblinks.sh schrieb:
PHP:
#! /bin/sh
ln -s dropbear ssh #(secureshell)
ln -s dropbear scp #(sicheres kopieren)
ln -s dropbear dropbearkey #(erstellen der keyfiles)
ln -s dropbear dbclient #(dieselbe Funktion wie ssh)
# Wenn dann noch die sftp-server Binary im selben Verzeichnis liegt klappt auch SFTP

hdwh

koy
 
Ist doch (fast) so konfiguriert. Nur müssen die auch in PATH gefunden werden.
 
Ist doch (fast) so konfiguriert. Nur müssen die auch in PATH gefunden werden.
Genau das kann ich unterschreiben, gehe aber auch davon aus dass das selbstverständlich ist.

Ohne Arme keine Kekse!


koy
 
Ist aber wohl eben nicht der Fall
 
Weiß nicht, ob jemand nun den Hinweis gegeben hat, aber saß gerade an meiner Compilier-Umgebung und habe etwas gelesen und mir einen *FACEPALM* gegeben :D

Ich habe doch ein UNTERVERZEICHNIS in /var/tmp erstellt (mods) und dort alles drinnen! ... In Freetz ist standard-mäßig (bei standalone + static) aber nat. "nur" /var/tmp angegeben!!! (Wenn man halt Ordnung halten will, wo es eigentlich eh egal wäre xD ... ich muss also nur wieder die debug.cfg so konfigurieren, dass die Sachen wieder in /var/tmp und eben nicht in /var/tmp/mods liegen und in der profile die Path auch wieder abändern auf /var/tmp statt /var/tmp/mods)

Die (allgemeine) PATH "stimmte" wie gesagt und der USB wird auch gemounted! Sonst funktionierte ja auch alles ^^ ... denke echt mal, dass es das dann auch war ... kann ich heute Abend aber erst Rückmelden! So oder so: Danke! :) ... Also wohl die "EINCOMPILIERTE PATH" -wie gedacht- doch noch mal was anderes (priorisierter), als die gesetzte.
 
Zuletzt bearbeitet:
Autsch ;-)
 
Hallo
Aber Deine HP verlangt (mittlerweile?) Zugangsdaten, die ich wohl dann überlesen habe,
Sorry, es war eine Misskonfiguration des Servers und uberhaupt nicht im Sinne des Erfinders:D
Es ist mir schon aufgefallen und ich habe es natürlich sofort korrigiert.

Welche dropbear-Version nutzt du denn? ich habe mittlerweise die neueste reingestellt.
 

JOP :cool: Und keiner hats gesehen! :D


EDIT:
MIST! Habe nun alles umgestellt ... trotzdem bekomme ich noch
sh: scp: not found
lost connection

(Ich weiß, wollte erst heut Abend schauen, aber hat mir keine Ruhe gelassen)
@radislav - Dein Paket ist aber das standalone + static und scp geht bei Dir von ner Entfernten-Konsole aus?
scp testdatei [email protected]:/var/media/ftp/<namedessticks>/testdatei -> Was mach ich falsch? xD

Wie gesagt der einstellbare PATH wird über export in der profile bei mir ergänzt und es funktioniert auch:
# cd /
# scp
usage: scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 [...] [[user@]host2:]file2

-> Also er findet SCP! ... Aber von außen was draufschieben kommt eben immer noch sh: scp: not found
 
Zuletzt bearbeitet:
Wenn ich es richtig verstanden habe, willst du per sftp auf die box drauf. Dazu ist doch sftp-server da, welches vom dropbear (ssh-server) automatisch aufgerufen wird.
 
Ich hatte mal genau dasselbe Problem, scp wurde in /bin oder /usr/bin gesucht (der hardcoded Pfad).
Dabei bin ich mir nicht mehr sicher wie ich das gelöst habe.
Vermutlich hat die /var/tmp/.profile damit zu tun.
probier dochmal:
/var/tmp/.profile schrieb:
ENV=~/.ashrc_$USER
PATH=/bin:/usr/bin:/sbin:/usr/sbin
PS1='`pwd` #'
export ENV PATH PS1
(wobei hier nur die PATH definition wichtig wäre)
Das sieht zwar komisch aus, aber so funktioniert SFTP mit ssh (dropbear) und sftp-server bei mir.
Auch wenn /var/tmp nicht im PATH ist.
Denn alles was eine Shell aufmacht, bekommt wohl auch dieses Environment.

Für die Neugierigen:
/var/tmp/.ashrc_root schrieb:
alias ls='ls -A -F -p --color'
alias l='ls -la'
PATH=~:~/bin:~/scripts:$PATH
PS1='\033[40m\033[31m`pwd`\033[0m\033[40m\033[1;32m #\033[0m'
export PATH PS1
(auch kein /var/tmp im PATH)
EDIT: Oups, übersehn: ~ zeigt auf /var/tmp

Poste doch bitte mal deine /var/tmp/.profile

scp syntax:
kopiert von lokalen auf entfernten Rechner
/var/tmp/scp schrieb:
scp /var/tmp/lokaledatei [email protected]:/var/tmp/pub
kopiert vom entfernten Rechner ins aktuelle Verzeichnis (.)
/var/tmp/scp schrieb:
scp [email protected]:/var/tmp/pub/entferntedatei .

koy
 
Zuletzt bearbeitet:
Ich hatte mal genau dasselbe Problem, scp wurde in /bin oder /usr/bin gesucht (der hardcoded Pfad).
Dabei bin ich mir nicht mehr sicher wie ich das gelöst habe.

Genau das, wäre gut zu wissen ... und zur Info:
Wenn ich auf der Box bin und dort scp nutzen will, um eine entfernte Datei zu schnappen:
Code:
#scp stinderf@mbp:~/Desktop/testdatei2scp /var/media/ftp/LG-USBDrive-01/testdate
i2scp
/usr/bin/ssh: No such file or directory
#
wie gesagt, wenn ich aber einfach nur scp in der Box-Konsole eingebe - egal wo ich bin, nutzt er/geht er auf das scp von /var/tmp, wie er es auch soll!
Also scheint wirklich ein HARDCODED LINK in der Binary zu stecken, was mir ja auch gezeigt wird, wenn ich diese mit einem HEX-Editor aufmache!!!
Wie bekomm ich diesen also heraus? Meine Path auf der BOX:
Code:
#echo $PATH
/sbin:/usr/bin:/bin:/usr/sbin:/var/tmp
#
Ich versuche nu noch die /var/tmp nach ganz vorne zu bringen, sonst fällt mir aber auch nix mehr ein und es dürfte normal ja egal sein, wo der Pfad in der Reihe steht, da er wenn er vorne nix findet normal nach hinten wandert bis er was findet- was er dann ja bei /var/tmp tut!?! ... Wie gesagt das Hardcoded ding in der Dropbearmulti nervt mich ... denke, dass es daran liegt und weiß nicht, wie ich es wegbekommen soll.
 
Die Reihenfolge spielt schon eine Rolle.
Beispiel:
PATH=/sbin:/usr/bin:/bin:/usr/sbin:/var/tmp
In
/usr/sbin
ist telnetd
und in
/var/tmp
auch,
dann nimmt die Shell das erste telnetd was es im Pfad findet, also
/usr/sbin/telnetd
und *nicht*
/var/tmp/telnetd (wenn da ein telnetd rumliegen sollte)

Wenn du also was modifizierst, dann sorge dafür das zuerst in der Modifikation nachgeschaut wird.
Meine Neue busybox hat all ihre Links in /var/tmp/bin.
Also kommt dieses Verzeichnis ganz nach vorne im PATH.
Auch wenn ich die Neue auf die Alte binde (mount -o bind /var/tmp/busybox /bin/busybox).
Weil die Neue viel mehr Befehle hat und httpd z.B. alles kann: reverse proxy, mime types, eigene Fehlerseiten usw.
Auch tar kann komprimieren, was meine alte (originale) nicht kann.
Man kann dann also sagen: Doch, das ist sogar immens wichtig!

Und nochwas, der harcoded Pfad zu ssh in dropbear ist nicht dein Problem.
Weil es ja bei mir auch so war, nur weiss ich eben nicht mehr woran es lag.

leider

koy
 
Zuletzt bearbeitet:
Das ist mir schon klar, aber in /usr/bin, /usr/sbin, /sbin, /bin ist ja kein scp und kein ssh! Daher nimmt er ja auch das scp aus /var/tmp, wenn ich von egal wo scp aufrufe... aber beim Selbstaufruf (wenn das scp also zur Tat schreiten soll und versucht die Verbindung aufzubauen) scheint er in sich (im dropbearmulti-"paket"/"binary) halt fest /usr/bin/ssh eingebaut zu haben - was man auch mit einem HEX-Editor sieht ... und die Frage die sich mir noch immer stellt: WIE bekomme ich diese FESTE Angabe dort drinnen zu /var/tmp?
 
mach doch "spasseshalber" mal
Code:
sed -i 's#/usr/bin#/var/tmp#' /var/tmp/dropbearmulti
Das sollte den Pfad im Binary ersetzen...

Ach so, und dann vielleich noch einen Link für ssh
Code:
ln -s  /var/tmp/dropbearmulti /var/tmp/ssh
 
Zuletzt bearbeitet:
^---> aber bitte auf eine Kopie!
 
YUHUUUU DANKE! ... SCP geht! Aber jetzt bekomme ich als folgende Meldungen:
Code:
[email][email protected][/email]'s password: 

BusyBox v1.18.5 (2012-03-27 14:03:03 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

-sh: /etc/init.d/rc.conf: tr: not found
-sh: /etc/init.d/rc.conf: tr: not found
-sh: /etc/init.d/rc.conf: tr: not found
-sh: /etc/init.d/rc.conf: tr: not found
-sh: /etc/init.d/rc.conf: tr: not found
cat: can't open '/var/flash/featovl.cfg': No such file or directory
ermittle die aktuelle TTY
tty is "/dev/pts/0"
Console Ausgaben auf dieses Terminal umgelenkt
# scp stinderf@mbp:~/Desktop/testdatei2scp /var/media/ftp/LG-USBDrive-01/testdat
ei2scp
/var/tmp/ssh: Warning: failed creating //.ssh: Read-only file system

Host 'mbp' is not in the trusted hosts file.
(fingerprint md5 42:28:88:51:2b:24:61:36:04:5a:e7:49:7f:fd:0b:e4)
Do you want to continue connecting? (y/n) y
Login for stinderf@mbp
Password:
testdatei2scp                                 100%    0     0.0KB/s   00:00    
#
:confused:

Von außerhalb geht nun auch:
Code:
stinderf@mbp:~/Desktop $ scp testdatei2scp [email protected]:/var/media/ftp/LG-USBDrive-01/testdatei2scp
[email protected]'s password: 
testdatei2scp                                 100%    0     0.0KB/s   00:00

Bleibt nur die Frage, ob ich nun mit den Fehlermeldungen leben muss und ob diese irgendetwas beeinträchtigen? :-(


EDIT:
DANKE HAT SICH ERLEDIGT :) *HAPPY* Dachte ich...
Also einfach auf die dropbearmulti einen:
Code:
sed -i 's#/usr/bin/ssh#/var/tmp/ssh#' dropbearmulti
Nat. sollte man sich vorher eine Sicherung anlegen :p ... Aber danke für den netten Hinweis :) ... Vorher hatte ich nur
Code:
sed -i 's#/usr/bin#/var/tmp#' dropbearmulti
... SCP geht aber obige Fehlermedlungen ... dann
Code:
sed -i 's#/usr/bin/ssh#/var/tmp/ssh#' dropbearmulti
und scp geht wieder nicht aber auch keine Fehlermeldungen.

Kann ich dem Befehl auch sagen "Ersetze alle /usr/bin/DAKOMMTNOCHWASVONDROPBEAR (ssh,scp) in /var/tmp/DASWASDANOCHKAM ABER ersetze nicht /usr/bin/DAKOMMTNIXODERWASVOMSYSTEM (sh, cp)" -> einfach "mehrfach" mit entsprechenden links aufrufen vll.? xD ... ich probiere ...
 
Zuletzt bearbeitet:
^---> Wie erwartet: deine Binary ist kaputtge'sed'tet. :(
 
ok, man ist aber ja schon ein RIEßENSTÜCK weiter! :) ... Ich muss die Frage von eben noch mal umformulieren ... es geht mir noch darum, im PATH in der Binary den /var/tmp zu ERGÄNZEN ... ich möchte /usr/bin dabei aber nicht ERSETZEN (da sonst wie beschrieben auch /usr/bin/sh und /usr/bin/cp geändert würden) ...

Also normal würde ich ja hingehen und sagen "suche und ersetze"
Code:
"/usr/bin:/bin" durch "/usr/bin:/bin:/var/tmp" ... also:

sed -i 's#/usr/bin:/bin#/usr/bin:/bin:/var/tmp#' /var/media/ftp/LG-USBDrive-01/7270/dropbearmulti

HABE ES PROBIERT ABER ... ES GEHT DABEI IRGENDWAS SCHIEF! Auf gut Deutsch: Nach einem Restart ist dann der SSH nicht mehr hochgekommen. Liegt es vll. am Doppelpunkt? Ist der vll. für "den Regex" ein Sonderzeichen und muss irgendwie escaped werden? Wenn, Wie ... mit \ ?


Wie bekomme ich denn alle Befehle aus der Busybox in ein Verzeichnis? Muss ich die Links alle per Hand anlegen? Also in der Debug wirklich x Zeilen von Hand eintragen wie z.B. "ln -s /var/media/ftp/<usbstickname>/7270/busybox /var/tmp/bin/cp"
"ln -s /var/media/ftp/<usbstickname>/7270/busybox /var/tmp/bin/sh"
"ln -s /var/media/ftp/<usbstickname>/7270/busybox /var/tmp/bin/wasweisichwasnochalles" ? ^^''
Wenn ich nämlich das Verzeichnis ja dann komplett hätte könnte ich es ja mit
"mount -o bind /var/tmp/bin /usr/bin" übermounten und vorher auch meine dropbearlinks einfügen und hätte somit keine Probs mehr was zu finden ... oder ist das auch nich möglich, weil im Ordner nicht nur die Files von der busybox sondern auch andere bins/apps liegen? :) Selbstantwort: JA DAMN, dort liegen noch andere Sachen, nicht alles auf busybox verlinkt. DANKE trotzdem für jede weitere Hilfe!

Edit: Ich bin nu mal beim Versuch, mit mount -o bin /pfadzurbusyboxaufstick/busybox /bin/busybox wenigstens die noch einzubinden. Mein Prob, dass in /usr/bin dadurch aber noch immer kein ssh zu finden ist, löst sich leider dadurch nicht ... da muss ich nochmals mit sed rumspielen wie mir scheint ^^

Mh Resultat des Versuchs:
Code:
-sh: /etc/init.d/rc.conf: line 4: cat: Permission denied
-sh: /etc/init.d/rc.conf: grep: Permission denied
-sh: /etc/init.d/rc.conf: tr: Permission denied
-sh: /etc/init.d/rc.conf: tr: Permission denied
-sh: /etc/init.d/rc.conf: grep: Permission denied
-sh: /etc/init.d/rc.conf: grep: Permission denied
-sh: /etc/init.d/rc.conf: grep: Permission denied
-sh: /etc/init.d/rc.conf: tr: Permission denied
-sh: /etc/init.d/rc.conf: ls: Permission denied
-sh: /etc/init.d/rc.conf: grep: Permission denied
-sh: /etc/init.d/rc.conf: tr: Permission denied
-sh: /etc/init.d/rc.conf: grep: Permission denied
-sh: /etc/init.d/rc.conf: tr: Permission denied
-sh: /etc/init.d/rc.conf: cat: Permission denied
-sh: /etc/init.d/rc.conf: cat: Permission denied
-sh: /etc/init.d/rc.conf: line 419: ln: Permission denied
-sh: /etc/init.d/rc.conf: line 431: rm: Permission denied
-sh: /etc/init.d/rc.conf: line 431: ln: Permission denied
-sh: /etc/init.d/rc.conf: cat: Permission denied
-sh: /etc/init.d/rc.conf: cat: Permission denied
-sh: /etc/init.d/rc.conf: cat: Permission denied
-sh: /etc/init.d/rc.conf: line 464: mkdir: Permission denied
ermittle die aktuelle TTY
-sh: ls: Permission denied
tty is ""
unbekanntes Terminal
-sh: pidof: Permission denied
~ #
xD muss ich wohl noch mal rausnehmen, neustarten und nach dem einbinden ein chmod +x versuchen? Wobei danach dürfte er ja für chmod auch schon keine Rechte mehr haben (hat er zumindest jetzt gerade ja auch nicht mehr) somit müsste ich vorher einen ln -s in /var/tmp erstellen, diesen +x'en und dann den link mounten? Bin mal gespannt obs klappt ... das wären ja dann link->mount quasi "2 links"

Ok, die die ich einbinden wollte war eh älter als die, die schon drin war. Habe nun die 1.20 eingebunden ... funst so weit die Busybox ... dropbear/scp noch immer nicht ... was mich jetzt aber mehr stört:
Code:
Feb 20 21:07:29 chronyd[2311]: Selected source 83.177.160.188
Was wird dort gesendet? Ist das jetzt durch die neue Busybox? (busybox_1.20.2_mipsel)
 
Zuletzt bearbeitet:
Du kannst auf diese Art nur "gleichlange" Änderungen durchführen.
Gibt es mehrere Vorkommnisse davon, kannst du tatsächlich "spezieller ersetzen", z.B :

Code:
sed -i 's#/usr/bin/ssh#/var/tmp/ssh#' /var/tmp/dropbearmulti
sed -i 's#/usr/bin/scp#/var/tmp/scp#' /var/tmp/dropbearmulti

Wenn das im RAM (in /var/tmp) erfolgreich war, dann kannst du darüber nachdenken, das "Original" auf dem Stick zu ändern.
 
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.