Dropbear

„Dropbear is a relatively small SSH 2 server and client. […] Dropbear is particularly useful for „embedded“-type Linux (or other Unix) systems, such as wireless routers.“ http://matt.ucc.asn.au/dropbear/dropbear.html

Dropbear ist ein SSH Server und Client + SCP. Es gibt zwei Pakete: dropbear Server, Client und scp und ein auf den dropbear Server beschränktes Paket. Dropbear wurde so modifiziert, dass nur root Logins erlaubt sind.

Grundbegriffe

  • SSH (Secure Shell): ermöglicht eine Verbindung zwischen zwei Rechnern (als sichere Alternative zu z.B. telnet). Dabei baut ein SSH-Client (z.B. PuTTY, OpenSSH, Dropbear) eine verschlüsselte Verbindung zu einem SSH-Server (z.B. OpenSSH, Dropbear) nach einer erfolgreichen Authentifizierung auf.
    Die Howtos beziehen sich größtenteils auf 2 SSH-Clients:
  • SCP (Secure Copy): ermöglicht verschlüsselte Übertragung von Dateien zwischen zwei Rechnern. Dabei baut ein SCP-Client (z.B. PSCP, OpenSSH, Dropbear) eine verschlüsselte Verbindung zu einem SCP-Server (z.B. OpenSSH, Dropbear) über SSH auf.
  • Password-based Authentication: SSH-Verbindung kommt zustande, nachdem sich der (SSH-)Client mit einem Passwort authentifiziert hat.
    # ssh user@host
    user@host's password:
    # scp [user@host:]file_to_copy [user@host:]target_path
    user@host's password:
    file_to_copy     100%     20KB/s     00:10
  • Host-based Authentication: SSH-Verbindung kommt zustande, nachdem sich der (SSH-)Client mit einem Private Key (geheimen Schlüssel) gegenüber einem auf dem (SSH-)Server bzw. Host abgelegten Public Key (öffentlichen Schlüssel) authentifiziert hat.
    # ssh user@host
    Authenticating with public key "rsa-key-XXXXXXXX"
    # scp [user@host:]file_to_copy [user@host:]target_path
    Authenticating with public key "rsa-key-XXXXXXXX"
    file_to_copy     100%     20KB/s     00:10

Web-Config

  • Starttyp: wahlweise bei Systemstart (automatisch) oder manuell
  • Authorized keys: Liste bekannter Public Keys für die Host-based Authentication. Entspricht in der Syntax und Funktion genau der Datei ~/.ssh/authorized_keys bei einer normalen Unix-Installation. weitere Details
  • Port des SSH-Servers (default: 22): Änderung des Standardports hat zur Folge, dass bei SSH-Clients explizit der Port angegeben werden muss.
  • Passwort Login: aktiviert oder deaktiviert Password-based Authentication. Sollte deaktiviert werden, wenn Host-based Authentication verwendet wird.
  • Zusätzliche Kommandozeilen-Optionen: Dropbear wird mit bestimmten Optionen gestartet. Übersicht über Optionen mit
    dropbear -?

SSH-Zugang mit Passwort (Password-based Authentication)

Das ist die Standardeinstellung im Dropbear. Ohne weitere Einstellungen kann die Fritzbox folgendermaßen über SSH erreicht werden:

Zugang mit OpenSSH

# ssh root@fritz.box\\
root@fritz.box's password: fritzbox

Zugang mit OpenSSH bei neuen freetz Builds

# ssh root@fritz.box\\
root@fritz.box's password: freetz

Zugang mit Putty

  1. Einstellungen setzen
    Session/Host Name: fritz.box
    Session/Port: 22
    (bzw. die Einstellung unter Pakete, Dropbear)
    Session/Protocol: SSH
    Connection/Data/Auto-login username: root
  2. Einstellungen speichern (optional)
    bei Session, Saved Sessions beliebigen Namen (z.B. fritzbox ssh) eingeben und Save drücken. Ab sofort kann dann per Doppelklick auf den Namen die Verbindung aufgebaut werden (oder die Einstellungen mit Load geladen werden)
  3. Open
  4. root@fritz.box's password: fritzbox

Wichtig: Bei den neuen freetz Paketen ist das Standard root Passwort nicht mehr fritzbox, sondern freetz und muss nach dem ersten Einloggen geändert werden.

SSH-Zugang ohne Passwort (Host-based Authentication)

Zugang mit OpenSSH

  1. ssh-keygen, alle Abfragen mit Enter bestätigen
  2. cat ~/.ssh/id_rsa.pub
  3. Ausgabe von cat kopieren
    Vorsicht: Je nach verwendeter Kommandozeile können Zeilenumbrüche mitkopiert werden, welche mit Hilfe eines Editors (Key in Editor kopieren, Zeilenumbrüche entfernen, Key wieder kopieren) entfernt werden sollten.
  4. Webinterface vom ds-mod öffnen, nach Einstellungen, Authorized keys wechseln
  5. vorher kopierten Key einfügen, Übernehmen
  6. nun sind die serverseitigen Einstellungen abgeschlossen. Es gibt nun 2 Möglichkeiten zum Einloggen:
    • Zugang vom selben PC und User, unter dem ssh-keygen ausgeführt worden ist
      ssh root@fritz.box
    • Zugang von anderen PC oder User als ssh-keygen ausgeführt worden ist
      Wurde ssh-keygen als user1@pc1 ausgeführt, man möchte jetzt jedoch als user2@pc2 Zugang über SSH auf die Fritzbox erhalten, liegt das Problem darin, dass Dropbear user2@pc2 nicht kennen kann. Deshalb braucht user2 einen Ausweis, den ssh-keygen standardmäßig im Heimatverzeichnis von user1 ~/.ssh/id_rsa ablegt und user2 zugänglich gemacht werden muss. id_rsa kann dann beliebig umbenannt werden. Zum Einloggen über SSH auf die Fritzbox kann nun über ssh -i PfadZumIdentityFile root@fritz.box erfolgen (z.B. ssh -i id_rsa root@fritz.box).
      Soll es jedoch genauso einfach gehen wie für user1@pc1 muss einfach nur für jede Konstellation (user1@pc2, user2@pc1, …) ssh-keygen genutzt werden um neue Schlüsselpaare zu erzeugen. Die öffentlichen Schlüssel davon (i.d.R. id_rsa.pub) sind dann wieder in der ds-mod einzutragen. Jeder Schlüssel in eine eigene Zeile. Es können quasi unendlich viele Schlüssel aufgelistet werden.

Zugang mit Putty

  1. puttygen starten
  2. Key/Generate Key Pair
  3. Maus über die leere Fläche bewegen
  4. aus der Box Public Key for pasting into … Key komplett kopieren
  5. Save Private Key, Warnung übergehen und in einem beliebigem Verzeichnis mit beliebigem Namen speichern
  6. Webinterface vom ds-mod öffnen, nach Einstellungen, Authorized keys wechseln
  7. vorher kopierten Key einfügen, Übernehmen
  8. putty starten
  9. Einstellungen setzen
    Session/Host Name: fritz.box
    Session/Port: 22
    (bzw. die Einstellung unter Pakete, Dropbear)
    Session/Protocol: SSH
    Connection/Data/Auto-login username: root
    Connection/SSH/Auth/Private key file for authentication: Pfad zum vorher gespeichertem Private Key
  10. Einstellungen speichern (optional)
    bei Session, Saved Sessions beliebigen Namen (z.B. fritzbox ssh) eingeben und Save drücken. Ab sofort kann dann per Doppelklick auf den Namen die Verbindung aufgebaut werden (oder die Einstellungen mit Load geladen werden)
  11. Open

Zugang zu anderen Rechnern mit der Fritzbox

Freetz legt automatisch beim ersten Systemstart einen RSA und DSS private key für die Fritzbox an. Diese liegen in /var/mod/etc/ssh/als dss_host_key und rsa_host_key mit einem symlink zu /tmp/flash. Um nun auf einen anderen Rechner per host-based authentication zugreifen zu können, ist erst einmal der public key nötig, den man mit

# dropbearkey -f /tmp/flash/rsa_host_key -y
zB für den RSA key, auf dem Terminal ausgegeben bekommt. Diesen dann in die 'authorized_keys' Datei des anderen Rechners kopieren, wie es bei SSH üblich ist. Das Keyfile muss wie im Beispiel als Parameter angegeben werden.
# ssh -i /tmp/flash/rsa_host_key user@machine
Dies liefert dann einen passwortlosen Login auf 'machine' wenn dort vorher der public key hin kopiert wurde.

mögliche Anwendung von ssh

  • Ausführen eines auf der Fritzbox abgelegten Skriptes
    ssh root@fritz.box [command] bzw. ssh -i identityfile root@fritz.box [command] (z.B. ssh root@fritz.box '/var/tmp/flash/testscript.sh' zum Ausführen von /var/tmp/flash/testscript.sh)

mögliche Probleme

  • folgende Fehlermeldung nach Anmeldung mit ssh root@fritz.box:
    Permission denied (publickey).

Falls man sich mit einem Passwort einloggen möchte, muss Password-Based Authentication aktiviert sein, was unter dem Menüpunkt Pakete, Dropbear unter Passwort Login, Aktiviert einstellen kann.

  • folgende Warnung nach Anmeldung mit ssh root@fritz.box:
    The authenticity of host 'fritz.box (<deine Fritzbox IP>)' can't be established.
    RSA key fingerprint is XX:XX:…:XX:XX.
    Are you sure you want to continue connecting (yes/no)?

Einfach mit yes bestätigen. Wird genau dann gefragt, wenn man sich zum ersten Mal mit dem User auf die Fritzbox verbindet (bzw. der Host in ~/.ssh/known_hosts nicht bekannt ist).

  • folgende Warnung nach Anmeldung mit ssh root@fritz.box:
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
    Someone could be eavesdropping on you right now (man-in-the-middle attack)!
    It is also possible that the RSA host key has just been changed.
    The fingerprint for the RSA key sent by the remote host is XX:XX:…:XX:XX.
    Please contact your system administrator.
    Add correct host key in ~/.ssh/known_hosts to get rid of this message.

Einfach die ~/.ssh/known_hosts löschen (wird automatisch neu angelegt), oder die ~/.ssh/known_hosts öffnen und entsprechende Zeile, wo fritz.box erwähnt wird, löschen. Beim nächsten Verbindungsversuch erscheint die oben erwähnte Warnung über eine Unsicherheit über die Authentizität des Hosts, einfach mit yes bestätigen.

 
software/ds-mod/pakete/dropbear.txt · Zuletzt geändert: 2009/01/14 12:16 von risaer
 
Impressum
Recent changes RSS feed Creative Commons License Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki