Hallo,
ich besitze schon etwas länger einen Raspberry Pi und habe auch immer die passenden Anleitungen gefunden.
Nun möchte ich aber einen Online-Speicher für ca. 25 Nutzer über den Pi laufen lassen, er soll lediglich zum Austausch von Datein via Internet dienen.
Jeder Benutzer soll eigene Zugangsdaten erhalten damit ich die Rechte unterschiedlich verteilen kann.
Meine Frage ist nun welche Möglichkeit am sinnvollsten ist. Ich habe mir schon Owncloud und Seafile angeschaut, zudem habe ich noch an einen ftp Server gadacht. Was könnt ihr mir emphelen bzw. was eignet sich am besten?
Freue mich über alle Tipps und Emphelungen!
Pi als online-Speicher für ca. 25 Nutzer
-
Porwest -
1. Oktober 2014 um 07:55 -
Erledigt
-
-
Pi als online-Speicher für ca. 25 Nutzer? Schau mal ob du hier fündig wirst!
-
Eine weitere Möglichkeit wäre Webdav, Installation siehe z.B.: http://wiki.ubuntuusers.de/WebDAV
Das finde ich recht benutzerfreundlich für die Enduser.
Ich weiß aber nicht, wie gut das auf dem Rasperry läuft. -
Für sowas würde ich auf dem Raspi wohl FTP empfehlen. Das läuft am ressourcenschonendsten und die Rechteverwaltung ist unkompliziert. Der Clientzugriff ist mit einem FTP-Client wie Filezilla oder sogar nur dem Webbrowser auch kein Problem. Außerdem lässt sich der Server auch in Windows einbinden und wie ein ganz normaler Ordner beschreiben/lesen.
Ich will mir gar nicht vorstellen wie sich Seafile oder Owncloud verhält wenn da mehr als drei Leute gleichzeitig etwas synchronisieren oder sich auf der Weboberfläche bewegen, das ist ja schon bei einem Nutzer manchmal recht lahm. Ich denke da skaliert FTP bei mehreren Benutzern wesentlich besser. Empfehlenswerte Server sind da etwa VSFTPD oder ProFTPD, für die gibt es auch Webinterfaces zur einfacheren Administration.Dass da keine Geschwindigkeitswunder zu erwarten sind, ist dir hoffentlich klar. Was bei so etwas denke ich ein must-have ist, ist ein schnelles natives Linux-Filesystem auf dem Datenträger auf dem die Daten gespeichert werden sollen (USB-Stick, Platte, ...) wie etwa ext2/3/4. Meine persönliche Empfehlung wäre da ext2, lief in meinen Tests mit Samba und FTP am schnellsten, aber man kann wohl bei ext4 mit Abschalten des Journaling auch noch einiges reißen.
-
Danke für die schnellen Antworten!
Es werden hauptsächlich kleinere Dateien über tragen (Solid Works Zeichnungen).
Ich werde es mal mit FTP probieren.
Könnt ihr mir ein gutes Tut. nennen? Es gibt ja ziemlich viele, bei den meisten handelt es sich leider immer nur um bestimmte Teile und selten um eine komplette Anleitung die nur den Wünschen entsprechen verändert werden muss. -
-
Diese Anleitung sieht ganz passabel aus und schließt ein Web-Frontend mit ein:
http://proftpd-adm.sourceforge.net/page_install.phpIch weiß nicht wie Solid Works Zeichnungen aussehen, aber wenn das wirklich viele (>100) kleine Dateien sind ist FTP vielleicht doch nicht das geeignetste Protokoll. Da für jede Datei eine eigene Verbindung geöffnet wird, kann es bei vielen kleinen Dateien manchmal sehr lange dauern.
Trotzdem würde ich dir raten es einfach mal auszuprobieren, ich weiß ja auch nicht wie du dir den Austausch genau vorstellst.
edit: Zum Thema Sicherheit bei FTP, ich habe ja schon auf so einen Kommentar gewartet. Wenn es sich, wie bei ProFTPd um virtuelle User handelt, dann ist auch ein Passwort abgreifen (was sowieso einen gezielten Angriff auf den Server oder einen Client vorraussetzt) unproblematisch weil der Angreifer lediglich auf die, zur Verfügung gestellten Daten zugreifen könnte und nichts am System verändern könnte.
Natürlich gibt es sicherere Methoden zum Datenaustausch, allerdings bin ich der Meinung dass man in einem solchen Fall einen Kompromiss zwischen Sicherheit und Komfort finden sollte. Und es handelt sich ja offensichtlich nicht um sensible Daten. -
Ich hab hier was geschrieben, ich kann aber keine 100 Prozentige Verantwortung übernehmen das alles Stimmt. Die Konfiguration müsste deinen Wünschen angepasst werden. Ich habe versucht alles soweit Sicher einzurichten. Ebenso musst du dann natürlich auch mehr als nur einen Nutzer erstellen. Derzeit ist es so eingestellt, das der erstellte Nutzer nur in sein Hauptverzeichnis Daten ändern kann.
FTP Server
Der FTP Server(FTP = File Transfer Protokoll) ist als Server dafür zuständig das ich möglichst einfach Daten von den Server ändern oder herunterladen kann. Bei der Auswahl des FTP Servers habe ich viel Wert auf die Sicherheit und nicht so viel Wert auf die Geschwindigkeit gelegt.
Der Vsftpd(Akronym für Very Secure File Transfer Protocol Daemon) ist ein Server für das File Transfer Protocol. Die Bezeichnung als very secure trägt dem Umstand Rechnung, dass der Schutz gegen unbefugte Nutzung im Mittelpunkt der Entwicklung steht. Zu diesem Zweck verfügt der vsftpd über eine Softwarearchitektur aus Modulen und Komponenten mit möglichst kompakter Programmierung, die als separate Prozesse miteinander kommunizieren. Als Nebeneffekt ergab sich exzellentes Verhalten unter hoher Last.
Funktionen und Anwendungsbereich
Vsftpd lässt sich mit einer einzelnen Konfigurationsdatei (meist /etc/vsftpd.conf) einstellen und erlaubt in seiner Ausgangskonfiguration nur anonymes FTP. Vsftpd macht exzessiven Gebrauch von chroot-Jails, sodass im Falle eines Sicherheitslecks die Gefahr der Kompromittierung des gesamten Systems minimiert wird, da der Ausbruch aus einem Unix-chroot normalerweise unmöglich ist. Wie die meisten Daemons braucht Vsftpd unter keinen Umständen Root-Rechte.
VSFTPD Server installieren
Damit die Verbindung verschlüsselt können, installieren wir neben Vsftpd noch OpenSSL
Nach der Installation müssen wir als erstes ein SSL Zertifikat. Ich erstelle es im /etc/ssl/private Verzeichnis - wenn dieses noch nicht existiert, muss es vorher angelegt werden:
Im Anschluss generieren wir wie folgt das SSL Zertifikat:Codeopenssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Bei der Erstellung müssen jetzt noch einige Daten eingeben werden
z.b.CodeCountry Name (2 letter code) [AU]:DE State or Province Name (full name) [Some-State]:Musterstate Locality Name (eg, city) []:Maxhausen Organization Name (eg, company) [Internet Widgits Pty Ltd]:Mustermann GmbH Organizational Unit Name (eg, section) []: Muster Common Name (e.g. server FQDN or YOUR name) []:Max Muster Email Address []:max.Muster@mustermail.com
Um TLS in vsftpd zu aktivieren, öffnen Sie /etc/vsftpd.conf…
… fügen die folgende Konfiguration ein. In dieser wird SSL aktiviert, der Zugriff von Anonymen Nutzern verboten und der Zugriff von den Lokalen Nutzern reglementiertCode
Alles anzeigen# Example config file /etc/vsftpd.conf # # The default compiled in settings are fairly paranoid. This sample file # loosens things up a bit, to make the ftp daemon more usable. # Please see vsftpd.conf.5 for all compiled in defaults. # # READ THIS: This example file is NOT an exhaustive list of vsftpd options. # Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's # capabilities. # ############################################################### ######### Logging Settings ################################## ############################################################### # Activate logging of uploads/downloads. xferlog_enable=YES # # You may override where the log file goes if you like. The default is shown # below. #xferlog_file=/var/log/vsftpd.log # # If you want, you can have your log file in standard ftpd xferlog format. # Note that the default log file location is /var/log/xferlog in this case. #xferlog_std_format=YES # ############################################################### ######### Customize Settings ################################## ############################################################### # You may fully customise the login banner string: ftpd_banner=Welcome to FTP service. # # Activate directory messages - messages given to remote users when they # go into a certain directory. dirmessage_enable=YES # # If enabled, vsftpd will display directory listings with the time # in your local time zone. The default is to display GMT. The # times returned by the MDTM FTP command are also affected by this # option. use_localtime=YES # ############################################################### ######### E-Mail Settings ##################################### ############################################################### # You may specify a file of disallowed anonymous e-mail addresses. Apparently # useful for combatting certain DoS attacks. #deny_email_enable=YES # (default follows) #banned_email_file=/etc/vsftpd.banned_emails # ############################################################### ######### Other Settings ###################################### ############################################################### # Default umask for local users is 077. You may wish to change this to 022, # if your users expect that (022 is used by most other ftpd's) local_umask=022 # # This string is the name of the PAM service vsftpd will use. pam_service_name=vsftpd # # By default the server will pretend to allow ASCII mode but in fact ignore # the request. Turn on the below options to have the server actually do ASCII # mangling on files when in ASCII mode. # Beware that on some FTP servers, ASCII support allows a denial of service # attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd # predicted this attack and has always been safe, reporting the size of the # raw file. # ASCII mangling is a horrible feature of the protocol. #ascii_upload_enable=YES #ascii_download_enable=YES # # Run standalone? vsftpd can run either from an inetd or as a standalone # daemon started from an initscript. listen=YES # # Run standalone with IPv6? # Like the listen parameter, except vsftpd will listen on an IPv6 socket # instead of an IPv4 one. This parameter and the listen parameter are mutually # exclusive. #listen_ipv6=YES # # Make sure PORT transfer connections originate from port 20 (ftp-data). connect_from_port_20=YES # # You may change the default value for timing out an idle session. #idle_session_timeout=600 # # You may change the default value for timing out a data connection. #data_connection_timeout=120 # # Enable this and the server will recognise asynchronous ABOR requests. Not # recommended for security (the code is non-trivial). Not enabling it, # however, may confuse older FTP clients. #async_abor_enable=YES # # You may activate the "-R" option to the builtin ls. This is disabled by # default to avoid remote users being able to cause excessive I/O on large # sites. However, some broken FTP clients such as "ncftp" and "mirror" assume # the presence of the "-R" option, so there is a strong case for enabling it. #ls_recurse_enable=YES # ############################################################### ######### User Settings ####################################### ############################################################### # Uncomment this to allow local users to log in. local_enable=YES # # Uncomment this to enable any form of FTP write command. write_enable=YES # ############################################################### ######### Security Settings ################################### ############################################################### # Allow anonymous FTP? (Beware - allowed by default if you comment this out). anonymous_enable=NO # # It is recommended that you define on your system a unique user which the # ftp server can use as a totally isolated and unprivileged user. #nopriv_user=ftpsecure # # If you want, you can arrange for uploaded anonymous files to be owned by # a different user. Note! Using "root" for uploaded files is not # recommended! chown_uploads=YES chown_username=www-data # # Uncomment this to allow the anonymous FTP user to upload files. This only # has an effect if the above global write enable is activated. Also, you will # obviously need to create a directory writable by the FTP user. anon_upload_enable=NO # # Uncomment this if you want the anonymous FTP user to be able to create # new directories. anon_mkdir_write_enable=NO # #allow only known User to connect to the sftp Server, user are known in /etc/vsftpd.user_list # Add a new user with: adduser {benutzername} --ingroup www-data --shell /bin/false --home /var/www --no-create-home userlist_deny=NO userlist_enable=YES userlist_file=/etc/vsftpd.user_list # ############################################################### ######### Chroot Settings ##################################### ############################################################### # You may specify an explicit list of local users to chroot() to their home # directory. If chroot_local_user is YES, then this list becomes a list of # users to NOT chroot(). # (Warning! chroot'ing can be very dangerous. If using chroot, make sure that # the user does not have write access to the top level directory within the # chroot) #chroot_local_user=YES #chroot_list_enable=YES # (default follows) #chroot_list_file=/etc/vsftpd.chroot_list # You may restrict local users to their home directories. See the FAQ for # the possible risks in this before using chroot_local_user or # chroot_list_enable below. chroot_local_user=YES # # This option should be the name of a directory which is empty. Also, the # directory should not be writable by the ftp user. This directory is used # as a secure chroot() jail at times vsftpd does not require filesystem # access. secure_chroot_dir=/var/run/vsftpd/empty # ############################################################### ######### SSL Settings ######################################## ############################################################### # Turn on SSL ssl_enable=YES # # Allow anonymous users to use secured SSL connections allow_anon_ssl=NO # # All non-anonymous logins are forced to use a secure SSL connection in order to # send and receive data on data connections. force_local_data_ssl=YES # # All non-anonymous logins are forced to use a secure SSL connection in order to send the password. force_local_logins_ssl=YES # # Permit TLS v1 protocol connections. TLS v1 connections are preferred ssl_tlsv1=YES # # Permit SSL v2 protocol connections. TLS v1 connections are preferred ssl_sslv2=YES # # permit SSL v3 protocol connections. TLS v1 connections are preferred ssl_sslv3=YES # # Disable SSL session reuse (required by WinSCP) require_ssl_reuse=NO # # Select which SSL ciphers vsftpd will allow for encrypted SSL connections (required by FileZilla) ssl_ciphers=HIGH # # This option specifies the location of the RSA certificate to use for SSL # encrypted connections. rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem # ############################################################### ######### Restriction Settings ################################ ############################################################### #Here are some other available options. The values are examples: Code: # Show hidden files and the "." and ".." folders. # Useful to not write over hidden files: #force_dot_files=YES # # Hide the info about the owner (user and group) of the files. #hide_ids=YES # # Connection limit for each IP: #max_per_ip=2 # # Maximum number of clients: #max_clients=20
Wenn Sie force_local_logins_ssl=YES und force_local_data_ssl=YES verwenden werden nur Verschlüsselte Verbindung erlaubt. Meiner Meinung nach sollte diese Einstellung so eingestellt werden, dass nur noch SSL Verbindungen zugelassen werden.
Nach dem Einstellen müssen wir noch einen Passenden User erstellen. Welcher das Homepage Verzeichnis als Home Verzeichnis bekommt(Wegen der Chroot) und sonst nicht an das System anmelden darf.Codesudo adduser sftp-user --ingroup www-data --shell /usr/sbin/nologin --home /var/www --no-create-home sudo chmod a-w /var/www sudo mkdir /var/www/html
Dem gerade erstellten User tragen wir danach in die Liste der Vertrauenswürdigen FTP User ein:Zitatsftp-user
Zum Schluss müssen wir nur noch schnell die Shell umstellen
Und die Zeile hinzufügen
Danach kann der FTP Server neugestartet werden und ist fertig konfiguriert.
Ein Tipp noch bei kleinen Dateien. Wenn du z.B. Filezilla benutzt, ist es möglich unter bearbeiten Einstellungen: Übertragungen. Die Anzahl der Verbindungen auf 10 hochzustellen. Damit geht die Übertragung viel schneller.
Wichtig ist es noch das bei einer Chroot Umgebung, der eingeloggte User im ersten Verzeichnis keine Schreibrechte haben darf siehe hier VSFTP Server nimmt keine Verbindungen an von hinzugefügten Usern -
Dann nutz doch SFTP dann wird es verschlüsselt übertragen.
-
Dann nutz doch SFTP dann wird es verschlüsselt übertragen.Warum SFTP? Denn SFTP ist SSH. Oder meinst Du FTPS (mit vsftpd, siehe oben)?
EDIT:
Z. B. FTPS mit vsftpd:
Zitat
Status: Auflösen der IP-Adresse für #####.yxyxyx.org
Status: Verbinde mit 79.###.###.###:xxxxx...
Status: Verbindung hergestellt, initialisiere TLS...
Status: Überprüfe Zertifikat...
Status: TLS/SSL-Verbindung hergestellt, warte auf Willkommensnachricht...
Antwort: 220-"bla, bla bla."
Antwort: 220
Befehl: USER *******
Antwort: 331 Please specify the password.
Befehl: PASS ********
Antwort: 230 Login successful.
....
.... -
[quote='rpi444','http://test.forum-raspberrypi.de/forum/index.ph…9793#post109793']
[quote='Mathias','http://test.forum-raspberrypi.de/forum/index.ph…9792#post109792']
Dann nutz doch SFTP dann wird es verschlüsselt übertragen.Warum SFTP? Denn SFTP ist SSH. Oder meinst Du FTPS (mit vsftpd, siehe oben)?
[quote]
Ist schon richtig siehe Wiki! Heißt ,, Secure File Transfer Protocol (SFTP) ,,
-
Ja, aber mit FTPS werden der username und das Passwort auch verschlüsselt übertragen. Und das howto von DeFisch ist ja für FTPS.
-
Zitat
Ich habe mir schon Owncloud und Seafile angeschaut, zudem habe ich noch an einen ftp Server gadacht.
Ich habe die auch alle durch, zusätzlich WebDAV-Lösungen mit apache/NGINX.
Allerdings waren die mir entweder zu langsam, fehleranfällig oder zu unkomfortabel.Für Deinen Zweck am ehesten geeignet, halte ich Barracuda Drive.
Ich kenne das Programm noch aus NSLU2-Zeiten (133Mhz), hatte es aber wieder vergessen. Erst durch einen Post hier, habe ich es 'wiederentdeckt'. Es gibt meines Erachtens nichts schnelleres auf dem Pi. Auf der Seite oben findest Du auch einen Vergleich mit anderen Lösungen.
Je nach Art, ist Barracudadrive 3x schneller als das schon performante NGINX-WebDAV.
Die Nutzer können (mit einstellbaren Rechten) via WebDAV-Client oder WebBrowser rauf- und runterladen. Auf Wunsch auch per VPN. Ein bulletin-board ist genauso, dabei wie ein Website_Editor.
Also Ansehen lohnt auf jeden Fall!
-
Ist schon richtig siehe Wiki! Heißt ,, Secure File Transfer Protocol (SFTP) ,,Allerdings nicht zu verwechseln mit dem FTP-Protokoll das zufällig die selbe Abkürzung verwendet. Sind auch zwei völlig unterschiedliche Datentransportprotokolle. Steht übrigens auch in der (englischen) Wikipedia.
ZitatSFTP is not FTP run over SSH, but rather a new protocol designed from the ground up by the IETF SECSH working group. It is sometimes confused with Simple File Transfer Protocol.
-
Super Anleitung! Danke!
Ich komme aber leider erst am Wochenende dazu diese richtig zu Testen und zu konfigurieren.Was hat es genau mit BarracudaDrive auf sich? Habe noch nie etwas davon gehört ... hat vielleicht noch jemand damit Erfahrung gemacht?
Jetzt mitmachen!
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!