Vsftp Installation

Aus xinux.net
Zur Navigation springen Zur Suche springen


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

Vsftpd-filezilla-1.png

  • Nach Anklicken des Buttons 'Connect' wird das Zertifikat angezeigt

Quelle