Good to Know Database

Raspbian Wheezy: FTP-Server einrichten


Das File Transfer Protocol (FTP) ist ein Netzwerkprotokoll zum Übertragen von Dateien zwischen einem Server und einem Client. In der folgenden Anleitung wird beschrieben wie Sie den Very Secure FTP Daemon - kurz vsftpd - als FTP-Server auf Ihrem Raspberry Pi mit Raspbian als Betriebssystem einrichten können.

vsftpd installieren

Der FTP-Daemon vsftpd kann durch den folgenden Befehl installiert werden. Zuvor sollten Sie aber die lokale Paketdatenbank aktualisieren.

pi@raspberrypi ~ $ sudo apt-get update
pi@raspberrypi ~ $ sudo apt-get install vsftpd

Nach der Installation wird der vsftpd automatisch gestartet und Sie können sich als Anonymous anmelden. Mit dem Anonymous-Account können Sie nur den Inhalt des Verzeichnisses /srv/ftp/ einsehen. Wenn Sie diese Einstellungen ändern wollen, müssen Sie wie folgt die Konfigurationsdatei vsftpd.conf anpassen.

Anonym zugänglichen FTP-Server konfigurieren

In diesem Abschnitt soll der vsftpd als FTP-Server für den anonymen Schreib- und Lese-Zugriff konfiguriert werden. Öffnen Sie dazu die Konfigurationsdatei /etc/vsftpd.conf mit einem Editor.

pi@raspberrypi ~ $ sudo vi /etc/vsftpd.conf

Damit der Benutzeraccount Anonymous freigeschalten wird, muss die folgende Option auf YES gesetzt sein.

# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=YES

Damit Anonymous auch Dateien auf dem FTP-Server ablegen kann, muss die Direktive anon_upload_enable auskommentiert und auf YES gesetzt sein.

# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
anon_upload_enable=YES

Soll Anonymous auch neue Verzeichnisse erstellen dürfen, aktivieren Sie zusätzlich die Option anon_mkdir_write_enable.

# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
anon_mkdir_write_enable=YES

FTP-Server für lokale Benutzer konfigurieren

Damit sich nur lokale Benutzer am FTP-Server anmelden können und so Zugriff auf Ihr Heimatverzeichnis erhalten, nehmen Sie die folgenden Änderungen an der Konfigurationsdatei /etc/vsftpd.conf vor.

pi@raspberrypi ~ $ sudo vi /etc/vsftpd.conf

Deaktivieren Sie zuerst den anonymen Zugriff auf den FTP-Server indem Sie die Direktive anonymous_enable auf NO setzen.

# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO

Damit die lokalen Benutzer sich anmelden können, muss local_enable auskommentiert und auf YES gesetzt sein.

# Uncomment this to allow local users to log in.
local_enable=YES

Durch write_enable können Sie den lokalen Benutzern auch das Schreiben auf dem FTP-Server erlauben.

# Uncomment this to enable any form of FTP write command.
write_enable=YES

FTP-Server für lokale Benutzer mit Chroot-Umgebung konfigurieren

Im vorhergehenden Abschnitt wurde vsftpd so konfiguriert, dass sich nur lokale Benutzer am FTP-Server anmelden können. Diese können aber auch ausserhalb Ihres Heimatverzeichnisses Dateien lesen und gegebenenfalls erstellen. Dies wird nur durch die Linux-Dateizugriffsrechte eingeschränkt. Wenn Sie die FTP-Benutzer in Ihrem Heimatverzeichnis einsperren wollen, dann nehmen Sie zusätzlich zu den Änderungen aus dem vorhergehenden Abschnitt die folgenden Anpassungen an der Konfigurationsdatei /etc/vsftpd.conf vor.

Die Chroot-Funktionalität wird durch die Direktive chroot_local_user aktiviert.

# You may restrict local users to their home directories.  See the FAQ for
# the possible risks in this before using chroot_local_user or
# chroot_list_enable below.
chroot_local_user=YES

Sollen nicht alle Benutzer in einer Chroot-Umgebung eingesperrt werden, können Sie über eine Liste die Benutzer festlegen, welche in einer Chroot-Umgebung eingesperrt werden sollen oder von der generellen Chroot-Funktion ausgeschlossen werden sollen.

Wurde die Direktive chroot_local_user aktiviert, können Sie über chroot_list_enable und chroot_list_file eine Liste mit Benutzern angeben, welche nicht in einer Chroot-Umgebung eingesperrt werden sollen. Generell werden alle Benutzer in einer Chroot-Umgebung eingesperrt.

Haben Sie die Direktive chroot_local_user nicht aktiviert, können Sie über chroot_list_enable und chroot_list_file eine Liste mit Benutzern angeben, welche in der Chroot-Umgebung eingesperrt werden sollen. Generell werden keine Benutzer in der Chroot-Umgebung eingesperrt.

# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
# (Warning! chroot'ing can be very dangerous. If using chroot, make sure that
# the user does not have write access to the top level directory within the
# chroot)
#chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list

Wenn Sie die /etc/vsftpd.chroot_list verwenden wollen, müssen Sie diese erstellen.

pi@raspberrypi ~ $ sudo vi /etc/vsftpd.chroot_list

Geben Sie in dieser Datei die jeweiligen Benutzernamen an. Beachten Sie dabei, dass Sie nur einen Benutzer pro Zeile angeben.

ftpguest

FTP-Benutzer anlegen

Einen neuen FTP-Benutzer können Sie mit dem folgenden Befehl erstellen. Indem Sie als Login-Shell /bin/false oder /bin/nologin angeben, kann sich der neue Benutzer nicht am System anmelden. Lesen Sie in diesem Fall auch den nächsten Abschnitt.

pi@raspberrypi ~ $ sudo useradd -m -s /sbin/false -g users ftpguest

Nachdem Sie den Benutzer erstellt haben, müssen Sie noch ein Passwort vergeben.

pi@raspberrypi ~ $ sudo passwd ftpguest
Geben Sie ein neues UNIX-Passwort ein:
Geben Sie das neue UNIX-Passwort erneut ein:
passwd: Passwort erfolgreich geändert

PAM konfigurieren

Wird wie in diesem Fall einem Benutzer die Login-Shell /bin/false oder /bin/nologin zugewiesen, kann sich der Benutzer nicht mehr am System anmelden. Dies gilt auch für den vsftpd. Damit sich trotzdem Benutzer am FTP-Server anmelden können, müssen Sie die PAM-Konfiguration anpassen. Öffnen Sie dazu die Datei /etc/pam.d/vsftpd mit einem Editor.

pi@raspberrypi ~ $ sudo vi /etc/pam.d/vsftpd

Standardmäßig sollte diese Datei wie folgt aussehen.

# Standard behaviour for ftpd(8).
auth    required        pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

# Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so.

# Standard pam includes
@include common-account
@include common-session
@include common-auth
auth   required        pam_shells.so

Damit der vsftpd nicht mehr überprüft ob es sich bei den Anmeldedaten um eine gültige Benutzer-Shell handelt, müssen Sie die letzte Zeile kommentieren oder löschen.

#auth    required        pam_shells.so

vsftpd starten

Wie bereits Eingangs beschrieben, wird der vsftpd nach der Installation automatisch gestartet. Damit die Änderungen an der Konfiguration geladen werden, müssen Sie den vsftpd neu starten.

pi@raspberrypi ~ $ sudo service vsftpd restart
Stopping FTP server: vsftpd.
Starting FTP server: vsftpd.


Dieser Eintrag wurde am 03.12.2012 erstellt und zuletzt am 25.09.2016 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_36_2001.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2017 by Georg Kainzbauer