Bei vsftpd handelt es sich um eine FTP Daemon für Unix artige Betriebssysteme. Wie der Name vsftpd (Very Secure FTP Daemon) vermuten lässt liegt die Priorität dieses Daemons auf Sicherheit.
Allgemein
Der Server ist recht einfach gehalten und bietet nicht so einen großen Funktionsumfang wie manch andere Projekte. Jedoch ist er dadurch recht leicht zu konfigurieren und ist sehr schnell bei der Auslieferung der Daten. So wird der Daemon zum Beispiel auch auf größeren FTP-Seiten eingesetzt.
Installation
Der vsftpd sollte bei den meisten Linux Distribution als Paket enthalten sein. Bei Ubuntu und Debian kann er mit folgendem Befehl installiert werden.
$ sudo apt-get install vsftpd
Konfiguration
Die Konfiguration des Daemons ist mit Absicht sehr einfach gehalten. So gut wie alles, was konfiguriert werden kann ist in der Datei /etc/vsftpd.conf zu finden.
Login für lokale Benutzer
Beim vstfpd ist standardmäßig eingestellt, dass sich lokale Benutzer nicht einloggen können. Soll dies jedoch erlaubt werden, muss der Wert local_enable auf YES gesetzt werden. Das ganze sieht dann wie folgt aus
local_enable=YES
Desweiteren darf standardmäßig selbst ein angemeldeter Nutzer keine schreib Aktionen durchführen. Diese Aktion muss explizit mit folgender Option eingeschalten werden.
write_enable=YES
Im Moment können angemeldete Benutzer noch in alle Verzeichnisse, für die sie lokale Lese-Rechte besitzen, navigieren und Dateien herunterladen. Dies kann mit folgender Zeile in der Konfiguration geändert werden.
chroot_local_user=YES
Danach kann jeder Benutzer sein Home-Verzeichnis nicht mehr verlassen.
Achtung: Bei der chroot Methode gibt es jedoch eine kleine "Sicherheitslücke", die auf den chroot Befehl von Linux zurück zu führen ist. Genauere Informationen dazu gibt es im vsftpd FAQ (englisch)
Anonyme Benutzer
Standardmäßig ist es erlaubt, dass anonyme Benutzer sich einloggen dürfen. Soll dies verhindert werden muss die folgende Zeile wie folgt angepasst werden.
anonymous_enable=NO
Achtung!!!: Im folgenden wird beschrieben, wie ein anonymer Benutzer Schreib-Rechte erhält. Dies sollte mit sehr großer Vorsicht angewendet werden. Da dies eventuell von Dritte illegal ausgenutzt werden kann. Wenn man nicht genau weiß, was man damit macht, sollte man lieber die Hände davon lassen.
anon_upload_enable=YES anon_mkdir_write_enable=YES
Die Daten des anonymen Benutzers werden voreingestellt dem Verzeichnis /home/ftp abgelegt. In dieses kann er jedoch nicht direkt schreiben, sondern es muss ein extra Ordner mit entsprechenden Rechten angelegt werden. Dies wird mit folgenden Befehlen gemacht:
$ sudo mkdir /home/ftp/upload
$ sudo chmod 777 /home/ftp/upload
Log-Dateien
Die Datei /var/log/vsftpd.log wird standardmäßig als Log-Datei genutzt. Einziger Nachteil ist, dass der vsftpd die Log-Daten in einem eigenen Format abspeichert. Sollen die Log-Daten jedoch mit einem Log-Analyser ausgewertet werden, kann mit folgender Option das Erzeugen einer "standardisierten" Log-Datei bewirkt werden.
dual_log_enable=YES
Danach wird eine zweite Log-Datei unter /var/log/xferlog erzeugt, welche sich mit herkömmlichen Tools auswerten lassen sollte.
Weitere Optionen
Neben den schon beschrieben Optionen, welche für eine einfache Konfiguration vollkommen ausreichend sind, gibt es noch ein paar weiter, von denen ich im Folgenden noch ein paar nenne.
- max_per_ip - Gibt an wie viele Verbindungen von einer IP zum FTP-Server aufgebaut werden dürfen (Standard: 0 = unendlich viele)
- anon_max_rate - Die maximale Übertragungsgeschwindigkeit für anonyme Benutzer in Byte/Sekunde (Standard: 0 = unbegrenzt)
- local_max_rate - Die maximale Übertragungsgeschwindigkeit für lokale Benutzer in Byte/Sekunde (Standard: 0 = unbegrenzt)
- max_clients - Maximale Anzahl der Clients, die angemeldet sein dürfen (Standard: 0 = unbegrenzt)
- anon_root - Root Verzeichnis für den anonymen Benutzer (Standard: /home/ftp)
- download_enable - Gibt an ob Downloads erlaubt sind. Wird dies auf NO gesetzt sind nur noch Uploads möglich (Standard: YES)
Links
- vsftpd Seite (englisch)
- vsftpd FAQ (englisch)
- ubuntu.com (englisch)
- debian.org (deutsch)