Das File Transfer Protocol (kurz FTP) ist ein Netzwerkprotokoll zur Übertragung von Dateien und findet zur Dateiübertragung bei Webservern breiten Einsatz. In diesem Tutorial zeige ich dir wie du einen FTP-Server auf deinem Raspberry Pi installierst.
Was ist ProFTPD?
ProFTPD ist ein weit verbreiteter, freier FTP-Server für Unix-Plattformen. Er ist in den meisten Distributionen enthalten – auch in Raspian, Debian oder Ubuntu. ProFTPD ist einer der am häufigsten verwendeten FTP-Server für Unix-Systeme.
Installation von ProFTPD
Im ersten Schritt müssen wir das Paket proftpd installieren. Das geht wie gewohnt aus den Raspian Paketquellen mit apt-get install.
sudo apt-get install proftpd
Arbeitest du als root, kann das sudo vor den Befehlen weggelassen werden. 😉
Nun wähle in der Installationsroutine standalone aus.
Das wäre schon die eigentliche Installation des FTP-Servers. Nun geht’s an das konfigurieren.
Konfiguration von ProFTPD
Unter /etc/proftpd/ müssen wir nun die passende Konfigurationsdatei proftpd.conf editieren.
sudo nano /etc/proftpd/proftpd.conf
Um virtuelle User benutzen zu können, einfach diesen Code einfügen.
DefaultRoot ~ AuthOrder mod_auth_file.c mod_auth_unix.c AuthUserFile /etc/proftpd/ftpd.passwd AuthPAM off RequireValidShell off
Tipp zum Editor ’nano‘: Mit der Tastenkombination Strg + X kannst du die Datei speichern und den Editor verlassen.
Die virtuellen User werden in /etc/proftpd/ erstellt, dafür müssen wir in das Verzeichnis.
cd /etc/proftpd/
Zum Erstellen eines virtuellen Users wird folgender Befehl verwendet.
Nun erstellen wir einen virtuellen User mit dem Namen paul für das Verzeichnis /var/www (Standard Apache-Webserver Pfad). Sollte der Ordner noch nicht existieren, kann er mit „sudo mkdir /var/www“ erstellt werden. Mit dem Parameter –uid & –gid geben wir dem virtuellen User die Schreib-/Leserechte des Users www-data. 33 ist die Standard Gruppen-ID des www-data Users. Mit dem Befehl id www-data kannst du sie auch auslesen.
sudo ftpasswd --passwd --name paul --uid 33 --gid 33 --home /var/www/ --shell /bin/false
Nun wirst du aufgefordert ein Passwort zu vergeben. Wiederhole diesen Schritt für jeden FTP-Benutzer.
Im letzten Schritt muss der Server neugestartet werden.
sudo /etc/init.d/proftpd restart
___
Es kann sein, dass du auf /var/www nicht genügend Schreibrecht hast. Mit diesen Befehlen kann das gelöst werden.
sudo chmod g+s /var/www sudo chmod 775 /var/www sudo chown -R www-data:www-data /var/www
Nun kannst du dich beispielweise über Filezilla anmelden und Dateien verschieben. Auch ftp://IP-DEINES-PI in deinem Browser funktioniert. 😉
Was spricht denn gegen vsftpd ?
Hallo Kay, sicherlich nichts. Das mit ProFTPD sollte auch nur ein Beispiel / eine Möglichkeit sein 😉 Nach dem hier, scheint ProFTPD für den Heimgebrauch auch garnicht mal so verkehrt zu sein 😉
Hey Paul,
gerade auf dem pi würde ich einen leichtgewichtigen FTP Server einsetzen. Bei deiner Wahl eines Web Servers hast du dich ja auch „richtig“ für nginx entschieden 😉 Für den Heimgebrauch sollte eigentlich schon SFTP reichen. Ansonsten, schönes Tutorial und für Einsteiger verständlich erklärt.
Hallo Kay, ich werde mir vsftpd mal näher anschauen, eventuell darauf zurückkommen und ein Tutorial dazu schreiben 😉 Danke für dein Feedback
Ich habe alles wie beschrieben gemacht, und bekomme wenn ich (lokal) auf meinen pi via ftp://LOKALEIP/ zugreife zwar einen HTAccess Anmeldebildschirm, aber ich bekomme IMMER „530 Login Incorrect“.
Hast du eine Idee? Ich bin überfragt. Passwort und Pfad wechseln hat nichts gebracht :/
Hallo S0nny,
hast du auch auf die Groß-/Kleinschreibung geachtet? Wenn du über FileZilla versuchst auf den Pi zu kommen, darfst du kein ftp:// benutzen.
Gruß
Willy
Hey 🙂
Super Anleitung jedoch habe ich leider ein Problem.
Sobald ich versuche auf den FTP zu Connecten sagt dieser mir ständig
„Zugriff verweigert“ (trotz richtigen passwort, oder ist es ein anderes als man oben für den Benutzer festlegt!?)
Habe auch schon mehrere Benutzer angelegt und ausprobiert aber es funktioniert leider keiner :/.
In den Routereinstellungen habe ich auch schon rumprobiert, kriege es aber einfach nicht gebacken. (Habe einen W 504V, vielleicht kennst du dich da ja besser aus)
Hoffe du kannst mir helfen!
Gruß Cholic 🙂
Ich hab ein paar fehler entdeckt.
1)bei dir steht:
-name paul –uid 33 –gid 33 –home /var/www/ –shell /bin/false
aber das /strong sollte da nicht drin sein.
2)
wenn man den ftp server auf eine frische raspbian distribution macht dann fehlt der ordner var/www
dieses kann man mit :
cd /var
sudo mkdir www
beheben.
liebe grüße fred
und vor die befehle:
chmod g+s /var/www
chmod 775 /var/www
chown -R www-data:www-data /var/www
muss noch ein sudo vor.
Hallo Fred,
vielen für die Hinweise. Die Fehler sind nun behoben.
Gruß
Willy
Hi,
kannst du mir sagen wie man User wieder löscht?
Interessant wäre auch von vorhandenen Benutzern die Passwörter ändern zu können?
Danke
Hallo Martin,
mit
ftpasswd --passwd --name user --delete-user
lässt sich ein User löschen und mit
ftpasswd --passwd --name user --change-password
kann das Passwort des jeweiligen Users geändert werden.
Gruß
Willy
Hey Willy,
ich habe alles so gemacht wie im Tutorial beschrieben, aber ich bekomme beim Einloggen die Meldung, dass mein Passwort falsch sei.
Das Passwort ist aber richtig! Ich habe auch auf die Groß-/ Kleinschreibung geachtet.
Hoffe du kannst mir helfen 🙂
Fehler war, dass ich den Numblock aus hatte.
Nächster Fehler:
Fehler: Authentifizierung fehlgeschlagen.
Fehler: Kritischer Fehler: Herstellen der Verbindung zum Server fehlgeschlagen
Hoffe du kannst mir helfen 🙂
Hallo David,
schaue bitte mal im Log von Proftpd nach, ob dort mehr Informationen zum Fehlverhalten zu finden sind. Der Log sollte sich unter
/var/log/proftpd/proftpd.log
befinden.Gruß
Willy