Vsftp Installation
installation
sudo apt-get update sudo apt-get install vsftpd
vsftpd test configuration
- mkdir -p /var/ftp/pub
- chown nobody:nogroup /var/ftp/pub
- echo "vsftpd test file" | sudo tee /var/ftp/pub/test.txt
- add / change in vi /etc/vsftp.conf
Anonyme Logins zulassen
- vsftpd ist von Haus aus so konfiguriert, dass anonyme Benutzer sich nicht einloggen dürfen. Durch Editieren der Datei /etc/vsftpd.conf kann der anonyme Zugriff aber leicht aktiviert werden.
anonymous_enable=YES
Lokale Benutzer zulassen
Die Standardeinstellung von vsftp ist, dass sich lokale Benutzer per ftp einloggen dürfen. Möchte man dies deaktivieren, so muss man diese Option setzen.
local_enable=YES"
Zugriff auf Benutzer beschränken
Bestimmte Nutzer erlauben
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
Bestimmte Nutzer verbieten
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:
rudi egon herbert
Anonymen Benutzern das Erstellen von Verzeichnissen erlauben
Soll es anonymen Benutzern erlaubt sein Verzeichnisse anzulegen, so muss man ihnen dazu ebenfalls das Recht extra einräumen. Per Default ist diese Option deaktiviert.
anon_mkdir_write_enable=YES
Weiter Optionen
Point users at the directory we created earlier.
anon_root=/var/ftp/
Stop prompting for a password on the command line.
no_anon_password=YES
Show the user and group as ftp:ftp, regardless of the owner.
hide_ids=YES
Passives FTP
Passives FTP aktivieren
pasv_enable=YES
Portbereich für passives FTP
pasv_min_port=40000 pasv_max_port=50000
Logische Optionen
Option | Standardwert | Beschreibung |
---|---|---|
download_enable | YES | Falls man hier NO einsetzt, so sind nur Uploads möglich |
force_anon_logins_ssl | NO | Wenn ssl_enable aktiviert ist, so werden anonyme Benutzer gezwungen, sich über eine SSL-Verbindung einzuloggen. |
force_local_data_ssl | NO | Wenn ssl_enable aktiviert ist, so werden nicht-anonymen Benutzer gezwungen, sich über eine SSL-Verbindung einzuloggen. |
force_local_logins_ssl | NO | Wenn ssl_enable aktiviert ist, so werden lokalen Benutzer gezwungen, sich über eine SSL-Verbindung einzuloggen. |
ssl_enable | NO | Aktiviert die Möglichkeit, sich über SSL auf dem FTP-Server einzuloggen. |
ssl_sslv2 | NO | Wenn ssl_enable aktiviert ist, so erlaubt diese Option auch Logins über SSLv2 zuzulassen. |
userlist_enable | NO | Falls diese Option aktiviert ist, so werden Benutzer, die in userlist_file aufgeführt sind, vom FTP-Server abgelehnt, bevor sie ihr Passwort eingeben können. So wird verhindert, dass diese Benutzer ihr Passwort im Klartext übertragen. |
userlist_deny | YES | Diese Option wird ausgewertet, wenn userlist_enable aktiviert ist. Ist diese Option auf NO gesetzt, so werden alle Benutzer abgelehnt, es sei denn sie werden in userlist_file aufgeführt. Diese Option dreht also userlist_enable logisch um. |
Numerische Optionen
Option | Standardwert | Beschreibung |
---|---|---|
anon_max_rate | 0 | Die maximale Übertragungsgeschwindigkeit in byte/sekunde für anonyme Benutzer. 0 bedeutet unlimitiert. |
local_max_rate | 0 | Die maximale Übertragungsgeschwindigkeit in byte/sekunde für lokale Benutzer. 0 bedeutet unlimitiert. |
ftp_data_port | 20 | Angabe für den FTP-Data-Port. |
listen_port | 21 | Angabe für den FTP-Control-Port. |
max_clients | 0 | Maximale Anzahl der Client, die am FTP-Server angemeldet sein dürfen. |
max_per_ip | 0 | Maximale Anzahl der Verbindungen von einer IP. |
pasv_min_port | 0 | Minimale Portnummer, die bei einer passiven Übertragung genutzt wird. |
pasv_max_port | 0 | Maximale Portnummer, die bei einer passiven Übertragung genutzt wird. |
local_unmask | 077 | Wert für die umask bei neu erstellten Ordnern und Dateien. |
String Optionen
Option | Standardwert | Beschreibung |
---|---|---|
anon_root | /home/ftp | Verzeichnis, in das anonyme Benutzer geleitet werden. |
userlist_file | /etc/vsftpd.user_list | Name und Pfad zur Datei, die ausgelesen wird, wenn die Option userlist_enable aktiviert ist. |
Log-Datei
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:
xferlog_file=/var/log/vsftpd.log
Nach dem Neustart des Servers findet man die Log-Datei unter /var/log/vsftpd.log. Möchte man z.B. die aktuellen Aktivitäten ansehen, so kann man in einem Terminal [2] mit dem Befehl
Den Verlauf des Logs begutachten
- sudo tail -f /var/log/vsftpd.log
Schreibender Zugrifferlauben
#write_enable=YES
Restart & enable
systemctl restart vsftpd.service systemctl enable vsftpd.service
Testen des Zugriffs
- ftp localhost
Connected to localhost. 220 (vsFTPd 3.0.3) Name (localhost:dummy.user): anonymous 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files.
- Passiven Modus anschalten
- ftp> passive
Passive mode on.
- Verzeichnis wechseln und Testdatei herunterladen bzw. Testdatei hochladen
- ftp> cd pub
- ftp> get test.txt
- ftp> put test2.txt
vsftpd mit SSL/TLS - Erstellen des Zertifikates
- openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
vsftpd mit SSL/TLS - Anpassen der vsftpd Konfiguration /etc/vsftpd.conf
anonymous_enable=NO write_enable=YES local_enable=YES userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO chroot_local_user=YES allow_writeable_chroot=YES # Alternatively: please consider using sFTP (FTP over SSH) or FTPs (FTP via TLS) with a modified, non-writeable, chroot. rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO require_ssl_reuse=NO ssl_ciphers=HIGH
- Restarten vsftpd
- systemctl restart vsftpd.service
vsftpd mit SSL/TLS - Kontrolle
- Zugriff über einen ftp Client, z.Bsp. Filezilla
- Als Encryption 'Require explicit FTP over TLS' auswählen
- Nach Anklicken des Buttons 'Connect' wird das Zertifikat angezeigt