191 0 0

FTP Server auf Ubuntu erstellen

vom gridscale Team FTP Ubuntu

FTP – Einführung

Mit Hilfe des File Transfer Protokolls (kurz FTP) ist es möglich, Dateien und Ordner auf einen Server zu übertragen. Da man über FTP keine Dateien oder andere Programme ausführen kann, galt es lange Zeit als sicher und wird auch heute noch von vielen Hosting Anbietern genutzt damit deren Kunden ihren Content auf einem einfachen Weg auf den Server übertragen können. Heute gilt FTP allerdings nicht mehr als sicher, da der Content unverschlüsselt übertragen wird und daher abgefangen werden kann. Außerdem lässt sich FTP nicht hinter einer Firewall betreiben, da es zusätzlich zum Standard Port 21 einen zufälligen High Port nutzt.
Alternativen sind SFTP und FTPS. Für lokale Anwendung kann FTP allerdings noch nützlich sein, da es viele, meist kostenlose, Anwendungen gibt, die einfach und übersichtlich sind. Daher wird hier gezeigt, wie auf einem Ubuntu Server der FTP Server Dienst installiert und konfiguriert werden kann.

Server vorbereiten

Wie vor jeder Installation solltest der Server auf den neuesten Stand gebracht werden. Mit folgendem Befehl wird der Paketmanager APT angewiesen, alle Pakete auf den neuesten Stand zu bringen:

apt -y update && apt -y upgrade && apt -y dist-upgrade

Nach kurzer Wartezeit ist der Server auf dem neuesten Stand.Es kann weitergehen.

FTP Server Dienst installieren

Da FTP ein sehr verbreitetes Protokoll ist, gibt es auch viele Anwendungen die auf FTP aufbauen. Hier wird gezeigt VSFTPD. Es ist der einzige FTP Server Dienst im Main Zweig von Ubuntu. Im Gegensatz du den Alternativen aus dem Universe oder Multiverse Zweig, werden Main Zweig Pakete regelmäßig gepflegt und mit Sicherheitsupdates versorgt. Außerdem ist VSFTPD sehr auf Sicherheit ausgelegt. Es lässt sich unter Ubuntu einfach über APT installieren und unterstützt alle gängigen FTP Methoden – aber dazu später mehr.

APT kann mit folgendem Befehl dazu angewiesen werden, VSFTPD zu installieren.

apt -y install vsftpd

Nachdem APT den Dienst installiert hat, wird er auch automatisch gestartet. Der Server bietet also direkt nach der Installation bereits den Dienst an, bevor die Konfiguration angepasst wurde. Es ist aber zu empfehlen, den Dienst zuerst wieder zu stoppen und anschließend die Konfiguration anzupassen.

Dazu dient folgender Befehl:

service vsftpd stop

Ist der Dienst beendet kann fortgefahren werden.

FTP Server Dienst konfigurieren

Zum Konfigurieren des FTP Server Dienstes, öffnest die Config Datei /etc/vsftpd.conf mit einem beliebigen Text-Editor. Hier wird NANO dafür verwendet.

nano /etc/vsftpd.conf

Dabei ist zu beachten, dass ein Eintrag nicht doppelt vorkommen darf. Daher muss zuerst nach den Einträgen gesucht werden. Es muss geprüft werden, ob sie existieren bevor sie aus diesem Tutorial herauskopiert werden. Es ist zu erwarten, dass alle Optionen irgendwo in der Konfigurationsdatei bereits definiert ist.

Die Datei ist sehr detailliert kommentiert, so dass jede Einstellungsmöglichkeit erklärt wird. Hier werden die Relevantesten zusammengefasst.

Das Zulassen von anonymen Benutzern für lesen, schreiben, löschen und herunterladen

Achtung! Diese sollten nur in einem geschützten Netzwerk verwendet werden, da ansonsten die Gefahr besteht, dass der Server missbraucht werden könnte.

anon_upload_enable=YES
anon_other_write_enable=YES
anon_mkdir_write_enable=YES
anon_world_readable_only=NO

Der anonyme Login ist per default deaktiviert. In der Zeile anonymous_enable=NO wird er mit einem YES aktiviert.

anonymous_enable=YES

Das Schreiben reicht allerdings noch nicht aus. Man benötigt außerdem einen Ordner, der mit den Rechten 777 angelegt wurde. Anonyme User werden über FTP den Ordner /home/ftp erreichen. Um den Upload hierher zu ermöglichen sollte zB einen Ordner mit dem Namen Upload angelegt werden und die entsprechenden Rechte vergeben werden.

mkdir -p /home/ftp/upload
chmod 777 /home/ftp/upload

Lokale Benutzer auf ihr Homeverzeichnis beschränken

Hierzu muss die Zeile chroot_local_user= auf Yes gesetzt werden

chroot_local_user=YES

Globales Schreiben erlauben bzw verbieten

In der Standardkonfiguration verbietet VSFTPD das Schreiben für alle User. Unabhängig von deren Berechtigungen. Um diese Sicherheitsmaßnahme zu deaktivieren, muss folgende Zeile auf YES geändert werden.

write_enable=YES

Das Schreiben in die System interne Prozessliste erzwingen

Mit folgender Zeile wird das Schreiben in die interne Prozessliste erzwungen:

setproctitle_enable=YES

Mit folgendem Befehl lässt sich diese dann aus der bash heraus auslesen:

watch ps -C vsftpd -o user,pid,stime,cmd

Ist die Konfiguration zufriedenstellend, kann der Dienst wieder gestartet werden.

service vsftpd start

Anschließend können Clients über ein beliebiges Clienttool mit dem Server verbunden werden.

Logs auslesen

Sollte es zu Fehlermeldungen kommen ist es Sinnvoll sich die Logs zum entsprechenden Tool anzusehen. Die Log Files für vsftpd liegen standardmäßig unter /var/log/vsftpd.log. Zum Auslesen dieser Files dient folgender Befehl:

nano /var/log/vsftpd.log

Da diese Log Files schnell lang und unübersichtlich werden können gibt es noch einen anderen Befehl:

tail -f /var/log/vsftpd.log

tail schneidet die Datei am Ende ab und zeigt nur Zeilen, die ab dem Starten des Befehls dazugekommen sind. Um mit tail arbeiten zu können muss der Befehl also ausführt werden und anschließend der Fehler erneut herbeigeführt werden. tail zeigt die dann die Zeilen an, die zu der letzten Aktion gehören. Um tail wieder zu beenden, drücke Strg +C.

Zusammenfassung

Sich durch die Konfiguration zu kämpfen kann am Anfang etwas mühselig sein. Doch wenn VSFTPD erstmal läuft, kann es auch mit dem Übertragen von Dateien losgehen. Eine Alternative zu FTP ist SCP. Dieses setzt auf das SSH Protokoll. Wie das im Einzelnen funktioniert, wird in diesem Artikel erläutert.

Schade, dass dir der Artikel nicht gefallen hat.
Was sollten wir deiner Meinung nach besser machen?

Vielen Dank für dein Feedback!
Wir melden uns bei dir, sobald der Artikel zu deinem Wunschthema fertig ist.

Übrigens: kennst du schon unser Tutorial zum Thema Wie du mit Sysdig die Auslastung deines Ubuntu Systems anzeigen lassen kannst?

×

Entwickler?

Dann einfach hier für unsere Tutorial-Updates anmelden.
Keine Sorge: Wir spammen dich nicht zu :)