Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
|
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===== | ||
| + | < | ||
| + | sudo apt install vsftpd | ||
| + | </ | ||
| + | |||
| + | Hauptkonfiguration unter | ||
| + | < | ||
| + | / | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | 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 | ||
| + | </ | ||
| + | |||
| + | =====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=/ | ||
| + | </ | ||
| + | |||
| + | vsftpd.user_list dient nur dazu, die Liste der lokalen User einzuschränken, | ||
| + | |||
| + | ====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=/ | ||
| + | </ | ||
| + | |||
| + | Die Nutzer werden in beiden Fällen folgendermaßen in die Datei / | ||
| + | |||
| + | < | ||
| + | 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: | ||
| + | </ | ||
| + | |||
| + | 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: | ||
| + | </ | ||
| + | |||
| + | =====Logs===== | ||
| + | |||
| + | < | ||
| + | sudo tail -f / | ||
| + | </ | ||
| + | |||
| + | =====User homepage===== | ||
| + | |||
| + | [[apache2]] und mod_userdir installieren. Geht auch mit [[Nginx]]. | ||
| + | < | ||
| + | apt install apache2 | ||
| + | a2enmod userdir | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | local_umask=022 # uploaded files readable via http | ||
| + | </ | ||
| + | |||
| + | =====Beispiel===== | ||
| + | |||
| + | < | ||
| + | C: | ||
| + | Verbindung mit 192.168.0.2 wurde hergestellt. | ||
| + | 220 (vsFTPd 3.0.3) | ||
| + | 200 Always in UTF8 mode. | ||
| + | Benutzer (192.168.0.2: | ||
| + | 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------- | ||
| + | -rw------- | ||
| + | 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------- | ||
| + | 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------- | ||
| + | 226 Directory send OK. | ||
| + | FTP: 70 Bytes empfangen in 0.00Sekunden 35.00KB/s | ||
| + | ftp> | ||
| + | ftp> | ||
| + | ftp> close | ||
| + | 221 Goodbye. | ||
| + | ftp> | ||
| + | ftp> | ||
| + | ftp> quit | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | =====Hosting===== | ||
| + | |||
| + | < | ||
| + | apt install vsftpd | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | # / | ||
| + | |||
| + | local_enable=YES | ||
| + | write_enable=YES | ||
| + | local_umask=022 | ||
| + | chroot_local_user=YES | ||
| + | allow_writeable_chroot=YES | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | adduser uploaduser | ||
| + | |||
| + | mkdir -p / | ||
| + | chmod 755 / | ||
| + | chmod 755 / | ||
| + | |||
| + | chown -R uploaduser: | ||
| + | |||
| + | # echo "It works!" | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | docker run -dit -p 8001:80 -v / | ||
| + | </ | ||
| + | =====Links===== | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||