Benutzer-Werkzeuge

Webseiten-Werkzeuge


vsftpd

Dies ist eine alte Version des Dokuments!


Ein kleiner FTP Server für Linux.

Installation

sudo apt install vsftpd

Hauptkonfiguration unter

/etc/vsftpd.conf
local_enable=YES # Nutze lokale User
write_enable=YES # Globales Schreiben erlauben, granularere Rechte via file system
chroot_local_user=YES # Benutzer auf Homeverzeichnis beschränken
local_umask=022 # uploaded files readable via http

User homepage

Apache und mod_userdir installieren.

apt install apache2
a2enmod userdir
local_umask=022 # uploaded files readable via http

Benutzer

Whitelist

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_list

vsftpd.user_list dient nur dazu, die Liste der lokalen User einzuschränken, zusätzliche Benutzer kann man damit nicht generieren.

Blacklist

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

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

nutzer1
nutzer2
nutzer3

No Shell Access

Möchte man nicht, dass die Benutzer auch via SSH auf den Rechner zugreifen können, so muss die Shell des Benutzers in der /etc/passwd auf /bin/false gesetzt werden. Zum Beispiel:

user:x:1000:1000::/srv/ftp/user:/bin/false

Wenn es danach Probleme beim FTP-Login geben sollte (530 Login incorrect), liegt das daran, dass /bin/false nicht als Shell im System hinterlegt ist. Dann muss die Shell noch in die Datei /etc/shells eingetragen werden.

Zertifikat

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048  -keyout /etc/ssl/private/vsftpd.key -out /etc/ssl/private/vsftpd.pem

Logs

sudo tail -f /var/log/vsftpd.log

Beispiel

C:\Users\manuel>ftp 192.168.0.2
Verbindung mit 192.168.0.2 wurde hergestellt.
220 (vsFTPd 3.0.3)
200 Always in UTF8 mode.
Benutzer (192.168.0.2:(none)): manuel
331 Please specify the password.
Kennwort: **********
230 Login successful.
ftp>
ftp>
ftp>
ftp> put Ubuntu.tar
ftp> put test.mp4
ftp>
ftp>
ftp>
ftp> dir
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-------    1 1000     1000     1426810880 Dec 14 18:29 Ubuntu.tar
-rw-------    1 1000     1000     137062857 Dec 14 18:29 test.mp4
226 Directory send OK.
FTP: 140 Bytes empfangen in 0.01Sekunden 28.00KB/s
ftp>
ftp>
ftp> del Ubuntu.tar
ftp>
ftp> dir
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-------    1 1000     1000     137062857 Dec 14 18:33 test.mp4
226 Directory send OK.
FTP: 70 Bytes empfangen in 0.00Sekunden 35.00KB/s
ftp>
ftp>
ftp> rename test.mp4 test2.mp4
ftp>
ftp>
ftp> dir
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-------    1 1000     1000     137062857 Dec 14 18:33 test2.mp4
226 Directory send OK.
FTP: 70 Bytes empfangen in 0.00Sekunden 35.00KB/s
ftp>
ftp>
ftp> close
221 Goodbye.
ftp>
ftp>
ftp> quit
vsftpd.1748079540.txt.gz · Zuletzt geändert: 2025/05/24 11:39 von jango