[Problem] Dropbear SFTP Zugriff über FileZilla

sharbich

Neuer User
Mitglied seit
30 Aug 2012
Beiträge
191
Punkte für Reaktionen
3
Punkte
18
Hallo Ihr Lieben,

ich habe eine 7390 mit Freetz Stabile 1.2 und 84.04.91 FW. Per Konsole kann ich via ssh auf die FritzBox zugreiffen. Allerdings geht das beim FileZilla nicht per SFTP mit entsprechenden Zertifikat für den FileZilla.

Code:
2013-05-07 21:46:26 12647 3 Trace: CFileZillaEnginePrivate::ResetOperation(66)
2013-05-07 21:46:30 12647 3 Trace: CControlSocket::DoClose(64)
2013-05-07 21:46:30 12647 3 Trace: CControlSocket::DoClose(64)
2013-05-07 21:52:45 13010 3 Status: Verbinde mit romesh01.fritz.box...
2013-05-07 21:52:45 13010 3 Trace: Going to execute /usr/bin/fzsftp
2013-05-07 21:52:45 13010 3 Antwort: fzSftp started
2013-05-07 21:52:45 13010 3 Trace: CSftpControlSocket::ConnectParseResponse(fzSftp started)
2013-05-07 21:52:45 13010 3 Trace: CSftpControlSocket::SendNextCommand()
2013-05-07 21:52:45 13010 3 Trace: CSftpControlSocket::ConnectSend()
2013-05-07 21:52:45 13010 3 Befehl: keyfile "/home/sharbich/.ssh/id_rsa_fz"
2013-05-07 21:52:45 13010 3 Trace: CSftpControlSocket::ConnectParseResponse()
2013-05-07 21:52:45 13010 3 Trace: CSftpControlSocket::SendNextCommand()
2013-05-07 21:52:45 13010 3 Trace: CSftpControlSocket::ConnectSend()
2013-05-07 21:52:45 13010 3 Befehl: open "[email protected]" 22
2013-05-07 21:52:45 13010 3 Trace: Server version: SSH-2.0-dropbear_2012.55
2013-05-07 21:52:45 13010 3 Trace: Using SSH protocol version 2
2013-05-07 21:52:45 13010 3 Trace: We claim version: SSH-2.0-PuTTY_Local:_Jul_17_2012_09:36:47
2013-05-07 21:52:45 13010 3 Trace: Using Diffie-Hellman with standard group "group14"
2013-05-07 21:52:45 13010 3 Trace: Doing Diffie-Hellman key exchange with hash SHA-1
2013-05-07 21:52:48 13010 3 Trace: Host key fingerprint is:
2013-05-07 21:52:48 13010 3 Trace: ssh-rsa 1039 fd:5a:4f:d3:c2:b2:54:e3:e9:95:b3:82:d9:dc:46:a0
2013-05-07 21:52:48 13010 3 Trace: Initialised AES-256 SDCTR client->server encryption
2013-05-07 21:52:48 13010 3 Trace: Initialised HMAC-SHA1 client->server MAC algorithm
2013-05-07 21:52:48 13010 3 Trace: Initialised AES-256 SDCTR server->client encryption
2013-05-07 21:52:48 13010 3 Trace: Initialised HMAC-SHA1 server->client MAC algorithm
2013-05-07 21:52:48 13010 3 Trace: Pageant is running. Requesting keys.
2013-05-07 21:52:48 13010 3 Trace: Pageant has 1 SSH-2 keys
2013-05-07 21:52:48 13010 3 Trace: Successfully loaded 1 key pair from file
2013-05-07 21:52:48 13010 3 Trace: Trying Pageant key #0
2013-05-07 21:52:48 13010 3 Trace: Key matched loaded keyfile, remove duplicate
2013-05-07 21:52:48 13010 3 Trace: Sending Pageant's response
2013-05-07 21:52:48 13010 3 Trace: Access granted
2013-05-07 21:52:48 13010 3 Trace: Opened channel for session
2013-05-07 21:52:48 13010 3 Trace: Primary command failed; attempting fallback
2013-05-07 21:52:49 13010 3 Trace: Started a shell/command
2013-05-07 21:52:49 13010 3 Status: Connected to romesh01.fritz.box
2013-05-07 21:52:49 13010 3 Trace: Server sent command exit status 2
2013-05-07 21:52:49 13010 3 Fehler: Connection closed by server with exitcode 2
2013-05-07 21:52:49 13010 3 Trace: CControlSocket::DoClose(64)
2013-05-07 21:52:49 13010 3 Trace: CSftpControlSocket::ResetOperation(66)
2013-05-07 21:52:49 13010 3 Trace: CControlSocket::ResetOperation(66)
2013-05-07 21:52:49 13010 3 Fehler: Herstellen der Verbindung zum Server fehlgeschlagen
2013-05-07 21:52:49 13010 3 Trace: CFileZillaEnginePrivate::ResetOperation(66)
2013-05-07 21:52:49 13010 3 Status: Nächsten Versuch abwarten...

woran kann das liegen?

Lieben Gruß von Stefan
 
Hallo sharbich,

das hatten wir schon irgendwo! Du verwechselst da SFTP und FTPS. Für SFTP in dropbear, fallst installiert, empfehle ich WinSCP. Mit FTPS hat dies aber nichts zu tun. Google einfach mal danach.

Viele Grüße
R@d
 
Hallo radislav,

nein, ich Denke nicht das ich was verwechsle. Es hat schon mal mit dem Filezilla funktuioniert. Nur habe ich mitlerweile weitere Programme installiert und weiß nicht mehr seit wann es nicht mehr funktioniert. Im obrigen log File kannst Du ja sehen das eine Verbindung aufgebaut wird, dieser aber nicht ganz abgeschlossen wird.

Code:
2013-05-07 21:52:48 13010 3 Trace: Access granted
2013-05-07 21:52:48 13010 3 Trace: Opened channel for session
2013-05-07 21:52:48 13010 3 Trace: Primary command failed; attempting fallback

Wir sagt der letzte Eintrag einfach nichts.

Lieben Gruß von Stefan
 
Moin
Das hab ich auch schon überlegt, mir fällt nur sowas ein: login, sh oder ash, /dev/pts/0, kein Heimatverzeichnis für den Benutzer?
Guck mal in /etc/passwd ob Benutzer und Heimatverzeichnis da sind, sowie eine gültige Shell (sh oder ash).
Ist auch ein Eintrag in /etc/shadow notwendig/vorhanden?
Ist das Root-Login überhaupt erlaubt?
Diese Fragen klären.
 
Zuletzt bearbeitet:
Hallo koyaanisqatsi,

da ich mich als root und benutzer per ssh über das Terminal mit "ssh.romesh01.fritz.box" korrekt anmelden kann, sprich im Profilverzeichnis wie in der /etc/passwd angegeben eingeloggt werde, sollte eigentlich alles passen?

Das einzige was mir einfällt ist, wenn ich mich per ssh über das Terminal als Benutzer anmelde, dann erhalte ich nach dem Login im Benutzerverzeichnis, zwei drei permission denied Fehlermeldungen mitgeteilt. Kann mich aber weiterhin im Verzeichnisbaum der Box bewegen.

Nur wenn ich die Verbindung über irgendein SFTP Programm aufbauen will, erscheint die Fehlermeldung gemäß #2 und #3.

Lieben Gruß von Stefan
 
@sharbich: Wie hast du dropbear kompiliert? Es gab früher einen Bug, wenn man den Klient rausgepatcht hatte. Kompiliere bitte dropbear in der vollen Variante und probiere es so. Ferner, bekommt man normalerweise auch bei WinSCP 2-3 Fehlermeldungen beim Anmelden über SCP. Man muss irgendwas in den WinSCP-Einstellungen verändern, um die Meldungen weg zu bekommen. Ich meine, da war irgendwas mit dem Listing der Verzeichnisse, was standardmäßig nach dem Einloggen per scp abgefragt wird.
Und noch was: Ich sehe bei dir gerade dropbear (ssh+sftp) in deiner Signatur. Wie radislav, bin ich auch einer festen Meinung, dass dropbear nur scp kann.
Irgendein schlauer Mensch unter FREETZ-Entwickler ist leider auf eine nicht all so glückliche Idee gekommen und hat dem dropbear angeblich eine sftp-Funktionalität verpasst. Was da tatsächlich im Hintergrund dazu abläuft, wird aber dem normalen User nicht verraten: Es werden nämlich plötzlich zusätzlich zum dropbear einige Teile von OpenSSH aktiviert, um diese besagte sftp-Funktionalität zu ermöglichen. Ob so eine Vermischung und verzahnung zwischen dem dropbear und OpenSSH schlau ist, sei hingestellt. Ich persönlich würde dann lieber komplett mich vom dropbear verabschieden und zu OpenSSH wechseln, wenn ich schon sowas tun würde. Ich bin auch einmalig in so eine Falle geraten und musste relativ lange erforschen, was für ein Ar$$$ bei mir die OpenSSL-Funktionalität aktiviert hat, ohne dass ich es wollte. Das dies von dieser "schlauen" Zusatzfunktion vom dropbear kam, konnte ich mir kaum vorstellen, weil ich davon fest überzeugt war, dass dropbear sein SSH-Kram selbstständig macht, ohne OpenSSL zu benötigen.

MfG
 
dropbear ist da leider nicht so gesprächig. Mit einem strace kann man die Meldung jedoch sehen...

Gruß
Oliver
 
Kann mich bitte hier jemand aufklären, wofür so eine kranke Kombination aus dropbear und OpenSSH gut sein sollte? Warum nimmt man nicht gleich OpenSSH und verzichtet auf dropbear, wenn man schon sftp braucht?
Sehe ich es richtig, dass wir damit hier in FREETZ zwei unterschiedliche Pakete miteinander "verheiraten", die erstmal gar nicht miteinander zu tun haben? Das sowas bei einer bestimmten Versionskombination beider Pakete geht, bedeutet doch noch lange nicht, dass es immer funktionieren wird. Ist es denn unter diesen Umständen vernünftig, sowas zu verfolgen? Der Wartungsaufwand ist dafür doch enorm.

MfG
 
Hallo Ihr Lieben,

ich habe soeben Dropbear deaktiviert und bin auf OpenSSH umgestiegen. Jetzt funktioniert alles. Nun kann ich wieder über FileZilla per SFTP / SSH auf die Box zugreifen.

Lieben Gruß von Stefan
 
Wenn du schon voll auf OpenSSH umgestiegen bist, schau dir dort gleich die Optionen an, um die Angreifer zu begrenzen. Wenn ich mich richtig erinnere, gibt es beim OpenSSH dafür deutlich mehr Möglichkeiten, als beim dropbear. Wenn ich mich nicht irre, kann man dort sogar eine komplette IP-Blockade erzwingen. Heutzutage sind solche Maßnahmen notwendig, vor allem, wenn du auf dem Port 22 bleibst. Suche einfach im Netz danach. Zu OpenSSH gibt es viele Anleitungen.

MfG
 
@hermann
Die Nutzung des OpenSSH sftp binaries ist in dropbear von Upstream vorgesehen. Von daher sehe ich das nicht so kritisch wie du es beschreibst. Bisher hat das auch immer funktioniert.

Gruß
Oliver
 
Kann mich bitte hier jemand aufklären, wofür so eine kranke Kombination aus dropbear und OpenSSH gut sein sollte? Warum nimmt man nicht gleich OpenSSH und verzichtet auf dropbear, wenn man schon sftp braucht?

Aus dem gleichen Grund, aus dem man dropbear statt OpenSSH verwendet, auch wenn man kein sftp braucht: Dropbear ist kleiner. Das Programm sftp-server hat nur ca. 60kB und benötigt keine weiteren Libraries. Der OpenSSH Server ist etwa 10 mal so groß.
 
@Ralf: Mit "benötigt keine weiteren Libraries" ist es nicht ganz richtig. OpenSSL wird schon mal benötigt und das ist das Meiste, was an OpenSSH Platz verbraucht. Darum hatte ich ja diese provokative Frage gestellt, weil für mich Kosten/Nutzen-Verhältnis als sehr ungünstig erscheint. Wenn schon, dann lieber gleich komplett auf OpenSSH umsteigen.
@Oliver: Was heißt "bis jetzt hat das immer funktioniert". Ich vermute mal, dass es eher nur ganz wenige hier in dieser Kombination benutzt hatten. Zudem, die Option gibt es ja auch noch nicht so lange (zumindest bei FREETZ). Von daher würde ich da nicht von einer langen Stabilität sprechen.

Wie gesagt, mir persönlich ist es egal, weil ich die Kombination nicht nutze. Es geht nur um den Wartungsaufwand und um die verzweifelten Benutzer hier, die dadurch keinen sftp zum Laufen bekommen...

MfG
 
Mit "benötigt keine weiteren Libraries" ist es nicht ganz richtig. OpenSSL wird schon mal benötigt und das ist das Meiste, was an OpenSSH Platz verbraucht.

Bei mir am PC sieht das so aus:
Code:
# ldd /usr/lib/ssh/sftp-server
        linux-vdso.so.1 (0x00007fff37ba4000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fda083fe000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fda087ab000)
Auf der Box funktioniert es auch, nur nimmt der Linker da anscheinend die Libraries alle hinein, ob sie verwendet werden oder nicht. Das lässt sich normalerweise mit --as-needed verhindern, gibt aber Probleme beim Linken von libcrypto, sofern libcrypto die erste shared Library ist, was derzeit der Fall ist.
Jedenfalls sieht es dann so aus:
Code:
# LD_TRACE_LOADED_OBJECTS=1 /usr/lib/sftp-server
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x2aabe000)
        libc.so.0 => /lib/libc.so.0 (0x2aadc000)
        ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x2aaa8000)
# size sftp-server
   text    data     bss     dec     hex filename
  54249     540    1428   56217    db99 sftp-server
 
@Ralf
Von welchem sftp-server Binary redest du jetzt? Von dem aus OpenSSH? Dass soll nur 60kb groß sein und nicht die OpenSSL-Libs benötigen?

Gruß
Oliver
 
Soweit ich weiß, haben wir nur den sftp-server von OpenSSH, das ist ja der Grund, warum der in Zusammenhang mit dropbear verwendet wird.
Genau, dieses Programm ist knapp 60kB groß und benötigt keine OpenSSL Libraries. Der Grund dafür ist, dass die Verschlüsselung vom aufrufenden Programm gemacht wird, also entweder vom dropbear oder vom OpenSSH sshd.
Leider werden alle Programme vom OpenSSH Makefile mit allen Libraries gelinkt. Das führt dazu, dass der sftp-server Verweise auf Libraries hat, der er gar nicht benötigt. Ich habe daher einen Patch für OpenSSH gemacht, der die Libraries beim sftp-server entfernt. Damit kommt das Programm aus dem Beitrag oben heraus.

Eine elegantere Lösung wäre, die Linker Option -as-needed zu verwenden. Damit soll laut Beschreibung der Linker von den angegebenen Libraries nur verweise auf die Libraries einfügen, die auch tatsächlich benötigt werden. Das funktioniert auch prinzipiell, aber nicht, wenn man die Libraries in der Reihenfolge angibt, wie das configure Programm von OpenSSH diese anordnet. Ich habe einige Varianten ausprobiert, und fast jede andere Reihenfolge scheint zu funktionieren. Letztlich war es mir aber einfacher, die LIBS in der einen Zeile zu entfernen, als das configure entsprechend anzupassen.
 
Aber gerade bei OpenSSH verwendet man oft die Option "internal-sftp", anstatt "sftp-server". Frag mich bitte jetzt nicht warum. Ich hatte vor kurzem bei meiner QNAP-NAS den "richtigen" OpenSSH aufgesetzt. Ich glaube, da gibt es einige Probleme mit chroot-jail und beim "internal-sftp" läuft es sicherer, als mit einem externen Server. Aber bei uns unter FREETZ wird wahrscheinlich eher alles als root laufen. Sowohl dropbear, als auch dieser sftp-server von OpenSSH.
Das Problem an dieser root-Geschichte ist die, dass man dadurch den anzumeldenden Benutzer in seinem home-Verzeichnis kaum befangen kann, was für jeden FTP-Server sehr nützlich wäre. Und so kann der Benutzer durch die ganze Ordner-Struktur im Linux-Baum sich bewegen. Insebesondere bei kleinen Boxen und bei NAS-Devices wird da oft nicht so streng mit den Berechtigungen umgegangen. Bei der zitierten NAS von mir wurde z.B. /etc/shadow für alle leserlich gemacht, damit Apache da irgendwas bestimmtes machen kann. Ich kann mir gut vorstellen, dass auch AVM-Kollegen ähnliche Schweinereien an einigen Stellen mit der Box machen. Darum wäre es sowieso sehr kritisch sftp-Funktion mit dem SSH-Server zu "verheiraten" anstatt z.B. vsftp gleich dafür zu nehmen.

MfG
 
Der Server (ob dropbear oder sshd) läuft immer als root. Der sftp-server läuft als der angemeldete Benutzer, nachdem man sich am SSH Server angemeldet hat. Generell sollte man entweder restriktive Zugriffsrechte setzen, was auf den AVM Boxen kaum möglich ist, oder nur vertrauenswürdigen Leuten Zugriff geben.
Wenn Dir sftp nicht gefällt, ist das ok, aber deswegen muss es nicht für andere falsch sein.
 
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.