IT

Eigener FTP-Server mit ProFTPd unter Ubuntu

Für die Übertragung unkritischer Daten ist es manchmal ganz praktisch einen eigenen FTP-Server zu haben, auch wenn diese in Zeiten von DropBox und anderem Cloudspeicher in der Handhabung etwas „eingestaubt“ sind.

Als erstes sollte man dem Server eine feste IP-Adresse geben, worauf ich hier nicht näher eingehe. Mit dem üblichen apt-get-Befehl lässt sich danach ProFTPd installieren:

bzw.:

Wenn die Server-Performance nicht geschont werden muss, kann man dabei ruhig den Servermodus auswählen:

In der Konfigurationsdatei proftpd.conf unter /etc/proftpd kann man einen eigenen Namen festlegen, unter welchem sich der FTP-Server meldet:

Diese Konfiguration erweitert man um folgende Zeilen bzw. kann die vorhandenen Kommentare dafür nutzen:

Dadurch legt man fest, dass sich nur Benutzer anmelden können, für die es hinterlegte Login-Daten in der Datei ftpd.passwd gibt. Zusätzlich werden diese in ihrem dort ebenfalls hinterlegten Home-Verzeichnis „eingesperrt“ und können nicht in eine höhere Ebene wechseln.

Um einen Benutzer anzulegen wechselt man im Terminal in das ProFTPd-Verzeichnis und erstellt mit Hilfe des Tools ftpasswd einen Eintrag in der ftpd.passwd-Datei:

Wenn man mit unzureichenden Rechten den Befehl ausführt, wird angezeigt, dass der Eintrag angelegt wurde, aber der Zugriff auf die Datei untersagt wurde. Somit bleibt die Datei trotz positiver Rückmeldung leer.

Stattdessen muss es so aussehen:

Die Infotexte können ignoriert werden, da sie im Prinzip nur auf die zuvor getätigten Konfigurationsschritte hinweisen.

Nun erstellt man noch den angegebenen Ordner für den Benutzer, der über ausreichende Berechtigungen verfügt. Diese können bzw. sollten restriktiver gehalten werden, zur Vereinfachung habe ich diese aufs Maximum gesetzt:

 

Debugging

Man bekommt beim Versuch sich über Filezilla einzuloggen, unabhängig vom eigentlichen Fehler, anscheinend immer die Fehlermeldung, dass der Benutzername oder das Kennwort falsch sei. Die tatsächliche Ursache findet man dann im ProFTPd-Logfile. Man sollte auch den Home-Ordner des Benutzers korrekt angeben bzw. anlegen. Ansonsten kann der Benutzer sich auch nicht einloggen und Filezilla legt aufgrund der Fehlermeldung eine falsche Fährte:

2017-08-28 09:41:38,120 ftp proftpd[25792] ftp: ProFTPD 1.3.5a (maint) (built Tue Apr 5 2016 13:36:50 UTC) standalone mode STARTUP
2017-08-28 09:41:56,230 ftp proftpd[25794] ftp (192.168.1.10[192.168.1.10]): FTP session opened.
2017-08-28 09:41:56,261 ftp proftpd[25794] ftp (192.168.1.10[192.168.1.10]): notice: unable to use DefaultRoot ‚~/‘ [resolved to ‚/var/www/html/test‘]: No such file or directory
2017-08-28 09:41:56,261 ftp proftpd[25794] ftp (192.168.1.10[192.168.1.10]): chroot to ‚~/‘ failed for user ‚test‘: No such file or directory
2017-08-28 09:41:56,261 ftp proftpd[25794] ftp (192.168.1.10[192.168.1.10]): error: unable to set DefaultRoot directory
2017-08-28 09:41:56,261 ftp proftpd[25794] ftp (192.168.1.10[192.168.1.10]): FTP session closed.

So sieht das Log aus, wenn tatsächlich der falsche Benutzer angegeben wurde:

2017-08-26 11:17:53,394 ftp proftpd[13540] ftp: ProFTPD 1.3.5a (maint) (built Tue Apr 5 2016 13:36:50 UTC) standalone mode STARTUP
2017-08-26 11:55:51,540 ftp proftpd[13766] ftp (192.168.1.10[192.168.1.10]): FTP session opened.
2017-08-26 11:55:51,556 ftp proftpd[13766] ftp (192.168.1.10[192.168.1.10]): USER test: no such user found from 192.168.1.10 [192.168.1.10] to ::ffff:192.168.250.31:21
2017-08-26 11:55:51,558 ftp proftpd[13766] ftp (192.168.1.10[192.168.1.10]): FTP session closed.

Wenn der FTP-Server in einem Firmen-Netzwerk eingerichtet wird, sollte man diesen unbedingt in eine DMZ stellen und darf nicht vergessen die entsprechenden Ports in der Firewall freizuschalten. Ist auf dem Server selber noch die Firewall aktiv, so muss auch hier eventuell noch eine Anpassung vorgenommen werden.

Quelle:
https://wiki.ubuntuusers.de/ProFTPD/

 

Tobias Langner

Tobias Langner

Ich arbeite seit mehreren Jahren als Software-Release-Manager, zuvor als IT-Administrator, bin ausgebildeter Fachinformatiker für Systemintegration und Studium-"Pausierer" an der FernUni Hagen. Achtung: Für die Richtigkeit der zur Verfügung gestellten Informationen, Skripte, etc. übernehme ich keine Gewähr. Deren Nutzung geschieht ausdrücklich auf eigene Gefahr!

Alle Beiträge ansehen von Tobias Langner →

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert