Projekte rund um Elektronik, Server, Windows und mehr

zum Geschützen Bereich
Raspberry_pi-logo

FTP-Server installieren, dank PROFTPD
(Zugeschnitten auf 433MHz Remote-Steuerung)

Wer seinen Raspberry als Heimsteuerung nutzen möchte und die ersten eigenen Versuche damit machen möchte.

sollte sich mit Vorbereitung für einen Webserver befassen. Nur über eine eigenen WebServer auf dem Raspberry können eigen kleine Websites bereit gestellt werden über die einige Fnuktionen dann bequem gesteuert werden können. Zum Teil werden viele dieser Funktionen schon vorgfertigt mitgeliefert, zum Teil muss man eigene Erfahrung in PHP, Perl, Pyhton und HTMl besitzen um dies realisieren zu können.
Eine der wichtigsten Vorrausetzung hierfür ist ein FTP Server. Dank des FTP-Server können wir von anderen PC’s oder Mac’s auf vorbstimmte Ordner auf dem Raspebrry zugreifen und Dateien dort hineinlegen. So können Dateien und Ordner zwischen beiden Geräten recht einfach ausgetauscht werden. Mit weiterer Software lässt sich so auch recht einfach eine eigene Website gestalten die mehr hermacht als reine Funktionsübersichten.

doch zunächst zu Installation eines FTP-Server. Hier kommt FTPPro zum Einsatz:

Folgende Website hat hier den Einsatz von ProFTP in sRollen gebracht:: http://www.foxplex.com/sites/raspberry-pi-als-ftp-server-mit-proftpd/

Dennoch wurde für das Gesamtprojekt auf diesen Seiten kleine Anpassungen vorgenommen:

Als erstes wird wiede rein Update ausgeführt:

    sudo apt-get update

Dann wird ProFTP installiert::

    sudo apt-get install proftpd

Bei Bedarf bestätigt man die folgende Meldung noch mit einem “ja”:
Kurz darauf meldet sich proftpd mit eninem Screen der eine Einzelplatzinstallition, oder eine Serverinstallation  abfragt. Das Ziel ist hier ganz klar die Installation eines Servers, da ja von extern auf die Dateien zugegeriffen werden soll.

Nach der Installation muss man sich dann mit den Details befassen. In der Standardeinstellungen bietet der FTP-Server jedem Benutzer, den Zugriff auf sein eigenes Home Verzeichnis (z.B. /home/pi). Dies ist aber nicht das was hier gewünscht ist. Wir brauchen Zugriff auf /var/www. Da die 433 MHz-Remote App hier bereits vorgefertigte Ordner angelegt hat, möchten wir diese möglichst von eigenem PC aus per FTP bearbeiten können. Zudem hat die 433 MHz App schon Ordner hierfür angelegt, auf welche auch der integrierte PHP-Server geeicht wurde. Nichts ist also idealer als hierauf die FTP-Zugriffe an zu legen. Der bestehende Order /remote (/var/www/remote) ist also schon für die Ansteuerung der 433 MHz Steckdosen zuständig. Ohne Probleme kann hierzu prallel eine weiterer Ordner angelegt werden wie z.B. remote2 oder remoteTEST,... (/var/www/remote2). Wenn also per FTP Zugriff auf dies gesamte Ordnerstruktur /var/www erreicht wird, können nach belieben eigene Projekte realisiert werden und diese in Unterordner getest werden oder per Link aufeinander verweisen. Auf diese Weise kann sogar eine eigene Enwicklungsumgebung für Websiten geschaffen werde, da auf dem Raspebrry sowohl PHP, MySQL und andere Serverdienste installiert werden können.

Laut Beschreibung über http://www.foxplex.com/sites/raspberry-pi-als-ftp-server-mit-proftpd/ wird empfohlen eigene Benutzergruppen für den FTP-Zugirff an zu legen. Wer schon ein wenig Erfahrung mit Zugriffsrechten und Gruppen und Benutzer hat, wird hier schnell begreifen um was es geht. Bei Windows Servern bietet sich die Einrichtung diverser Gruppen an. An diesen Gruppen können nun diverse Benutzer als Mitglied teil nehmen. So wird eine einfache Verwaltung auf Ordner erreicht, die es einem ermöglicht, nicht immer jedem Benutzer Zugriffsrechte auf bestimmte Ordner zu erteilen. Das Anlegen einzelner Zugriffrechte für einzelne benutzer auf einzelne Ordner sonst irgendwann Überhand nehmen. So kann man diese Benutzer einer Gruppe zuteilen und so au dieser Weise vielen  Ordnern die Zugriffsrechte von ganzen Benutzergruppen erteilen. Je nach Einsatz kann dies wesentlich einfacher in der Verwaltung werden. Vor allem braucht man nicht jeden Ordner manuell nach einzelnen Benutzer durchsuchen. Also erstellen wir,  wie im empfohlen die Gruppe “freigabe”;

    sudo addgroup freigabe

Zudem sollten wir einen ftp Ordner erstellen. Achtung wer schon apache2 installiert hat wird den Ordner bereits vorfinden. Ansonsten kann dieser erstellt werden.

    sudo mkdir /var/www


Nun erstellen wir die Zugriffsrechte auf den Ordner /var/www neu. Da wir später per ftp Zugriff von anderen Rechnern Dateien hinein schieben wollen erteilen wir die Zugriffsrechte expliziert, für FTP Benutzer. Dabei wird der Benutzer direkt neu angelegt. Nach absetzen des Befehls wird man direkt zur Eingabe eines Kennworts gefragt für den neuen Benutzer. Achtung Benutzer steht für die Wahl eines beliebigen FTP-Users. Auf die Weise kann auch jederzeit ein weiterer FTP-Nutzer eingerichtet werden:

    sudo adduser benutzer --ingroup freigabe --shell /var/www
     

Evtl. werden noch weitere Daten zu dem neuen Benutzer abgefragt. Wer will kann diese Einpflegen.

Nun müssen wir diesem Benutzer noch Zugriffsrechte auf das Verzeichniss /var/www erteilen.

    sudo chown benutzer:freigabe -R /var/www
    sudo chmod 775 -R /var/www

Somit hat nur der Benutzer und die Teilnehmer der Gruppe freigabe Schreibzugriff auf das Verzeichnis.
Nun muss das Verzeichnis noch per FTP freigegeben werden. Hierzu öffnen wir mit nano oder Leafpad folgende Datei: /etc/proftpd/proftpd.conf; mit root Zugriffsrechten:

    sudo nano /etc/proftpd/proftpd.conf

Weiter oben in der Konfigurationsdatei finden wir  die Zeile # RequireValidShell   off. Hier müssen wir die “#” Raute entfernen um diese Zeile wieder aktiv zu setzen. Wird dies nicht gemacht können wir uns nicht als Benutzer am raspberry per FTP anmelden.

Ebenso passen wir das DefaultRoot Verzeichnis für den FTP-Zugriff an. Die Zeile # DefaultRoot ~ wird also geändert in DefaultRoot /var/www

In der geöffneten Datei fügen wir weit unten folgende Zeilen hinzu:(Als Hinweis. In der Standardinstallation taucht kurz vor Dateiende der Hinweis auf: “# Include other custom configuration files”. Direkt in der Zeile darüber fügen wird folgendes ein:

    <Directory /var/www>
       UserOwner root
       GroupOwner freigabe
    </Directory>

 

Alles speichern mit STRG- X und ja und nochmals Enter.

Zum Schluss starten wir den ProFTPD neu und fügen den Dienst dem Autostart hinzu.

    sudo service proftpd restart
    sudo update-rc.d proftpd defaults

Um sicher zu gehen können wir auch den Raspi neu starten:

     sudo reboot

Nun sollte der Zugriff per FTP://IP-vom-Raspberry Problemlos klappen.

Auf Windows Rechnern kann dies getestet werden indem man im Explorer in der Adresszeile die IP Adresse eingibt und ein ftp:// davor setzt. Also: ftp://RaspberryIP
Es sollte der zuvor festgelegte Benutzername und Das Kennwort abgefragt werden. Nun kann man Dateien und Ordner hineinziehen heraus ziehen. Klappt dies nicht ist vermutlich irgendwo ein Tippfehler aufgetreten also noch mals alles genau kontrollieren oder wiederholen

Eine weitere schnelle Überscihtliche Beschreibung mit mehr Informationen zu ProtFTPD findet ihr hier:
https://www.thomas-krenn.com/de/wiki/FTP-Server_unter_Debian_einrichten

Inspiriert wurde ichg durch: https://willy-tech.de/ftp-server-auf-raspberry-pi-mit-proftpd/