FTP-Server auf dem Raspberry Pi einrichten
Wenn man einen Webserver, wie den "lighttpd" auf einem Raspberry Pi betreibt, dann macht es auch Sinn, einen FTP-Server zu installieren, um aus der Ferne Dateien in das Webserver-Verzeichnis zu laden. Für diesen Zweck gibt es verschiedene FTP-Server für den Raspberry Pi. Beispielsweise ProFTP oder vsftpd. Allerdings ist eine Installation dieser FTP-Server nicht zwangsläufig notwendig.
FTP ist ein altes und unsicheres Protokoll für den Filetransfer. Es gibt eigentlich keinen Grund mehr, einen FTP-Server zu betreiben. Wer unbedingt Filetransfer betreiben möchte, der sollte das mit SSH machen. Meist ist für den Remote-Zugriff bereits ein SSH-Server eingerichtet. Der beherrscht dann auch das FTP-Protokoll, womit man den Filetransfer über die sichere SSH-Verbindung abwickeln kann. Das ist sicherer und gleichzeitig so komfortabel, wie bei einem FTP-Server. Funktional absolut identisch.
Aufgabe
- Installieren Sie bei Bedarf einen FTP-Server auf dem Raspberry Pi.
- Laden sich einen FTP-Client herunter und installieren sie ihn auf Ihrem Client.
- Überprüfen Sie die Erreichbarkeit des SSH-Servers per SFTP über das lokale Netzwerk.
- Richten Sie den Webserver so ein, dass Sie Dateien direkt in das Webserver-Verzeichnis per FTP laden können.
Lösung ohne Installation eines FTP-Servers
Viele Lösungen beruhen auf der Installation eines FTP-Servers, wie zum Beispiel ProFTP oder vsftpd. Doch das ist gar nicht notwendig. Was viele nicht wissen ist, dass SSH FTP-Befehle in Form von SFTP unterstützt. Wenn der Fernzugriff per SSH funktioniert muss man nichts weiter machen, als mit einem FTP-Client, wie zum Beispiel Filezilla, eine SFTP-Verbindung (Port 22) zum Raspberry Pi aufzubauen.
Für die Verbindung benötigt man die IP-Adresse des Raspberry Pi, sowie Benutzername und Passwort. Nach dem erfolgreichen Verbindungsaufbau per FTP-Client landet man automatisch im Home-Verzeichnis des Benutzers.
Damit man nicht im Home-Verzeichnis des Benutzers (zum Beispiel "pi"), sondern im Verzeichnis des Webservers landet, muss man dafür einen Extra Benutzer anlegen oder noch einfacher, das Home-Verzeichnis des Benutzers zum Webserver-Verzeichnis machen.
Dazu muss man ein paar Änderungen in der Webserver-Konfiguration machen:
sudo nano /etc/lighttpd/lighttpd.conf
Im Editor ändert man folgende Zeile (oder ähnlich):
server.document-root = "/var/www/html"
Hier trägt man das Home-Verzeichnis des Users ein. Zum Beispiel "/home/pi".
Anschließend speichern und beenden mit: Strg+O, Enter, Strg+X
Hinweis: Oft sind falsche Berechtigungen das Problem, wenn die im Home-Verzeichnis enthaltenen Dateien vorhanden, aber nicht über den Webserver abgerufen werden können. Das kann man mit folgenden Kommandos korrigieren:
sudo chown pi:www-data -R /home/pi sudo chmod 775 /home/pi
Lösung: User für SFTP (FTP über SSH) einrichten
Damit man nicht im Home-Verzeichnis des Benutzers (zum Beispiel "pi"), sondern im Verzeichnis des Webservers landet, muss man dafür einen Benutzer anlegen, dessen Home-Verzeichnis das Webserver-Verzeichnis ist.
Dazu richten wir einen neuen User, zum Beispiel "piftp" ein, den wir nur für die SFTP-Verbindung (SSH + FTP) verwenden. Natürlich kann auch ein anderer Benutzername gewählt werden. Der muss dann bei der weiteren Einrichtung berücksichtigt werden.
sudo adduser piftp --no-create-home
Dann müssen wir ein Passwort vergeben, dass global, also für die lokale Anmeldung und die SSH-Anmeldung gilt. Beim Eintippen des Passworts werden keine Platzhalter angezeigt, man tippt also "blind".
Anschließend weisen wir den neuen Benutzer der Gruppe "www-data" zu.
sudo usermod -G www-data piftp
Dann verbinden wir das Webserver-Verzeichnis mit dem neuen User. Wichtig ist hier nur, dass das Verzeichnis vorher bestehen sollte.
sudo usermod -d /var/www/html/ piftp
Dann müssen wir noch die Rechte für diesen User setzen. Wir machen ihn zum Eigentümer und setzen dann noch die Rechte für das Webserver-Verzeichnis.
sudo chown piftp:www-data -R /var/www/html sudo chmod 775 -R /var/www/html
Hinweis
Es gibt so gut wie keinen Grund mehr einen FTP-Server standalone zu betreiben. Wer Dateien öffentlich zum Download anbieten will, kann das mit einem Webserver bequemer machen. Auch wenn das Protokoll HTTP nicht ganz so effizient ist, wie FTP.
Um entfernte Server Ordner- und Datei-basiert zu verwalten ist ein verschlüsseltes Protokoll, wie SSH, viel besser geeignet.
Raspberry Pi als File-Server
Der Raspberry Pi eignet sich in gewisser Weise auch als File-Server. Also eine Art Festplatte oder Datenspeicher im Netzwerk. Es gibt dafür verschiedene Möglichkeiten der Realisierung, die alle ihre Vorteile, aber auch Nachteile haben.
- NFS-Server auf dem Raspberry Pi einrichten
- Samba-Server auf dem Raspberry Pi einrichten
- Raspberry Pi: Nextcloud installieren
Weitere verwandte Themen:
- Webserver auf dem Raspberry Pi einrichten (lighttpd)
- Raspberry Pi als Server im Dauerbetrieb (24/7, headless)
- Verbindung zu einem Raspberry Pi per SSH aufbauen
Teilen:
Netzwerktechnik-Fibel
Alles was Sie über Netzwerke wissen müssen.
Die Netzwerktechnik-Fibel ist ein Buch über die Grundlagen der Netzwerktechnik, Übertragungstechnik, TCP/IP, Dienste, Anwendungen und Netzwerk-Sicherheit.
Netzwerktechnik-Fibel
Alles was Sie über Netzwerke wissen müssen.
Die Netzwerktechnik-Fibel ist ein Buch über die Grundlagen der Netzwerktechnik, Übertragungstechnik, TCP/IP, Dienste, Anwendungen und Netzwerk-Sicherheit.
Collection: IPv6
Alles was Sie über IPv6 wissen müssen.
Eine PDF-Datei mit allen Artikeln über das Internet Protocol Version 6 von dieser Webseite. Die Zusammenstellung berücksichtigt die Einführung in die Grundlagen von IPv6 mit detailreichen Beschreibungen und zahlreichen Tabellen und Abbildungen. Erfahren Sie mehr über die Möglichkeiten und Zusammenhänge im IPv6-Netzwerk.