Vsftpd

Aus Linupedia.org
Wechseln zu: Navigation, Suche

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.(TomcatMJ)


Website: http://vsftpd.beasts.org/

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, dass 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 Vorraussetzungen 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/vsftp.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 da jedem von 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 allerdings auf /etc/ftpuser.

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):

[size=18]Konfigurationsparameter[/size]

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

This option represents a directory which vsftpd will try to change into after a local (i.e. non-anonymous) login. Failure is silently ignored. local_umask

log_ftp_protocol
'YES' oder 'NO'
ls_recurse_enable
'YES' oder 'NO'

The value that the umask for file creation is set to for local users. Mit dieser Option ist es moeglich das erweiterte Logformat zu aktivieren; hier werden dann *alle* Aktivitaeten geloggt! Hiermit kann man die Ausfuehrung von "ls -R" verbieten oder erlauben.

max_clients

If vsftpd is in standalone mode, this is the maximum number of clients which may be connected. Any additional clients connecting will get an error message.

max_per_ip

If vsftpd is in standalone mode, this is the maximum number of clients which may be connected from the same source internet address. A client will get an error message if they go over this limit.

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.

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

This is the name of the user that is used by vsftpd when it want to be totally unprivileged. Note that this should be a dedicated user, rather than nobody. The user nobody tends to be used for rather a lot of important things on most machines.

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

This string is the name of the PAM service vsftpd will use.

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

If enabled, vsftpd will display directory listings with the the time in your local time zone. The default is to display GMT. The times returned by the MDTM FTP command are also affected by this option.

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

Anschlieszend muessen noch Leserechte auf das Verzeichnis gegeben werden und das wars.

userlist_enable

If enabled, vsftpd will load a list of usernames, from the filename given by userlist_file. If a user tries to log in using a name in this file, they will be denied before they are asked for a password. This may be useful in preventing cleartext passwords being transmitted.

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

If enabled, virtual users will use the same privileges as local users. By default, virtual users will use the same privileges as anonymous users, which tends to be more restrictive (especially in terms of write access).

write_enable

This controls whether any FTP commands which change the filesystem are allowed or not. These commands are: STOR, DELE, RNFR, RNTO, MKD, RMD, APPE and SITE.

xferlog_enable

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

Das ist der erste Entwurf, und wird noch geändert, übersetzt, und erweitert, und beruht auf die oben angegebenen Links. © All rights by Yehudi Matthäus für den Linux Club - 2006

--Yehudi 08:06, 16. Aug 2006 (CEST)