Dropbear komplett mit OpenSSH ersetzen?

Was ändert sich denn an dropbear, wenn ich im OpenSSH Menü sftp auswähle? Ich meine, dass dropbear in der config gesagt wird wo er den sftp suchen soll.

MfG Oliver
 
Es wird in der Tat "nur der Pfad dafür gesetzt", sonst bleibt er leer/ungesetzt. Ich weiß nur nicht, ob man den auch setzen darf, wenn das sftp-Binary nicht da ist. Wenn das nichts ausmacht, könnte man den Pfad natürlich immer setzen...

In dropbear-options.h steht
Code:
  /* if you want to enable running an sftp server (such as the one included with
   * OpenSSH), set the path below. If the path isn't defined, sftp will not
   * be enabled */
  /*
was ich so interpretiert hatte, dass der Pfad nur gesetzt werden soll/darf, wenn sftp auch da ist...

Jörg
 
Code:
-DSFTPSERVER_PATH="\"/usr/lib/sftp-server\""

Dann brauchen wir die subopt doch wieder...

MfG Oliver

edit: Oh, das Flag steht ja schon drin. hab ich übersehen.
edit2: FREETZ_PACKAGE_DROPBEAR_SFTP_SERVER gehört ja eigentlich nicht in die Config.in von OpenSSH, ja ich weiß warum das verschoben wurde...
 
edit2: FREETZ_PACKAGE_DROPBEAR_SFTP_SERVER gehört ja eigentlich nicht in die Config.in von OpenSSH, ja ich weiß warum das verschoben wurde...
Namen sind Schall und Rauch ;-) ... Das kann ja auch "FREETZ_OPENSSH_DROPBEAR_SFTP_SERVER" oder wie auch immer heißen. Nur wenn man tatsächlich das Define nur mit SFTP-Server haben muss, müsste das Dropbear .mk von einer Option aus einem anderen Paket "abhängen".

Alternative ist eine "unsichtbare" bool-Option (vielleicht wieder FREETZ_PACKAGE_DROPBEAR_SFTP_SERVER), die vom OpenSSH "FREETZ_OPENSSH_DROPBEAR_SFTP_SERVER" gesetzt wird und zugleich davon abhängt (das sollte eine 1:1 Abhängigkeit ergeben???)

Jörg
EDIT: Alternative 2 (die hatte ich auch schon überlegt): Die Option im dropbear ergänzt nur den Pfad, den SFTP-Server muss man zusätzlich "von Hand" beim OpenSSH auswählen. Wobei wir aber wieder bei dem Probelm sind, ob dropbear problemlos liefe, wenn der Pfad zum sftp-bin gesetzt ist, diese aber nicht existiert...
 
Super, dass OpenSSH jetzt als normaler Daemon zur Verfügung steht.

@olistudent: mein Grund warum ich OpenSSH gegenüber dropbear bevorzuge ist schlicht und einfach das privilege separation von OpenSSH.

Generell: der jetzige Stand funktioniert noch nicht, da die Voraussetzungen für priv-sep noch nicht gegeben sind.

Ich habe schon einen Patch fertig, der priv-sep einrichtet und das Problem mit ssh-keygen (openssh startet nicht, wenn ssh-keygen nicht im Image ist) behebt - ich habe mehrere Web-Einträge fúr die Hostkeys.

Erst will ich den Patch aber noch testen.

Ciao
Stephan
 
Hier der versprochene Patch.

Alles in allem funktioniert sshd damit. Ausnahme ist das login :p

Laut Debug messages kann man sich einloggen, aber sshd schmeißt mich wieder raus, da /var die Rechte 777 hat.

Siehe openssh code auth.c
Code:
        /* check the open file to avoid races */
        if (fstat(fileno(f), &st) < 0 ||
            (st.st_uid != 0 && st.st_uid != uid) ||
            (st.st_mode & 022) != 0) {
                snprintf(err, errlen, "bad ownership or modes for file %s",
                    buf);
                return -1;
        }

Den müßten wir entfernen. Welche Implikationen hat dies? Hm, Kommentare?

Weiterhin: die derzeitige Lösung mit den authorized_keys ist unbefriedigend. Man kann keine normalen Nutzer mit auth keys verwenden, bzw. alle nutzen die GLEICHE authorized_keys Datei!

Problem ist jetzt aber, dass dropbear einen Link von ~root/.ssh nach /tmp/flash/dropbear setzt (damit haben wir ein Problem, wenn wir die auth_keys Datei nicht entsprechend in sshd_config setzen). Was können wir tun:

- link entfernen und auf unseres Verzeichnis verlinken (die auth_keys Datei wird über die OpenSSH Seite konfiguriert; dropbear konfig ist nicht mehr aktiv)

- link lassen und nur bei nichtvorhandensein wird der Link gesetzt (es ist nicht deterministisch, welches webfrontend konfiguriert die auth_key Datei)

- ein komplett neues Package erstellen, welches immer von OpenSSH und dropbear angezogen wird, mit dem die auth_keys gesetzt/bearbeitet wird

Ich bin für letzteres.

Ciao
Stephan
 

Anhänge

  • openssh-20090814.patch.bz2
    2.2 KB · Aufrufe: 2
Info

Bekomme mit dem trunk 3574, beim Kompilieren folgende Fehlermeldung:
Code:
.................
checking for libgen.h... (cached) yes
checking for getspnam... (cached) yes
checking for library containing basename... (cached) none required
checking for deflate in -lz... yes
checking for zlib.h... (cached) no
configure: error: *** zlib.h missing - please install first or check config.log ***
make: *** [[COLOR="Red"]source/openssh-5.2p1/.configured[/COLOR]] Fehler 1
Neu ausgecheckt und dann "make menuconfig". Im Anhang meine .config
 

Anhänge

  • config.txt
    20.8 KB · Aufrufe: 6
Hm, das ist unschön. Da hat ein Paket "zlib = no" in der make/config.cache gespeichert... Lösch die mal.

MfG Oliver
 
Das war's. Danke.
 
Hier der Rest der Patches:

- alles von meinem vorherigem Patch enthalten

- OpenSSH erlaubt key-based auth

- entfernen aller authorized_keys admin-Schnittstellen aus OpenSSH und dropbear

- neues authorized_keys webfrontend, welches für beliebige benutzer funktioniert

Ciao
Stephan
 

Anhänge

  • authorized-keys-20090818.patch.bz2
    2.6 KB · Aufrufe: 5
  • dropbear_authkey-2090818.patch.bz2
    909 Bytes · Aufrufe: 4
  • freetz-authkey-20090818.patch.bz2
    298 Bytes · Aufrufe: 5
  • openssh-authkey-20090818.patch.bz2
    2.6 KB · Aufrufe: 5
Gibt es irgendwelche Bedenken zu den Patches, speziell zum Update der Freetz API? Wenn nicht, würde ich gerne um die Aufnahme der Patches ins SVN bitten.

Danke
Stephan
 
Kann ich so leider nicht absehen, sonst hätte ich das schon eingebaut. Nur nutze ich kein openssh auf der Box und sehe zumindest bei mir die Notwendigkeit nicht, und aufgrund des nicht allzu hohen WAF kann ich grad auch nicht testen ;)
 
Ok bezüglich OpenSSH - wie steht es aber mit den auth keys? Dies betrifft ja auch dropbear

Danke
Stephan
 
Hi,

wollte deine Patches gerne ausprobieren und bin auf folgende Fehlermeldung gestossen:

Code:
vmplanet@ubuntu-vm:~/freetz/7270_16MB-freetz-trunk$ make menuconfig
make/dropbear/Config.in:4:warning: 'select' used by config symbol 'FREETZ_PACKAGE_DROPBEAR' refer to undefined symbol 'FREETZ_PACKAGE_AUTHORIZED_KEYS'
make/openssh/Config.in:8:warning: 'select' used by config symbol 'FREETZ_PACKAGE_OPENSSH' refer to undefined symbol 'FREETZ_PACKAGE_AUTHORIZED_KEYS'

Ich denke es fehlt im Patch noch ein "source make/authorized-keys/Config.in" in make/Config.in


Bzgl. PrivilegeSeparation:
Die Option einfach abzuschalten halte ich nur ein Workaround, ist immerhin ein wichtiges Sicherheitsfeature und aus meiner Sicht einer der wenigen Vorteile von Openssh gegenüber Dropbear.
Spricht was dagegen, den User ssh einfach anzulegen?
 
Zuletzt bearbeitet:
Hi,

wollte deine Patches gerne ausprobieren und bin auf folgende Fehlermeldung gestossen:

Ich denke es fehlt im Patch noch ein "source make/authorized-keys/Config.in" in make/Config.in

Dies ist richtig, dass dies fehlt - aus Netiquette habe ich die make/Config.in in meinen Patches nie angefasst. Ich bin mir halt nicht so sicher, ob meine Patches die ändern sollte. Aber der von dir angegebene Eintrag löst dieses Problem.

Bzgl. PrivilegeSeparation:
Die Option einfach abzuschalten halte ich nur ein Workaround, ist immerhin ein wichtiges Sicherheitsfeature und aus meiner Sicht einer der wenigen Vorteile von Openssh gegenüber Dropbear.
Spricht was dagegen, den User ssh einfach anzulegen?

Teil meines Patches IST das anlegen des Benutzers sshd. Und damit ist privsep aktiv. :) Ein Ziel meiner Patches ist es die Box auch etwas sicherer zu machen ;-)

Ciao
Stephan
 
@mehle: Ohne make/Config.in werden keinerlei Pakete im menuconfig angezeigt. Somit musst du sie "anfassen", wenn du neue Pakete hinzufügst.
 
Ok, thx.

Ich bekomme im WebIF noch Fehler beim Zugriff auf OpenSSH: pub_dsa_key und OpenSSH: pub_rsa_key. Die beiden private Keys funktionieren und werden angezeigt.
Klick auf authorized_keys geht auch nicht, und resultiert in die gleiche Fehlermeldung:

Code:
Konfiguration in der aktuellen Sicherheitsstufe nicht verfügbar!

Fehler: Unbekannter Typ ''

Und es liegt nicht am Wert in /tmp/flash/security ;-)

Dachte zuerst, dass es an den fehlenden Links in /var/mod/etc/ssh liegt, anlegen hat aber nichts gebracht. Ich such mal, ob ich finde woran es liegt...

Nachtrag:
In der /mod/etc/reg/file.reg wird auf 2 Files verwiesen, die es gar nicht gibt:
openssh__pub_dsa_key|OpenSSH: pub_dsa_key|0|/mod/etc/default.openssh/pub_dsa_key.def
openssh__pub_rsa_key|OpenSSH: pub_rsa_key|0|/mod/etc/default.openssh/pub_rsa_key.def
 
Zuletzt bearbeitet:
Danke, mir schon klar wozu die make/Config.in da ist - ich werde die beim kommenden mal mit im Patch haben :)
 
Klick auf authorized_keys geht auch nicht, und resultiert in die gleiche Fehlermeldung:

Schau mal bitte, ob in freetz-trunk/packages das Verzeichnis authorized-keys auftaucht. Dies ist wichtig (im Endeffekt musst du alle 4 Patches von oben einspielen).

In der /mod/etc/reg/file.reg wird auf 2 Files verwiesen, die es gar nicht gibt:
openssh__pub_dsa_key|OpenSSH: pub_dsa_key|0|/mod/etc/default.openssh/pub_dsa_key.def
openssh__pub_rsa_key|OpenSSH: pub_rsa_key|0|/mod/etc/default.openssh/pub_rsa_key.def

Danke für den Hinweis - diese Einträge sind nicht notwendig, ein Überbleibsel von meiner Entwicklung - ist bei mir nun gelöscht und neuer Patch kommt nach deiner Antwort zu obigen Problem.

Update: Natürlich musst du noch die Referenz auf authorized-keys/Config.in in make/Config.in setzen :)

Danke
Stephan
 
Ich denke es liegt an der 0-Byte-Datei authorized_keys.def, ich nehme an die sollte eigentlcih gelöscht, bzw. ins package authorized-keys verschoben sein.
Leider lsöcht patch Dateien nicht, hatte ich schon öfters :(

Code:
vmplanet@ubuntu-vm:~/freetz/7270_16MB-freetz-trunk/packages/openssh-5.2p1/root/etc/default.openssh$ ls -l
total 16
-rw-r--r-- 1 vmplanet vmplanet    0 2009-08-19 05:02 authorized_keys.def
-rw-r--r-- 1 vmplanet vmplanet 1161 2009-08-19 05:02 dsa_key.def
-rw-r--r-- 1 vmplanet vmplanet  463 2009-08-19 05:02 openssh.cfg
-rw-r--r-- 1 vmplanet vmplanet  306 2009-07-27 03:00 openssh.inetd
-rw-r--r-- 1 vmplanet vmplanet 1161 2009-08-19 05:02 rsa_key.def

MIt der leeren def-Datei wird dann zwar authorized keyds per modreg file registriert, aber es landet keine Zeile dafür in /mod/etc/reg/file.reg.

Ich lösch mal und mache ein neues Image, dann meld ich mich nochmals.

Was mir noch aufgefallen ist: in rc.openssh werden zwar 4 Keys registriert, beim Stop aber nur 2 unregistriert.
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,427
Beiträge
2,251,934
Mitglieder
374,165
Neuestes Mitglied
fanishshukla
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.