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

Diese Datei, so wie sie ist, muss auf den PC (die "Leerzeichen" sind übrigens nicht darstellbare Zeichen, deshalb der ganze Aufwand mit dem uuencode und uudecode).

Also: Datei "binär" auf den Webserver und direkt binär von da wieder zurück laden laden, oder den Inhalt der Datei "uuencoden" und das in der debug.cfg abspecheichern.

in der debug.cfg muss dann also stehen:
Code:
[...]
# den "encodierten" Inhalt schreiben
cat << 'END_db_key' > /var/tmp/key_uu
# hier jetzt das Ergebnis von
# uuencode /var/tmp/dropbear_rsa_hostkey /var/tmp/dropbear_rsa_hostkey
# und dann abschließen mit einer Zeile,
# die nur allein "END_db_key" enthält
END_db_key
# und dann die neue Datei /var/tmp/key_uu, die den codiertek key
# enthält, decodieren mit
uudecode /var/tmp/key_uu
[...]

oder (etwas einfacher, wie schon zuvor beschrieben) alles in einem (ohne Zwischendatei)
Code:
[...]
uudecode << 'END_db_key'
# hier jetzt das Ergebnis von
# uuencode /var/tmp/dropbear_rsa_hostkey /var/tmp/dropbear_rsa_hostkey
# und dann abschließen mit einer Zeile,
# die nur allein "END_db_key" enthält
END_db_key
[...]
"In echt" sollte das dann in etwa so aussehen in der debug.cfg
Code:
uudecode << 'END_db_key'
begin 600 /var/tmp/dropbear_rsa_hostkey
M````!W-S:"UR<V$````#`0`!````@FN9#%%25S^+T9EZ^\YRN/FQC=$H]"B8
MJ9)LP:,;N,@^KJUJ$OH=02FM<6&SP%@HY?^=6@G8J&K,)0!28LI!G8FC5]V:
MHL4A=\UXO%S%V4L*VCI-\X]T\/F!9EI%:/]6$$3EU\*IC__&+#Y>Z^JCANV%
M^>\?1+#^^MFVHO]9\M^ZE_4```""+X`-5`E)PQ_RE!,:_O3>?#S*(L`UJ89;
MM>R5/W")CKT]6`DO_X+2M9>`*F6T4#<=\DZ`Y3_D>>%-I&JZ>A>E>)$TF:/7
M)/P>6V-Y%M0U5F7=Y`):ZN<$R_O_P9LQ]4@*5#BP[2]UR*7H-;^"KU3-ITSB
M>(C33.EM,0)1ZCC[<\V#L0```$(`ET)]L1UI/J[?I87OJ)""/W:3FV0>N18/
M0Y:<N05IJ41GIR#=[)J(KDR?J^S@;="=A"MWE_BKX0E*A3MCG*1HUW\```!"
M`+8:L[]^V,IR[)/O+0([\$WQQ<`DSJH<D$L0)SCQNMKIK$,.*IN2E/#YR*DG
5M2X'BQRSN_3?)0D60?CJC/W/[6J+
`
end
END_db_key

Jörg
 
Zuletzt bearbeitet:
Guten Morgen,

meine debug.cfg beinhaltet ja eigentlich bereits den generierten Schlüssel, daher auch die Frage ob´s anders rum geht. Hab mich gestern zudem mit dem Thema "Wake on Call" auseinander gesetzt. Bis auf dass der Rechner bei allen Anrufern & auf allen Leitungen immer geweckt wird läuft es, allerdings möchte ich das auch noch in den Griff bekommen, wer mir also auch diesbezüglich helfen könnte, findet hier noch genauere Informationen.

Vielen Dank für eure Unterstützung. Bzgl. ppk werde ich mich heut abend auch nochmal dran setzen & mich wieder melden...

MfG Mick
 
Zuletzt bearbeitet:
Benutzer = root wird akzeptiert, nur mein vorher erstelltes Passwort macht Probleme. Den Hashwert habe ich hier: http://www.germanja.de/index.php?iframepg=/docphp/calc_crypto.php erstellt (A# Crypt..). Port 22 ist offen, nur das Passwort für die Anmeldung wird nicht akzeptiert. Habt ihr eine Idee für mich??

Du möchtest also aus dem bekannten Passwort (z.B. für root) den Hashwert anlegen, wie er z.B. in der shadow-Datei liegt??
Wenn du mit "rudimentärer" Sicherheit bezüglich der Zufälligkeit des seeds für den Hashwert leben kannst, könntest du dir das statisch compilierte Dropbear aus dem speet-to-fritz ansehen. Das hat die minimale zusätzliche "Verschlüsselungsoption" pwcrypt, die z.B. für ein PW so funktioniert:

Code:
#!/bin/sh
if [ ! "$1" ]; then
        echo "Simple startup script for dropbear deamon. Usage: $0 <root_password>"
        exit 0
fi
echo 'root:'`pwcrypt $1`':12332:0:99999:7:::' > /etc/shadow

Damit man nachvollziehen kann, dass es weder besonders toll programmiert ist, noch dass ich da (zumindest bewusst ) keine Backdoor reingebaut habe:
Code:
joerg@joerg-desktop:~/freetz4-s2f$ cat make/dropbear/patches/300-add-pwcrypt.patch 
--- Makefile.in	2009-09-21 19:14:12.000000000 +0200
+++ Makefile.in	2009-09-21 19:17:07.000000000 +0200
@@ -42,6 +42,8 @@
 
 SCPOBJS=scp.o progressmeter.o atomicio.o scpmisc.o
 
+PWCRYPTOBJS=pwcrypt.o
+
 HEADERS=options.h dbutil.h session.h packet.h algo.h ssh.h buffer.h kex.h \
 		dss.h bignum.h signkey.h rsa.h random.h service.h auth.h \
 		debug.h channel.h chansession.h config.h queue.h sshpty.h \
@@ -54,6 +56,7 @@
 dropbearkeyobjs=$(COMMONOBJS) $(KEYOBJS)
 dropbearconvertobjs=$(COMMONOBJS) $(CONVERTOBJS)
 scpobjs=$(SCPOBJS)
+pwcryptobjs=$(PWCRYPTOBJS)
 
 VPATH=@srcdir@
 srcdir=@srcdir@
@@ -152,8 +155,9 @@
 dbclient: $(dbclientobjs)
 dropbearkey: $(dropbearkeyobjs)
 dropbearconvert: $(dropbearconvertobjs)
+pwcrypt: $(pwcryptobjs)
 
-dropbear dbclient dropbearkey dropbearconvert: $(HEADERS)  $(LTC) $(LTM) \
+dropbear dbclient dropbearkey dropbearconvert pwcrypt: $(HEADERS)  $(LTC) $(LTM) \
 													Makefile
 	$(CC) $(LDFLAGS) -o $@$(EXEEXT) $($@objs) $(LIBS)
 
--- dbmulti.c	2009-09-21 19:19:54.000000000 +0200
+++ dbmulti.c	2009-09-21 19:21:35.000000000 +0200
@@ -64,6 +64,11 @@
 			return scp_main(argc, argv);
 		}
 #endif
+#ifdef DBMULTI_pwcrypt
+		if (strcmp(progname, "pwcrypt") == 0) {
+			return pwcrypt_main(argc, argv);
+		}
+#endif
 	}
 
 	fprintf(stderr, "Dropbear multi-purpose version %s\n"
@@ -83,6 +88,9 @@
 #ifdef DBMULTI_scp
 			"'scp' - secure copy\n"
 #endif
+#ifdef DBMULTI_pwcrypt
+			"'pwcrypt' - a very simple password crypter\n"
+#endif
 			,
 			DROPBEAR_VERSION);
 	exit(1);
--- pwcrypt.c	1970-01-01 01:00:00.000000000 +0100
+++ pwcrypt.c	2009-09-21 19:19:00.000000000 +0200
@@ -0,0 +1,19 @@
+/* pwcrypt: crypt pw */ 
+#include <stdio.h>
+#include <crypt.h>
+
+int pwcrypt_main(int argc, char *argv[]) {
+if (argc != 2)
+{
+printf("pwcrypt (a VERY simple password crypter ;-)). Usage: %s Passw_to_encrypt\n",argv[0]);
+return 1;
+}
+int i,j=time(NULL)+1;
+char salt[] = "$1$........$";
+const char *const seedchars ="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ./";
+for (i = 0; i < 8; i++){ j=j*time(NULL)+1;
+         salt[3+i] = seedchars[ (j^j*i) & 0x3f ];}
+/*         printf("salt: %s\n",salt);*/
+printf("%s\n",crypt(argv[1], salt));
+return 0 ;
+}
\ Kein Zeilenumbruch am Dateiende.
joerg@joerg-desktop:~/freetz4-s2f$

Auch nochmal als Datei, falls es jemand nachbauen möchte (diese Datei (ohne .txt am Ende) im freetz in das patches Verzeichnis von Dropbear und im dropbear.mk "pwcrypt" zu den DROPBEAR_MAKE_OPTIONS hinzufügen)

Jörg
 

Anhänge

  • 300-add-pwcrypt.patch.txt
    2.2 KB · Aufrufe: 5
Zuletzt bearbeitet:
Hallo MaxMuster,

das Problem mit dem erstellen des Hashwertes aus meinem Passwort konnte ich bereits lösen. Nun würde ich zusätzl. gern die Möglichkeit haben, mich mit einem ppk Schlüssel anzumelden.

Hier der Auszug aus meiner funktionierenden debug.cfg

.............
# SSH Server

# Symlink fuer dropbearkey erstellen
ln -s /var/tmp/dropbear dropbearkey
ln -s /var/tmp/busybox etherwake
ln -s /var/tmp/busybox uudecode
ln -s /var/tmp/busybox uuencode

# virtuelle Netzwerkkarte einrichten
ifconfig eth0:1 192.168.178.253 up


# Dropbear HostKeys
/var/tmp/uudecode -o /var/tmp/dropbear_rsa_host_key <<\EOP
begin 600 /var/tmp/dropbear_rsa_host_key
...........M"1VZ&PU62:6*3F@9AW+]?G*W`+A=#\\Z36/_YQ!22&HX`TY`TSDRW[D```!"M`)<9?$O"6<:`%9!8R%`B*(/L,#-_LIL%Z
W>@,GPK?F/G*G#%:mad:Z$8U$96J\;5VNP0B>2J@U%XA$]5........-
`
end
EOP
/var/tmp/uudecode -o /var/tmp/dropbear_dss_host_key <<\EOP
begin 600 /var/tmp/dropbear_dss_host_key
...........................................................]<.Q.UW*P```($`L4(>>/9+T/B`
MUZ1BCAV=)SQWM][7L;&POTD_;1E$T?&[email protected]/I$`&@RV!<F!;P^SI
MT%2@FLT+JCX;MR2C8Y[)=KZ=Z2>_+SL+2KR8F-J49T=`$ECK6&DYP,6[RZ8E
MIJWD!,V0\E-O];*=$)JN=^LV(M4#]D(2U0.............................................
(S!)-%BN.);,`
`
end
EOP

# Dropbear starten
/var/tmp/dropbear -p $dropbearport -r /var/tmp/dropbear_rsa_host_key -d /var/tmp/dropbear_dss_host_key
...................

Wie gesagt, Dropbar läuft stabil & auch die SSH Anmeldung via Putty mit Passwort funktioniert problemlos. Nun versuche ich mit Dropbear nur noch die zusätzl. Anmeldung via ppk Schlüssel zu realisieren.

Grüße Mick
 
Zuletzt bearbeitet:
Guten Abend @all,

brauch doch noch mal Hilfe von euch, da ich meine soweit funktionierende debug nicht gleich wieder komplett zerlegen wollte.

Ich bin jetzt folgendermaßen vorgegangen:

1) Puttygen gestartet > auf "Generate" gegangen & wild mit der Maus gefuchtelt um einen Zufallsschlüssel zu generieren

2) Key Comment: eine allgemeine Info hinterlegt

3) Key Passphrase / Passwort hinterlegt & bestätigt

4) Public Key (mypublic)+ Private Key (myprivate.ppk) lokal gespeichert

5) Inhalt des oberen Keyfensters kopiert & gespeichert (copy)

Nun die Frage aller Fragen, was ist was?? Was muss jetzt wie mit welchem Befehl umgewandelt & in die debug.cfg eingefügt werden.

Zudem denke ich mal, dass ja der Inhalt fest in die debug geschrieben werden soll und nicht jedes mal neu generiert werden muss. Möchte ja auch nicht jedes Mal nen neuen Schlüssel für Putty verwenden müssen.

Wo die Datei in Putty eingefügt werden muss, habe ich bereits rausbekommen. Wäre also nun noch super, wenn mir jemand erklären könnte, was wie wo gemacht werden muss, um die Schlüssel im richtigen Format in der debug.cfg zu hinterlegen.

Vielen Dank & Gruß

Mick
 
Hallo JoJo,

erstmal Danke für deine Unterstützung, allerdings hilft mit das noch nicht wirklich, da weder ich noch meine Fritzbox was mit den ssh befehlen anfangen können.

Kannst es mir genauer erklären, was ich wie umwandeln & wo in die debug einfügen muss.

Grüße Mick
 
Du solltest Dir wirklich zumindest das Prinzip etwas genauer durchlesen, damit Du weißt, was Du tust.

Du brauchst hier zwei verschiedene Schlüssel, vielleicht ist das Dein Problem.
Der Server hat einen Schlüssel, mit dem er sich dem Client gegenüber ausweist. Die Gründe hierfür zu erläutern würde zu weit führen, aber es ist wichtig, daß es so ist.
Der Client muß sich auch ausweisen, damit er Zugang bekommt. Dafür kann man entweder ein Paßwort verwenden, oder einen selbst erstellten Schlüssel. Der öffentliche Teil des mit Puttygen erstellen Schlüssels muß auf der Box in der Datei ~/.ssh/authorized_keys abgelegt werden, damit er vom Server verwendet werden kann.

Du mußt also dafür sorgen, daß nach einem Neustart beide Schlüssel auf der Box wieder hergestellt werden.
 
Der öffentliche Teil des mit Puttygen erstellen Schlüssels muß auf der Box in der Datei ~/.ssh/authorized_keys abgelegt werden, damit er vom Server verwendet werden kann.

welcher ist der öffentl. Teil (Public Key =mypublic)?? Muss dieser ebenfalls nochmal umgewandelt werden od. genügt es diesen einfach mit cat in die ~/.ssh/authorized Keys zu kopieren. Welchen Schlüssel muss ich dann noch in die debug.cfg einfügen??

aahhh, jetzt kommt langsam Licht ins Dunkle.... wer ebenfalls mehr Infos braucht, wird hier oder hier sicher fündig.
 
Zuletzt bearbeitet:
ok. Werde mich heut abend nochmal ransetzen. Jetzt sollte ich wissen, was ich tue & warum... ;)

EDIT: Problem gefunden & behoben. Habe den Inhalt des Puttygen Fensters kopiert & in die /.ssh/authorized_keys kopiert. Man muss nun nur noch das Home Verzeichnis (vom root) ändern & schon läuft´s. Ne Frage zum Thema Sicherheit. Wie sicher ist ein SSH Passwort, welches aus 5+2 Sonderzeichen besteht. Zudem habe ich gesehen, dass bei der ppk Anmeldung auch auf ein Passwort verzichtet werden kann. Wie sicher ist das ganze dann??

Grüße Mick
 
Zuletzt bearbeitet:
Guten Abend,

die ssh Anmeldung funtioniert nun auch mit ppk Schlüssel. Meine debug.cfg erstellt eine key datei & kopiert diese in die authorzized_keys. Der Schlüssel ansich brauchte nicht wie oben geschrieben in die debug.cfg geschrieben werden, ergibt sich für mich da irgendwelche Nachteile??

Grüße
 
Ja - Du erzeugst Dir dann bei jedem Start einen neuen Key, was eigentlich nicht Sinn der Sache ist.
 
Warum?? Gibt es Nachteile/Einschränkungen in der Sicherheit??:(
 
Ja.
Die kurze Antwort: Warum braucht der Server überhaupt einen Key, wenn der Client nicht wissen kann, ob es der richtige Key ist.
Für die ausführlichere Antwort solltest Du Dich gründlich in die Problematik einlesen, da gibt es mehr als genug Informationen dazu.
 
Warum ich nen Key brauche ist schon klar. Was mir nur nicht einleuchtet warum ich jedes mal nen neuen generieren u. in die authorized_keys kopieren soll. Kann ja auch immer den gleichen Schluessel über die debug reinkopieren lassen. Was spricht dagegen?
 
Genau so ist es doch, Du sollte eben nicht jedesmal einen neuen Key generieren, sondern immer denselben nutzen
 
na ja egal, ich glaub wir haben aneinander vorbeigesprochen. trotzdem danke
 
Ich habe es nun endlich geschafft und habe meine Wunschkonfiguration am laufen

ich wollte mich noch mal für die sehr gute Hilfe von
MaxMuster, h3po, rdislav, jojo-schmitz und RalfFriedl bedanken

:groesste:


ohne eure Hilfe wäre ich nie zum Ziel gekommen


DANKE
 
Ich muss leider wieder mit einem kleinen Problem zu euch kommen

wenn ich dropbear von "http://h3po.de/public/fritz.box/dropbearmulti"
mit wget in der debug.cfg lade und verwende funktioniert alles

"./dropbearmulti -h" gibt dann auch keinen fehler zurück

sobald ich aber die url in den Browser eingebe
die Datei herunterlade
und mit Filezilla auf meinen eigenen Server lade
und die Datei dann von dort aus mithilfe der debug.cfg lade
fuktioniert sie nicht mehr

"./dropbearmulti -h" gibt dann "Segmentation fault" zurück

ich hab das ganze unter Win7 und mit einem Linux system Durchgeführt
weil ich befürchtet hatte das Win die Datei verändert
beides hat leider zum selben ergebniss geführt

was mache ich falsch bzw. wie bekomme ich die Datei unbeschädigt auf meinen Server ?
MfG UziEL
 
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.