Ubuntu – FTP Server installieren

Veröffentlicht von

Hier eine kleine Anleitung, wie man auf einem Ubuntu-Server ein FTP-Server aufsetzt.

Installation

vsftpd kann direkt aus den Ubuntu-Quellen installiert werden. Dazu ist lediglich das folgende Paket zu installieren.

sudo apt-get install vsftpdCode-Sprache: JavaScript (javascript)

Konfiguration

Neuen Benutzer erstellen

Da wir nicht wollen, das man sich beim FTP-Server mit dem root-user anmeldet, legen wir einen neuen User an.

sudo adduser BENUTZER

Jetzt nehmen wir ein paar einstellungen am FTP-Server vor, dazu öffen wir folgende Datei:

sudo nano /etc/vsftpd.conf
Zugriff auf Benutzer beschränken

Die Standardeinstellung von vsftp ist, dass sich alle lokalen Benutzer per ftp einloggen dürfen. Möchte man dies deaktivieren, so muss man die Option „local_enable=YES“ wieder auskommentieren:

# Uncomment this to allow local users to log in.
#local_enable=YESCode-Sprache: PHP (php)

Um nur bestimmten Benutzern den Login via FTP zu erlauben, müssen folgende Optionen gesetzt werden:

userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/vsftpd.user_listCode-Sprache: JavaScript (javascript)

Um bestimmten Benutzern den Login via FTP zu verbieten, müssen folgende Optionen gesetzt werden (In diesem Fall wird den restlichen Benutzern der Login gewährt):

userlist_deny=YES
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list

Als nächstes legen wir die vsftpd.user_list an:

sudo nano /etc/vsftpd.user_list

Die Nutzer werden in beiden Fällen folgendermaßen in die Datei /etc/vsftpd.user_list eingetragen:

nutzer1
nutzer2
nutzer3
Globales Schreiben (de-)aktivieren

In der Basiskonfiguration darf kein Benutzer per ftp schreiben. Weder lokale Benutzer (wenn sie per „local_enable=YES“ zugelassen wurden), noch anonyme Benutzer. Erst wenn die Option write_enable=YES aktiviert wurde, dürfen per ftp eingeloggte Benutzer schreiben.

# Uncomment this to enable any form of FTP write command.
write_enable=YESCode-Sprache: PHP (php)
Lokale Benutzer auf ihr Homeverzeichnis beschränken

Die letzte wichtige Option wäre es, die lokalen Benutzer auf ihr Homeverzeichnis – also /home/benutzername – zu beschränken.

# You may restrict local users to their home directories.  See the FAQ for
# the possible risks in this before using chroot_local_user or
# chroot_list_enable below.
chroot_local_user=YESCode-Sprache: PHP (php)

Falls es beim verbinden mit dem FTP-Server folgenden Fehler gibt,

500 OOPS: vsftpd: refusing to run with writable root inside chroot()

kann man folgende Zeile in die /etc/vsftpd/vsftpd.conf einfügen, damit der User Schreibrechte auf seinen Home-Ordner bekommt.

allow_writeable_chroot=YES

Nach jeder Änderung an der Config, muss der FTP-Server neu gestartet werden.

sudo systemctl restart vsftpd

Überwachung & Sicherheit

Logins und Schreibvorgänge überwachen

vsftp schreibt ein ausführliches Log über alle Logins und Schreibvorgänge. Dieses muss allerdings zunächst aktiviert werden, in dem man in /etc/vsftpd.conf folgende Einstellung aktiviert:

# You may override where the log file goes if you like. The default is shown
# below.
xferlog_file=/var/log/vsftpd.logCode-Sprache: PHP (php)

Nach dem Neustart des Servers die Log-Datei wie folgt öffen:

sudo nano /var/log/vsftpd.logCode-Sprache: JavaScript (javascript)

Möchte man z.B. die aktuellen Aktivitäten ansehen, so kann man in einem Terminal mit dem folgendem Befehl, den Verlauf des Logs begutachten.

sudo tail -f /var/log/vsftpd.logCode-Sprache: JavaScript (javascript)

Um es wieder zu beenden, drückt man die Tastenkombination [Strg – C]