Benutzer-Werkzeuge

Webseiten-Werkzeuge


vsftpd

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

vsftpd [2025/05/24 11:40]
vsftpd [2025/06/22 21:32] (aktuell)
Zeile 1: Zeile 1:
 +Ein kleiner [[ftp|FTP]] Server für [[linux|Linux]].
  
 +=====Installation=====
 +<code>
 +sudo apt install vsftpd
 +</code>
 +
 +Hauptkonfiguration unter
 +<code>
 +/etc/vsftpd.conf
 +</code>
 +
 +<code>
 +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
 +</code>
 +
 +=====Benutzer=====
 +
 +====Whitelist====
 +Um nur bestimmten Benutzern den Login via FTP zu erlauben, müssen folgende Optionen gesetzt werden:
 +<code>
 +userlist_deny=NO
 +userlist_enable=YES
 +userlist_file=/etc/vsftpd.user_list
 +</code>
 +
 +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):
 +
 +<code>
 +userlist_deny=YES
 +userlist_enable=YES
 +userlist_file=/etc/vsftpd.user_list
 +</code>
 +
 +Die Nutzer werden in beiden Fällen folgendermaßen in die Datei /etc/vsftpd.user_list eingetragen:
 +
 +<code>
 +nutzer1
 +nutzer2
 +nutzer3
 +</code>
 +
 +====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:
 +
 +<code>
 +user:x:1000:1000::/home/user:/bin/false
 +</code>
 +
 +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=====
 +
 +<code>
 +sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048  -keyout /etc/ssl/private/vsftpd.key -out /etc/ssl/private/vsftpd.pem
 +</code>
 +
 +=====Logs=====
 +
 +<code>
 +sudo tail -f /var/log/vsftpd.log
 +</code>
 +
 +=====User homepage=====
 +
 +[[apache2]] und mod_userdir installieren. Geht auch mit [[Nginx]].
 +<code>
 +apt install apache2
 +a2enmod userdir
 +</code>
 +
 +<code>
 +local_umask=022 # uploaded files readable via http
 +</code>
 +
 +=====Beispiel=====
 +
 +<code>
 +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
 +</code>
 +
 +
 +
 +=====Hosting=====
 +
 +<code>
 +apt install vsftpd
 +</code>
 +
 +<code>
 +# /etc/vsftpd.conf
 +
 +local_enable=YES
 +write_enable=YES
 +local_umask=022
 +chroot_local_user=YES
 +allow_writeable_chroot=YES
 +</code>
 +
 +<code>
 +adduser uploaduser
 +
 +mkdir -p /home/uploaduser/public_html
 +chmod 755 /home/uploaduser
 +chmod 755 /home/uploaduser/public_html
 +
 +chown -R uploaduser:uploaduser /home/uploaduser
 +
 +# echo "It works!" > /home/uploaduser/public_html/index.html
 +</code>
 +
 +<code>
 +docker run -dit -p 8001:80 -v /home/uploaduser/public_html:/usr/share/nginx/html:ro nginx
 +</code>
 +=====Links=====
 +
 +  * [[https://wiki.ubuntuusers.de/vsftpd/|Ubuntu Users]]
 +  * [[https://www.ionos.at/digitalguide/server/konfiguration/ubuntu-ftp-server-installation-und-konfiguration/|Ubuntu-FTP-Server: So funktioniert die Einrichtung]]
 +  * [[https://www.danzei.de/ftp-user-mit-chroot/|FTP User mit Chroot]]