Vsftpd

Aus Linupedia
Wechseln zu: Navigation, Suche
vsftpd

Very Secure FTP Daemon
Basisdaten
Entwickler:
Aktuelle Version: 2.0.5
letzte Veröffentlichung: Juli 2006
Betriebssystem: Linux, OS X, Unix
Kategorie: File-Server
Lizenz: GPL
Deutschsprachig: nein
Webseite: http://vsftpd.beasts.org

Autoren: Yehudi und TomcatMJ

Diese Beschreibung wurde mit folgenden Distributionen getestet:
  • openSUSE 10.2
  • SUSE Linux 10.0
  • SUSE Linux 9.3
  • SUSE Linux 9.2
  • SUSE Linux 9.1
  • SUSE Linux 9.0

Einführung

Vsftpd ist ein sehr einfach zu konfigurierender FTP-Daemon. Er ist sowohl als Standalonedaemon als auch als per xinetd bzw. inetd ansteuerbar und kann sowohl per PAM als auch per LDAP oder NIS dem System bekannten Usern Zugang gewähren als auch Anonymous-FTP Zugang gewähren. Siehe dazu auch in den Vsftpd Musterkonfigurationen.

Installation

Unter SuSE 10.X haben wir mehre Möglichkeiten der Installation: apt, smart, yast oder yum

Das Prinzip der Installation ist dasgleiche wie mit anderen Programmen, über einen der besagten Paketmanager. Darum verzichte ich darauf, das hier auszuführen.

Da xinetd bei SuSE eigentlich Standard ist um den Dienst gleich mit Hochfahren des Rechners zu starten, führe ich das hier aus. Hierfür müssen einige Voraussetzungen erfüllt sein, um den Dienst zu nutzen.

1.xinetd muss gestartet sein 2.In der Datei /etc/xinetd.d/vsftpd muss die Zeile disable entweder auf No stehen, oder nicht vorhanden sein. 3.In der Konfigurationsdatei /etc/vsftpd.conf muss eine Zeile mit listen=No enthalten sein, damit vermieden wird, dass vsftpd als Dämon gestartet wird. 4.Wie per default in den Files /etc/hosts.allow bzw. /etc/hosts.deny muss der FTP Zugang erlaubt sein.

Unter SuSE werden mit /etc/vsftpd.conf die Einstellungen vorgenommen. In der Default-Einstellung ist nur ein Lesezugang für Anonymous erlaubt.

Um Benutzern einen Login zu ermöglichen, muss locale_enable auf YES stehen. Mit write_enable auf YES ist dann auch ein Upload möglich.

Anonymous läßt sich mit anonymous_enable=NO ausschalten

Zwar läßt sich auch ein Upload für Anonymous durchführen, aber da das für illegalen Datenaustausch genutzt werden kann, rate ich jedem davon ab. Root ist als Benutzer aus Sicherheitsgründen vom FTP-Dienst ausgenommen.

Mit dem Login eines Benutzers kann der FTP-Client auf das Homeverzeichnis des Linuxbenutzers ftp zugreifen. Bei SuSE ist es per default /srv/ftp/ Das Verzeichnis ist in /etc/passwd aufgeführt.

Bei SuSE wird zwar für den Login auf PAM zugegriffen, aber /etc/pam.d/vsftpd verweist auf /etc/ftpuser.

Konfigurationsparameter

allow_anon_ssl 
'YES' oder 'NO'

Hiermit kann man fuer Anonymous SSL aktivieren. Das funktioniert aber nur, wenn ssl_enable aktiviert ist. Default ist hier 'NO'.

ascii_download_enable
'YES' oder 'NO

Hier werden die Daten entweder im ASCII- oder im Binary - Mode runtergeladen. 'YES' steht fuer ASCII und 'NO' fuer Binary.

anon_umask 
'YES' oder 'NO'

Der Wert, der das umask für die Dateianage auf für anonyme Benutzer eingestellt.

ascii_upload_enable
'YES' oder 'NO'

Siehe ascii_download_enable, nur diesmal für den Upload.

anon_mkdir_write_enable
'YES' oder 'NO'

Wenn es auf Yes steht, haben anonyme Benutzer die Erlaubnis, um neue Verzeichnisse unter bestimmten Bedingungen zu erstellen. Damit diese Option funktioniert, muss write_enable aktiviert werden, und der Anonymous FTPbenutzer muss die Erlaubnis haben auf das Elternteilverzeichnis zu schreiben.

anon_other_write_enable                    
'YES' oder 'NO'

Wenn es auf Yes steht, haben anonyme Benutzer die Erlaubnis, um ein Verzeichnis zu erstellen, Löschung und Umbennenung zu tätigen. Von dieser Möglichkeit ist dringend abzuraten, sie wird nur der Vollständigkeit halber aufgeführt.

anon_upload_enable 
'YES' oder 'NO'

Hier wird Anonymous erlaubt Dateien hochzuladen. Damit das aber funktioniert, muss write_enable ebenfalls auf 'YES' stehen und die Schreibrechte für das Verzeichniss müssen bereits gegeben sein.

anon_world_readable_only
'YES' oder 'NO'

Hier ist Anonymous nur der Download erlaubt.

anonymous_enable
'YES' oder 'NO'

Diese Option regelt, ob Anonymous sich ueberhaupt einloggen darf.

async_abor_enable
'YES' oder 'NO'

Wenn dieser Wert auf 'YES' gesetzt wird, steht async ABOR zur Verfuegung. Dazu sollte man aber erst RFC2428 lesen. http://www.rfc-editor.org/rfc/rfc2428.txt

background
'YES' oder 'NO'

Wenn diese Option auf 'YES' steht, wird vsftpd im Hintergrund gestartet.

banned_email_file 
'Dateiname'

In diesem File kann eine emailbasierte Ban-Liste definiert werden(Emailadressen sind meist Standard-Passworte für Anonymous-FTP Zugriff in diversen FTP-Clients)

check_shell 
'YES' oder 'NO'

Diese Option steht nur ohne PAM zur Verfuegung. Wenn 'NO' gesetzt ist, dann ueberprüft vsftpd die /etc/shells nicht nach einer korrekten Shell oder Useraccount.

chmod_enable 
'YES' oder 'NO'

Damit wird die Anwendung von SITE CHMOD erlaubt!

chown_uploads 
'YES' oder 'NO'

Wenn 'YES' gesetzt ist, werden alle "anonym" hochgeladenen Dateien in den bei chown_username angegebenen Username ge'chown't.

chroot_local_user
'YES' oder 'NO'

Wenn es auf Yes steht, werden die User mit einem lokale Account in einer chroot () Einschränkung in ihrem Hauptverzeichnis nach LOGON begrenzt.

connect_from_port_20
'YES' oder 'NO'

Dieses steuert, ob FTP Datenverbindungen Port20 (Ftpdaten) auf der Bedienermaschine verwenden. Aus Sicherheit Gründen können einige Klienten beharren, daß dieses der Fall ist. Andererseits ermöglicht die Sperrung dieser Wahl vsftpd, mit weniger Privilegien etwas sicherer nur im passive-FTP Mode zu laufen.

deny_email_enable 
'YES' oder 'NO'

Hier wird geregelt ob bestimmte Email - Adressen verboten werden sollen. Die Adressen werden in einer externen Datei (der Ban-Liste aus der Option oben) gesucht, die mit

dirlist_enable
'YES' oder 'NO'

auf Ban-Liste(bei NO), oder Allow-Liste(bei YES) gesetzt werden kann.

download_enable
'YES' oder 'NO'

Wenn diese Option auf NO steht darf nichts heruntergeladen werden, Downloads sind dann unmöglich.

guest_enable
'YES' oder 'NO'

Wenn diese Option auf YES steht ist erweiterter Anonymous-FTP möglich. Der nicht wirklich anonyme Gastzugang mit normaler Nutzerkennung wird dann auf den entsprechenden User aus der guest_username Option umgesetzt.

guest_username

Diese Einstellung beinhaltet den realen Usernamen zu dem Gastbenutzer umgesetzt werden.

hide_ids
'YES' oder 'NO'

Mit dieser Option werden alle Nutzerinformationen nach außen als "ftp" deklariert.

listen
'YES' oder 'NO'

Wenn diese Option gesetzt ist (also auf YES steht) läuft vstfpd im standalone Mode ohen inetd/xinetd. Er hört dann auf jede im System bekannte IP-Adresse. Es sei denn, man konfiguriert eine einzelne default listen address wodurch die Einstellung auf alle Adressen zu hören übergangen würde.

local_enable
'YES' oder 'NO'

Mit dieser Option können, sofern per YES aktiviert, normale Systemuser sich mit ihren Usernamen und Passwörtern wie sie in /etc/passwd + /etc/shadow bekannt sind einloggen.

local_root

Diese Option legt ein Verzeichnis fest, in das vsftpd zu wechseln versucht sobald ein nicht-anonymer Benutzer einloggt. Fehler(z.B. bei nicht vorhandenem Verzeichnis) werden stillschweigend ignoriert.

log_ftp_protocol
'YES' oder 'NO'

Mit dieser Option wird festgelegt, ob alle(!) FTP-Zugriffe in en Logfiles/dem Logfile protokolliert werden.

ls_recurse_enable
'YES' oder 'NO'

Man kann hier einstellen, ob ein ls automatisch auch rekursiv gelten soll oder nicht. Standardmäßig ist diese Option deaktiviert um extreme I/O Lasten zu vermeiden die durch exzessive Nutzung des FTP-Servers aufkommen könnten. Manche Clientprogramme benötigen diese Option jedoch.

max_clients

Falls vsftpd im standalone-Modus betrieben wird, kann hier die Anzahl der zeitgleich zugreifenden Clients begrenzt werden. Jeder weitere Client der dann über die Begrenzung hinaus zugreifen will erhält eine Fehlermeldung.

max_per_ip

Mit dieser Option kann die Anzahl der Maximalen geöffneten Verbindungen pro Client festgelegt werden wenn vsftpd im standalone Mode betrieben wird. Jeder Verbindungsversuch eines Clients der mehr als die hier festgelegten maximalen Verbindungen öfnen will wird mit einer Fehlermeldung quittiert.

no_anon_password
'YES' oder 'NO

Hier wird die Passwortabfragen deaktivieren. Mit 'YES', werden anonyme User sofort eingeloggt, wenn sie den entsprechenden Usernamen fuer Anonymous angeben.(Im Normalfall "anonymous" mit einer Emailadresse als Passwort)

no_log_lock
'YES' oder 'NO'

Hiermit kann man verhindern das vsftpd ein Lockfile erstellt, wenn ein Logfile angelegt wird. Default ist 'NO'

nopriv_user

Die Benutzerkennung unter der vsftpd auf dem System laufen soll, man sollte einen eigenen User dafür anlegen/nutzen, nicht nobody, da nobody doch für einige relevante Vorgänge genutzt wird und vsftpd sonst mit dessen Rechten laufen würde.

one_process_model
'YES'; oder 'NO'

Ist diese Option aktiviert, ist es möglich ein anderes Sicherheitsmodell basierend auf einem Prozess pro Verbindung zu nutzen.

pam_service_name

Der Name des PAM-unterdienstes den vsftpd nutzen soll(relevant für die PAM-Konfiguration).

passwd_chroot_enable
'YES' oder 'NO'

Wenn 'YES' gesetzt ist, dann wird als chroot() das Verzeichnis der /etc/passwd verwendet.

pasv_enable
'YES' oder 'NO'

Hier kann PASV erlaubt oder verboten werden.

pasv_max_port

Die maximalen zuzuteilenden Ports für PASV Daten Anschluss. Kann verwendet werden, um eine schmale Portstrecke zu spezifizieren, beim Firewalling zu unterstützen.

pasv_min_port

Das Minimum der zuzuteilenden Ports für PASV Daten Anschluss. Kann verwendet werden, um eine schmale Portstrecke zu spezifizieren, beim Firewalling zu unterstützen.

pasv_promiscuous
'YES' oder 'NO'

Hier kann man den Sicherheitscheck von PASV verbieten oder erlauben.

port_enable
'YES' oder 'NO'

Hier kann man das PORT - Kommando erlauben bzw. verbieten. Siehe pasv_promiscuous.

port_promiscuous
'YES' oder 'NO'

Diesen Parameter kann man auf 'YES' setzen, wenn man eine bestimmte Liste mit Emails definieren will, fuer die ein Anonymous-Login erlaubt werden soll

secure_email_list_enable
'YES' oder 'NO'

Anonymous-Login erlaubt werden soll. Gelesen wird hierbei die unter email_password_file angegebene Liste. Das Format ist denkbar einfach. Ein Passwort pro Zeile.

session_support 
'YES' oder 'NO'

Hiermit versucht vsftpd die Sessions der Logins beizubehalten. Sobald dieser Wert auf 'YES' gesetzt ist, versucht vsftpd die utmp und wtmp upzudaten, indem er eine PAM-Session oeffnet. Per Default ist dieser Wert auf 'NO'.

setproctitle_enable
'YES' oder 'NO'

Hier kann man angeben ob der Status aktiver Verbindungen bei "ps" auftauchen soll.

use_localtime

Zeitzoneneinstellung für vsftpd. Standard ist GMT, der MDTM FTP Befehl ist von dieser Option ebenso betroffen.

user_config_dir

Hier kann eine benutzerspezifische Konfigurationsdatei angegeben werden. Das ist vor allem interessant, wenn man VHosts verwalten soll / muss. Bsp.:

 user_config_dir=/etc/vsftpd_user1
 $ mkdir /etc/vsftpd_user1

Anschließend muessen noch Leserechte auf das Verzeichnis gegeben werden und das wars.

userlist_enable

Wenn diese Option genutzt wird lädt vsftpd eine Benutzerliste aus der unter userlist_file vermerkten Datei. Jeder Benutzername aus dieser Datei wird als unzulässig abgewiesen. Dies kann nützlich sein um Klartextpasswortübermittlungen über das Netz zu vermeiden.

userlist_file

Hier wird das Name der Datei angegeben, die geladen werden soll wenn man userlist_enable aktiviert hat. Per Default wird /etc/vsftpd.user_list verwendet.

virtual_use_local_privs

Wenn diese Option genutzt wird erhalten virtuelle Nutzer dieselben rechte wie lokale Nutzer. Standradmäßig erhlten virtuelle Nutzer nur die Rechte der anonymen Nutzer die normalerweise eingeschränkter als die der normalen Nutzer sind(speziell im Falle von Schreiboperationen).

write_enable

Damit werden die FTP-Befehle die das Dateisystem verändern können erlaubt oder verboten. Diese Befehle sind: STOR, DELE, RNFR, RNTO, MKD, RMD, APPE und SITE.

xferlog_enable

Hier wird die Logdatei fuer XFerlog definiert. Default ist /var/log/xferlog


Quellen und Links

Es gibt eine Masse an Seiten zu diesem FTP-Server, aber ich möchte hier gerne einige Links posten, die mir geholfen haben(Links von cero und oc2pus):


zurück zur File-Server Übersicht

zurück zur FTP Übersicht