[Gelöst] Dropbear not running - Freetz devel-12850 auf FB7390 mit 84.06.20 rev28634

Nagamichisan

Neuer User
Mitglied seit
4 Jul 2007
Beiträge
32
Punkte für Reaktionen
0
Punkte
6
Hallo zusammen,

ich habe folgende Frage: Muss in Freetz der Dienst "dropbear" laufen, damit ich von außen über mein SSH-Zertifikat per Putty auf mein Heimnetzwerk zugreifen kann?

Das Konstrukt lief bis Mitte Dezember 2014 ohne Probleme. Jetzt forsche ich woran das liegen könnte - entweder hat der Netzprovider von wo aus ich ins Heimnetzwerk möchte etwas geändert oder Freetz/Fritzbox macht mir Probleme.
Ich kann leider nicht sagen, ob der Dopbear Dienst früher lief, da habe ich nie drauf geachtet.

Möchte ich den Dienst starte kommt die Fehlermeldung: "Starting dropbear SSH server ... failed."

Wäre klasse, wenn mir ein Crack (ich bin es nämlich nicht) weiterhelfen könnte.

Kleine Anmerkung: Da die Fritz- und Freetz-Version 2 Jahre alt waren, habe ich heute auf aktuelle Versionen upgedatet, in der Hoffnung, dass es dann wieder läuft. Läuft aber leider nicht.

Danke&Gruß
Markus
 
Zuletzt bearbeitet:
Erstmal vorweg: Ja, der Dienst muss laufen.
Jetzt müsste man herausfinden, warum er nicht startet. Dazu müsstest du dich auf die Box verbinden (wenn ssh nicht läuft z.B. per "telnet", das muss ggf. zuvor auch gestartet werden, sofern es nicht läuft).
Rufe dann ein "sh -x /etc/init.d/rc.dropbear start" auf und poste den Output hier.
Es ginge auch per "RudiShell" (findet sich im Freetz unter dem Menu "System"), mit den Befehl "sh -x /etc/init.d/rc.dropbear start 2>&1".
 
Hi MaxMuster!

Hier per RudiShell ausgelesen:

Code:
+ DAEMON=dropbear
+ DAEMON_LONG_NAME=dropbear SSH server
+ . /etc/init.d/modlibrc
+ export PATH=/mod/sbin:/mod/bin:/mod/usr/sbin:/mod/usr/bin:/mod/etc/init.d:/sbin:/bin:/usr/sbin:/usr/bin
+ export LD_LIBRARY_PATH=/mod/lib:/mod/usr/lib
+ : dropbear SSH server
+ : dropbear
+ : dropbear_ENABLED
+ : /mod/etc/dropbear.conf
+ : dropbear
+ : /var/run/dropbear.pid
+ [ -n dropbear ]
+ modlib_loadconfig
+ local CONF_FILE=/mod/etc/conf/dropbear.cfg
+ [ ! -r /mod/etc/conf/dropbear.cfg ]
+ . /mod/etc/conf/dropbear.cfg
+ export DROPBEAR_ENABLED=yes
+ export DROPBEAR_OPTIONS=
+ export DROPBEAR_PORT=443
+ export DROPBEAR_PWDAUTH=no
+ export DROPBEAR_ROOTONLY=yes
+ modlib_start
+ local DAEMON_ENABLED=
+ [  == no ]
+ [  == inetd -a ! -x /mod/etc/init.d/rc.inetd ]
+ modlib_check_running
+ [ -n  ]
+ [ -x /mod/etc/init.d/rc.inetd ]
+ tr [:lower:]- [:upper:]_
+ echo dropbear_ENABLED
+ eval echo $DROPBEAR_ENABLED
+ echo yes
+ [ yes == inetd ]
+ [ -n  ]
+ local fn=/var/run/dropbear.pid
+ [ ! -s /var/run/dropbear.pid ]
+ return 3
+ start
+ [ no = yes ]
+ DROPBEAR_OPTIONS=-s 
+ [ yes = yes ]
+ DROPBEAR_OPTIONS=-0 -s 
+ set -o noglob
+ modlib_startdaemon dropbear -p 443 -0 -s
+ echo -n Starting dropbear SSH server ... 
Starting dropbear SSH server ... + config
+ :
+ which dropbear
+ [ ! -x /usr/sbin/dropbear ]
+ startdaemon_pre
+ :
+ local rv_pre=0
+ env - PATH=/mod/sbin:/mod/bin:/mod/usr/sbin:/mod/usr/bin:/mod/etc/init.d:/sbin:/bin:/usr/sbin:/usr/bin LD_LIBRARY_PATH=/mod/lib:/mod/usr/lib dropbear -p 443 -0 -s
+ local rv=1
+ startdaemon_post
+ :
+ local rv_post=0
+ [ 0 -ne 0 -o 1 -ne 0 -o 0 -ne 0 ]
+ echo failed.
failed.
+ exit 1
 
o.k., das eigentliche Ausführen des "dropbears" schlägt fehl.
Bitte mach mal den Aufruf in der RudiShell:

dropbear -E -p 443 -0 -s 2>&1
 
Hier die Antwort:

Code:
[4792] Jan 11 15:09:56 Failed listening on '443': Error listening: Address already in use
[4792] Jan 11 15:09:56 Early exit: No listening ports available.

Dann habe ich nachgesehen und gesehen, dass Fritz "TCP-Port für HTTPS" aktiv war - ich nutze das aber gar nicht, habe es deaktiviert, rebootet, aber die Ausgabe blieb gleich.

Dann habe ich trotzdem den Port für "TCP-Port für HTTPS" auf einen anderen Port geändert, und schwupps, siehe da, dropbear läuft!!!!!

Danke für auf den Weg bringen!
Werde das nun morgen mal testen und wenn alles funktioniert auf "Gelöst" setzen.
 
Zuletzt bearbeitet:
N'Nachmittag

Dann nimmste jetzt mal: -p 22 :D
 
Konnte leider heute erst testen. Ich glaube die FB hat den Port 443 trotz allem nicht offen - oder irgendwas stimmt noch nicht.

Sobald ich von außen über einen Proxy per Putty zugreifen möchte kommt die Fehlermeldung: Putty Fatal Error: Proxy Error: 503 Service unavailable.
Das muss sich auf den Port auf meiner FB beziehen.

Nämlich: Mache ich über die Fritz-OS unter Internet eine Portfreigabe von 443 irgendwo hin, kommt diese Meldung nicht und Putty versucht sich einzuloggen (zwar schwarzes Fenster, aber zumindest geht es weiter), bis Putty dann nach einer Minute abbricht.

Wie stelle ich also fest, ob 443 tatsächlich auf meiner FB von außen offen ist und auf Dropbear/SSH von Freetz zugreifen könnte?

dropbear.jpg
 
Moin

Das Fritz!Box Linux Kommando zum Anzeigen der Server/Dienste: netstat -ltu
...wobei t=TCP und u=UDP bedeutet (l=listen).
Code:
BusyBox v1.20.2 (2014-09-26 13:25:19 CEST) multi-call binary.

Usage: netstat [-ral] [-tuwx] [-enWp]

Display networking information

        -r      Routing table
        -a      All sockets
        -l      Listening sockets
                Else: connected sockets
        -t      TCP sockets
        -u      UDP sockets
        -w      Raw sockets
        -x      Unix sockets
                Else: all socket types
        -e      Other/more information
        -n      Don't resolve names
        -W      Wide display
        -p      Show PID/program name for sockets
Nimm also mal: netstat -tlep
Das zeigt dann: Server/Dienste auf TCP und die PID/Programmnamen der Dienste.

Das bedeutet aber nicht, das die für das Internet freigegeben, sondern schlicht schon belegt sind.
Läuft ein lokaler HTTPS Server auf Port 443 (ziemlich sicher sogar) kollidiert das mit deiner Freigabe.
Meine Empfehlung für einen SSH (dropbear) Port wäre: 22, 222, 2222 oder 22222

Die Fritz!Box Dienste, die geöffnete Ports zum Internet haben findest du hier: fritz.box/system/security.lua
 
Zuletzt bearbeitet:
Es geht aber lediglich 443 aus dem Netzwerk von dem der Zugriff erfolgen soll. Das hat auch alles mal funktioniert. Den Fritz-OS-Port habe ich ja auch schon geändert.
Wie bekomme ich den https von Fritz OS geschlossen, dass nur der dropbear offen bleibt?

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:51111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:51112 0.0.0.0:* LISTEN
tcp 0 0 localhost:avm-telefon 0.0.0.0:* LISTEN
tcp 0 0 localhost:avm-telefon 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:https 0.0.0.0:* LISTEN
tcp 0 0 :::49443 :::* LISTEN
tcp 0 0 :::sip :::* LISTEN
tcp 0 0 :::455 :::* LISTEN
tcp 0 0 :::5031 :::* LISTEN
tcp 0 0 :::49000 :::* LISTEN
tcp 0 0 :::www :::* LISTEN
tcp 0 0 :::freetz :::* LISTEN
tcp 0 0 :::wol :::* LISTEN
tcp 0 0 :::45428 :::* LISTEN
tcp 0 0 :::avm-telefon :::* LISTEN
tcp 0 0 :::8181 :::* LISTEN
tcp 0 0 :::domain :::* LISTEN
tcp 0 0 :::8182 :::* LISTEN
tcp 0 0 :::telnet :::* LISTEN
tcp 0 0 :::8183 :::* LISTEN
tcp 0 0 :::https :::* LISTEN


udp 0 0 fritz.box:56223 0.0.0.0:*
udp 0 0 fritz.box:41508 0.0.0.0:*
udp 0 0 0.0.0.0:bootps 0.0.0.0:*
udp 0 0 localhost:323 0.0.0.0:*
udp 0 0 fritz.box:1900 0.0.0.0:*
udp 0 0 0.0.0.0:1900 0.0.0.0:*
udp 0 0 fritz.box:1900 0.0.0.0:*
udp 0 0 0.0.0.0:1900 0.0.0.0:*
udp 0 0 fritz.box:1900 0.0.0.0:*
udp 0 0 0.0.0.0:1900 0.0.0.0:*
udp 0 0 0.0.0.0:ntp 0.0.0.0:*
udp 0 0 :::39430 :::*
udp 0 0 :::55693 :::*
udp 0 0 :::59277 :::*
udp 0 0 :::4500 :::*
udp 0 0 xxxx::xxxx:xxxx:xxxx:xxxx:51867 :::*
udp 0 0 :::34207 :::*
udp 0 0 :::7077 :::*
udp 0 0 :::5031 :::*
udp 0 0 :::55593 :::*
udp 0 0 :::domain :::*
udp 0 0 :::40121 :::*
udp 0 0 :::32826 :::*
udp 0 0 :::47170 :::*
udp 0 0 ::1:323 :::*
udp 0 0 :::sip :::*
udp 0 0 :::54760 :::*
udp 0 0 :::mdns :::*
udp 0 0 :::mdns :::*
udp 0 0 :::5355 :::*
udp 0 0 :::5355 :::*
udp 0 0 xxxx::xxxx:xxxx:xxxx:xxxx:1900 :::*
udp 0 0 :::1900 :::*
udp 0 0 xxxx::xxxx:xxxx:xxxx:xxxx:1900 :::*
udp 0 0 :::1900 :::*
udp 0 0 xxxx::xxxx:xxxx:xxxx:xxxx:1900 :::*
udp 0 0 :::1900 :::*
udp 0 0 :::isakmp :::*
udp 0 0 :::ntp :::*
udp 0 0 xxxx::xxxx:xxxx:xxxx:xxxx:51835 :::*
 
Ausschalten ist nicht, aber du kannst den Port für HTTPS hier ändern: fritz.box/internet/remote_https.lua
Zum Beispiel auf: 4433 oder 4443 oder 44443

Die Portnummern zeigt auch netstat an mit: netstat -ltnep
Hostnamen und Portnummern werden dann numerisch angezeigt.
Code:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
...
[B][COLOR=green]tcp        0      0 :::22                   :::*                    LISTEN      6494/dropbear[/COLOR][/B]
...
[B][COLOR=red]tcp        0      0 :::4443                 :::*                    LISTEN      1135/ctlmgr[/COLOR][/B]
 
Zuletzt bearbeitet:
Wenn ich mir das mit dem Befehl ansehe, sieht es aber so aus, als ob HTTPS nicht im Weg steht :(

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:51111 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:51112 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:1011 0.0.0.0:* LISTEN 1229/telefon
tcp 0 0 127.0.0.1:8888 0.0.0.0:* LISTEN 1229/telefon
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 7246/dropbear
tcp 0 0 :::49443 :::* LISTEN 830/upnpd
tcp 0 0 :::5060 :::* LISTEN 1288/voipd
tcp 0 0 :::455 :::* LISTEN 826/ctlmgr
tcp 0 0 :::5031 :::* LISTEN 1520/capiotcp_serve
tcp 0 0 :::49000 :::* LISTEN 830/upnpd
tcp 0 0 :::80 :::* LISTEN 826/ctlmgr
tcp 0 0 :::81 :::* LISTEN 1773/httpd-webcfg
tcp 0 0 :::84 :::* LISTEN 2691/httpd-wol
tcp 0 0 :::45428 :::* LISTEN 826/ctlmgr
tcp 0 0 :::1012 :::* LISTEN 1229/telefon
tcp 0 0 :::8181 :::* LISTEN 1719/contfiltd
tcp 0 0 :::53 :::* LISTEN 868/multid
tcp 0 0 :::8182 :::* LISTEN 826/ctlmgr
tcp 0 0 :::23 :::* LISTEN 1723/telnetd
tcp 0 0 :::8183 :::* LISTEN 826/ctlmgr
tcp 0 0 :::443 :::* LISTEN 7246/dropbear
 
Es sieht so aus, ja.
Aber ich würde meine Hand dafür nicht ins Feuer legen.
Vielleicht hat AVM trotzdem noch eine (Firewall) Regel aufgestellt die einen Zugriff auf diesen Port (443) verbietet,
wenn der Fernzugang nicht aktiv ist.

BTW: Wie und wo hast du denn den Port 443 fürs Internet freigegeben?

Um dropbear mal lokal zu testen kannst du ja mal mein rc Skript probieren.
Aber erst deinen dropbear beenden, und das Skript auf deine Pfade anpassen.
Damit kannst du die Startparameter erstmal lokal testen bevor es auf die "Strecke" geht. ;)
rc.dropbear
Code:
#!/bin/sh
local CMD=/var/media/NEW_LINK/mips/dropbear # Pfad zu dropbear
local OPTIONS="-R -m -p 22" # Startparameter fuer dropbear
local HELPTEXT="$(basename $0): [start|stop|restart]"
local PID=$(pidof dropbear)
start () {
$CMD $OPTIONS
}
stop () {
kill -1 $PID
}
restart () {
stop
sleep 1
start
}
case $1 in
start) start ;;
stop) stop ;;
restart) restart ;;
-h)echo $HELPTEXT ;;
--help)echo $HELPTEXT ;;
-?)echo $HELPTEXT ;;
*)echo $HELPTEXT ;;
esac
#EOF
...die Zertifikate werden mit -R "on the fly" erstellt.
Deswegen dauert der erste Zugriff "etwas länger".

Aufruf:
sh rc.dropbear start
sh rc.dropbear stop
sh rc.dropbear restart
sh rc.dropbear (gibt Hilfetext aus)
 
Zuletzt bearbeitet:
Ich habe es gelöst!

1. Musste auf einen x-beliebigen Port z.B. 466 den "Internetzugriff auf die FRITZ!Box über HTTPS aktiviert" in der Fritz-GUI aktivien.
-> Somit sind in Freetz AVM-Forwarding Einträge möglich.

2. Freetz AVM-Forwarding: Regel tcp Quelle 443, Ziel 443 eintragen

3. Freetz: Restart dropbear

4. Freetz: Restart dsld
 
Prima.

Dann noch den Post #1 bearbeiten, Erweitert klicken und Titelpräfix auf [Gelöst] setzen.
 
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.