Raspberry Pi Webserver Installation Teil 5 – FTP Server

Zum einfachen Upload sämtlicher Dateien sollte auf einem Webserver kein FTP Zugang fehlen. Dazu richten wir in diesem Teil einen solchen FTP Server mit Zugang auf dem Pi ein.

Dieses Tutorial kann auch zum einfachen Austauschen von Dateien zwischen PC und Raspberry benutzt werden und ist nicht zwingendermaßen für einen Webserver.

 

Zunächst die Installation

sudo apt-get install proftpd

Kurz danach wird man nach der Startvariante gefragt. Hier wählen wir standalone (auf Deutsch Servermodus)

standalone

Im Grunde wären wir hier bereits fertig, allerdings hätte jetzt jeder Nutzer nur Zugriff auf sein eigenes Home Verzeichnis (z.B. /home/pi ). Deshalb erstellen wir einen neuen User. Dazu wechseln wir erst einmal das Verzeichnis.

cd /etc/proftpd/

Hier soll der virtuelle Benutzer erstellt werden. Im folgenden Beispiel erstelle ich den Benutzer tutorials mit dem Homevezeichnis /var/www/ (falls das Rootverzeichnis von Apache geändert wurde, sollte dies natürlich angepasst werden. Gleiches gilt, wenn ein FTP-User auf andere Verzeichnisse Zugriff haben soll).

sudo ftpasswd --passwd  --name tutorials --gid 33 --uid 33 --home /var/www/ --shell /bin/false

Nun nur noch das Passwort eingeben und bestätigen. Falls das Passwort des Benutzers zu einem späteren Zeitpunkt geändert werden soll, einfach wieder in das Verzeichnis wechseln und den Befehl erneut ausführen.

Um den virtuellen User noch freizuschalten, bearbeiten wir die Konfigurationsdatei

sudo nano /etc/proftpd/proftpd.conf

und fügen folgenden Code am Ende ein:

DefaultRoot ~
AuthOrder mod_auth_file.c  mod_auth_unix.c
AuthUserFile /etc/proftpd/ftpd.passwd
AuthPAM off
RequireValidShell off

Mittels STRG + O und STRG + X speichern und beenden wir den Editor.

Zu guter letzt starten wir den Server neu und probieren es aus.

sudo /etc/init.d/proftpd restart

ftp-rpi

 

Möglicherweise kann man sich nun noch trotzdem noch nicht einloggen, da entsprechende Rechte fehlen, diese setzen wir mit

chmod g+s /var/www
chmod 775 /var/www

(falls ein anderes Verzeichnis dem User zugewiesen wurde, muss es natürlich entsprechend angepasst werden)

Im nächsten Tutorial machen wir den Server auch von außerhalb des Netzwerkes erreichbar, mittels No-IP.

15 Kommentare

  1. mein Verzeichnis ist media/Raspberry/webserver
    aber dass mit dem benutzer erstellen krieg ich nicht hin
    es kommt immer die Meldung:
    unknown option: media
    ftpasswd: –passwd: missing required argument: –home

    Antworten
  2. Ich kenn mich da nicht so gut aus.
    Könntest du mir vielleicht de richtigen Befehl hier schicken?
    Wäre sehr nett
    LG Davrad

    Antworten
    • Ich kenne dein (absolutes) Verzeichnis nicht. Wechsel mal dort hinein (mit cd) und gib pwd ein. Dadurch solltest du den Pfad bekommen, den du im Befehl verwenden kannst.

      Antworten
  3. Hallo Felix 🙂
    Ich habe das Problem, dass Bilder auf der erstellten Seite nicht angezeigt werden. Ich habe ein .html Ordner erstellt und alles was ich bekomme ist nur die Überschrift und ein kleiner kasten in dem das Bild sein sollte. Hab den Pfad und .png richtig angegeben, jedoch passiert auch nach mehreren Versuchen nichts. Habe es auch schon mit php Versucht, mit dem selben Ergebnis. Können die ftp://raspberrypi/ Seiten keine Bild-Dateien anzeigen?

    Antworten
  4. hey,
    ich kann bei mir diesen schritt nicht ausführen: sudo /etc/init.d/proftpd restart
    bei mir kommt dann das:
    pi@raspberrypi:/etc/proftpd $ sudo /etc/init.d/proftpd restart
    [….] Restarting proftpd (via systemctl): proftpd.serviceJob for proftpd.service failed. See ’systemctl status proftpd.service‘ and ‚journalctl -xn‘ for details.
    failed!
    wass muss ich tun damits fuktioniert und was habe ich falsch gemacht?
    LG
    Potti

    Antworten
    • Da scheint etwas schief gelaufen zu sein. Was du machen sollst, um mehr Infos dazu zu bekommen steht auch dabei:

      See ’systemctl status proftpd.service‘ and ‚journalctl -xn‘
      Antworten
      • Hey,
        Ich habe das selbe Problem und die Infos aus ’systemctl status proftpd.service‘ verraten nicht viel. Sonst noch einen Lösungsansatz :/

    • Ich bin draufgekommen. Der Port ist 21 und man kann ihn in der Datei: proftpd.conf verändern.
      Trotzdem Danke!

      Antworten
  5. Hallo,

    ich weis nicht warum aber auf meinem pi1 läuft alles super auf dem pi3 garnicht immer wieder dieser fatal error mit dem AuthOrder.
    — Unit proftpd.service has begun starting up.
    Jul 14 15:05:26 raspberrypi proftpd[1344]: Starting ftp server: proftpd2018-07-14 15:05:26,812 raspberrypi proftpd[1352]: fatal: AuthOrder: AuthOrder has alr
    Jul 14 15:05:26 raspberrypi proftpd[1344]: failed!
    Jul 14 15:05:26 raspberrypi systemd[1]: proftpd.service: Control process exited, code=exited status=1
    Jul 14 15:05:26 raspberrypi systemd[1]: Failed to start LSB: Starts ProFTPD daemon.
    — Subject: Unit proftpd.service has failed
    — Defined-By: systemd
    — Support: https://www.debian.org/support

    — Unit proftpd.service has failed.

    Nun habe ich mal beide proftpd.conf verglichen und als ich aus
    mod_auth_unix.c -> modauth_unix.c
    gemacht habe lief es sofort.

    was habe ich da falsch gemacht?

    Antworten
  6. Hallo,
    also ich habe alle Schritte soweit durchgeführt ich seh auch die Seite, ich kann mich nur nicht mit dem Benutzer anmelden. Das einloggen funktioniert nicht.

    Antworten
    • Hallo Dominik,
      ich hatte gerade eben das selbe Problem. Die Ursache war, dass der Code, der in die Konfigurationsdatei „proftpd.conf“ eingefügt werden soll bei mir nicht gespeichert wurde.
      Du kannst das Überprüfen wenn du die Datei nach dem Abspeichern nochmals öffnest. Sollte der folgende Code den du am Ende noch angefügt hast nicht darin enthalten sein, wurde es bei dir auch nicht gespeichert. Anders als beschrieben muss du nach dem Einfügen von:
      DefaultRoot ~
      AuthOrder mod_auth_file.c mod_auth_unix.c
      AuthUserFile /etc/proftpd/ftpd.passwd
      AuthPAM off
      RequireValidShell off

      Strg+O -> DANN DIE ENTER TASTE DRÜCKEN -> Strg+X

      Dann war es bei mir erst richtig übernommen worden.

      Antworten

Hinterlasse einen Kommentar

Deine Email Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Blog abonnieren

Abonniere Raspberry Pi Tutorials, um kein Tutorial mehr zu verpassen!