[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

SSH-Basierte dropbox, feedback erwünscht



Hallo Freunde,

Das wird jetzt etwas mehr Text, ausserdem hab ich auch kein Problem, sondern möchte nur etwas Feedback/Meinungen zu einem Konzept haben. Wer also lesefaul ist, sollte die Mail lieber gleich wieder schliessen ;)

ich habe mir in letzter Zeit ein paar Gedanken gemacht, wie ich eine simple "dropbox" auf meinem Server aufsetzen kann, also irgendein Mechanismus, mit dem mir ein beliebiger User mal schnell Daten oder Dateien auf meinem Server abladen kann. Dabei hatte ich folgende Anforderungen:

- Für jeden Zugänglich, möglichst von jedem Linux mit Internetzugang, also nur auf Tools zurückgreifen, die man bei einem Linux voraussetzen kann (ssh in meinem Fall)
- Verschlüsselte Übertragung
- Write-Only, jeder kann Daten bei mir abladen, aber nur ich kann sie lesen. Existierende Dateien dürfen nicht überschrieben werden können.

Ich bin dann zum Schluss gekommen, das ganze auf SSH-Basis zu machen. Ich denke da an einen Account ohne Passwort, der nach dem Login einfach mittels eine speziellen "login-shell" den stdin in eine Datei schreibt.

Ich sehe da folgende Vorteile:
- Leicht zu konfigurieren
- der Mechanismus ist schnell kommuniziert ("ssh dropbox@meinserver < datei")
- Sichere Übertragung per Design, durch SSH

der Nachteil den ich sehe: Prinzipiell lege ich den Zugang zu einem Systemaccount für jeden offen. Wenn ich irgendetwas übersehen habe oder falsch konfiguriert, könnte sich vlt jemand von aussen irgendwie eine Shell besorgen. Ausserdem sollte man natürlich über ein quota für den dropbox-Ordner nachdenken.

Meine Umsetzung sieht folgendermaßen aus:

Dedizierten User dafür anlegen:
> adduser --disabled-password --gecos "" dropbox --shell /usr/local/bin/dropbox

die "shell" für dropbox ist unter [1] zu finden. Für das Script muss ~dropbox/dropbox existieren, mit entsprechenden Schreibrechten für den Nutzer.

Dannach wird für den dropbox-user die ssh-konfiguration angepasst, das für ihn ein login mit leerem Passwort erlaubt ist (war für mich notwendig, da andere nutzer nur per public key reinkommen), dazu einfach den Inhalt von [2] an die sshd_config anhängen

Der letzte Schritt ist dann, für den Nutzer ein leeres Passwort zu setzen:
> BLANKPASSWD=$(mkpasswd -s < /dev/zero)
> sed 's/^dropbox:[^:]*:/dropbox:'$(BLANKPASSWD)':/' /etc/passwd

so, das wars. Jetzt kann man mit "ssh dropbox@server" mal eben ein paar Notizen ablegen, bzw mit "ssh dropbox@server < datei") auch eine Datei. Mit dem ersten Parameter nach dropbox@server könnte man auch einen Dateinamen bestimmten, unter dem das abgelegt wird, ansonsten wird ein generischer genommen.

Das ganze ist nur ein erster Ansatz und sicher ausbaufähig. Würde mich aber über ein erstes Feedback freuen, ob die Idee eurer Meinung nach in die richtige Richtung geht, bzw ob jemand Verbesserungsvorschläge oder Probleme sieht (oder vlt einen ganz anderen Ansatz)

Grüße,
Micha

[1] http://files.stummi.org/dropbox/dropbox
[2] http://files.stummi.org/dropbox/sshd_conf


Reply to: